Contributing
Contributions to Strom are welcome! Please first open an issue to discuss the idea/change you have in mind.
After that you can propose changes by:
- Fork the repository
- Create a feature branch
- Submit a pull request with a clear description of your changes
Development setup
git clone https://github.com/Bloodwing1/Strom.git
cd Strom
mise run install # creates the venv, installs Strom with dev tooling, sets up git hooks
If you don’t use mise: create a Python 3.12.8 virtual environment and run pip install -e ".[dev]".
The most useful commands (all defined in .mise.toml):
mise run check— lint, type-check and deterministic tests; this is what CI blocks onmise run test-integration— live provider canaries (requires API keys)mise run mutation— mutation testing of the safety-critical modules (slow)
Git hooks (via husky) run the linter on commit and the full check on push; enable them with mise run hooks. The tests in tests/ run without network access or API keys, so they are safe to run locally at any time.