This project uses mise to manage tasks used for building and testing.
-
Install mise
-
Install mise globally
See here
-
Installing mise locally
If you don't want to install mise globally, you can perform a local install using the provided bootstrap script.
- Run
./tools/miseto download and install mise in the.misefolder - (optional) Activate mise in your shell
- Run
-
-
Run
mise run installto install all dependencies and pre-commit hooks -
See tasks documentation for more details
- Fork the strawchemy repository
- Clone your fork locally with git
- Set up the environment
- Make your changes
- Run
mise run lintto run linters and formatters. This step is optional and will be executed automatically by git before you make a commit, but you may want to run it manually in order to apply fixes automatically by git before you make a commit, but you may want to run it manually in order to apply fixes - Commit your changes to git
- Push the changes to your fork
- Open a pull request. Give the pull request a descriptive title indicating what it changes. If it has a corresponding
open issue, the issue number should be included in the title as well. For example a pull request that fixes issue
bug: Increased stack size making it impossible to find needle #100could be titledfix(#100): Make needles easier to find by applying fire to
💡 Tip
Pull requests and commits all need to follow the Conventional Commit format
We enforce conventional commit messages using the conventional-commit pre-commit hook. This format is essential for maintaining consistent commit history and supports the automated release process (see below for details).
Your commit messages should follow this format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Examples of valid commit messages:
feat: add new graph analysis methodfix: resolve memory leak in solver backenddocs: update installation instructionstest: add unit tests for network import
Common types: feat, fix, docs, style, refactor, test, chore
When you commit changes, the pre-commit hooks will:
- Check your code with ruff for style errors and automatically fix what it can
- Validate your commit message format using conventional commits
- Run additional checks like trailing whitespace removal and large file detection
- Verify uv configuration and lock file consistency
If any hook finds errors that cannot be automatically fixed, the commit will be blocked until these errors are resolved. This helps maintain code quality and consistency across contributions.
-
Run the bump workflow to bump the version and create a tag.
Note: You can use the
autoinput when running the action to let cocogitto figure out the next version number. You can also choose one ofmajor,minororpatch. -
Go to Actions and approve the release workflow
Check that the release and then the publish workflows run successfully
- Run
mise run auto-bumpto automatically bump the version - Push your changes