You can help the project several ways
- Give us feedback on your experience with the ecosystem through the Moose slack community or Github Discussions
- Report bugs through Github Issues
- Propose changes by opening an RFD
- Give you perspective on an existing opened RFD
- Contribute to the documentation
- Contribute features and functionality by picking up issues. A good way to start is to pick up issues marked as
Good First Issue
Requirements:
Rust
: We recommend using rustup to manage your rust toolchainNode
: We recommend using nvm to manage your node versionsPnpm
TurboRepo
:pnpm install turbo --global
$ pnpm install
turbo build
To debug the CLI, create a .vscode/launch.json
& change the inputs according to your needs.
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "CLI (OSX)",
"preLaunchTask": "CLI build",
"program": "${workspaceRoot}/target/debug/moose-cli",
"cwd": "${input:enterMooseDir}",
"args": [
"${input:enterCommand}",
// "${input:enterOptions}"
]
}
],
"inputs": [
{
"id": "enterMooseDir",
"type": "promptString",
"description": "Directory of your moose app",
"default": "${env:HOME}"
},
{
"id": "enterCommand",
"type": "pickString",
"description": "CLI command to run",
"options": ["init", "dev", "update", "stop", "clean", "help"],
"default": "dev"
},
{
"id": "enterOptions",
"type": "promptString",
"description": "Extra options for the command",
"default": ""
}
]
}
We use semantic versioning to denote versions of the different components of the system.
We have automation that helps keep a really high cadence as we develop the initial version of the framework and ecosystem.
We might change how we release later in the lifecycle of the project.
Currently we release every time code that changes the framework or the CLI is merged to the main
branch. We are releasing from the trunk.
- By Default, every commit on
main
will increase the patch version. ie inx.y.(z+1)
- if the commit message contains
[minor-version]
, the bot will pick up on it and will set the version of the released packages asx.(y + 1).0
- if the commit message contains
[major-version]
, the bot will pick up on it and will set the version of the released packages as(x+1).0.0
- if the commit message contains
[no-release]
in the commit message. We do not release anything.
We ensure that we don't have conflicts as branches get merged in main by leveraging git linear history as well as the concurrency
github actions concept to enforce order.