DAXSO Contribution Guidelines
Thank you for considering contributing to the Developer Acceleration eXperience for Smart-Contract Organizations or daxso
project. Your efforts to enhance our project are greatly appreciated. When engaging with our community, either through GitHub or other platforms, we request you to adhere to the following guidelines:
- Uphold a respectful, civil, and open-minded atmosphere.
- Before initiating a new pull request, explore the issue tracker↗ to check for existing issues or solutions.
- When proposing code modifications based on personal opinions, ensure to first open an issue outlining the intended changes. Proceed with a pull request only after receiving approval from the maintainers.
How to Contribute
Prerequisites
To avoid investing time in changes that may have been previously declined or deemed unnecessary, begin by opening an issue↗ detailing the problem you intend to address.
Contributing via Codesandbox
You can contribute to this documentation through codesandbox, which automatically executes all necessary setup commands. ↗.
Setting Up Your Environment Locally
Some commands presume the installation of the Github CLI. If it is not yet installed, consider installing it↗. Alternatively, the Web UI can be used.
Start your contribution by forking the repository:
gh repo fork Dax911/daxsoCLI
Next, clone the forked repository to your local system:
gh repo clone <your-github-name>/daxsoCLI
This project utilizes pnpm↗ as its package manager. If not already installed, proceed with:
npm install -g pnpm
Follow this by installing the project dependencies:
pnpm install
Implementing Your Changes
Our project is structured as a Turborepo↗ monorepo. The CLI’s code is housed in the cli
directory, while the documentation is located in the web
directory. You are now prepared to implement your changes.
During development, the following scripts might be beneficial:
| Command | Description |
| --------------- | ------------------------------------------------- |
| `pnpm dev:cli` | Builds and starts the CLI in watch-mode |
| `pnpm dev:www` | Starts the development server for the docs w HMR |
| `pnpm build:cli`| Builds the CLI |
| `pnpm build:www`| Builds the docs |
| `pnpm build` | Builds CLI and docs |
| `pnpm format` | Formats the code |
| `pnpm lint` | Lints the code |
| `pnpm lint:fix` | Lints the code and fixes any errors |
| `pnpm check` | Checks for typeerrors, formatting and linting
Commit Message Guidelines
To maintain a vibrant and expressive commit history, we encourage the use of gitmoji for commit messages. Utilize appropriate gitmojis as prefixes to your commit messages, representing the nature of the change. For instance:
git add <file> && git commit -m ":sparkles: introduce new feature"
Remember, the use of gitmoji not only makes the commit history more readable but also more visually informative.
Branch and Issue Naming Convention
We maintain a consistent naming convention for branches and issues to streamline the tracking process. Utilize the format: DAX-[Short_Descriptor]-[Issue Number]
when naming your branches and issues. This structure helps in organizing and identifying issues swiftly.
Once Your Changes are Complete
Check that your code follows the project’s style guidelines by running:
pnpm check
Please also make a manual, functional test of your changes.
If your change should appear in the changelog, i.e. it changes some behavior of either the CLI or the outputted application, it must be captured by changeset
which is done by running
pnpm changeset
and filling out the form with the appropriate information. Then, add the generated changeset to git:
git add .changeset/*.md && git commit -m "chore: add changeset"
When all that’s done, it’s time to file a pull request to upstream:
NOTE: All pull requests should target the next
branch. main
has been feature-locked since 2022-10-06.
gh pr create --web
and fill out the title and body appropriately.
Translations
To assist with translations, refer to the guidelines provided in the contributing documentation for our docs↗.
Credits
This document draws inspiration from the contribution guidelines of cloudflare/wrangler2↗.
Feel free to adjust as necessary, and thank you for fostering a collaborative and respectful community through the creation of these guidelines!