Contributing#
Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
Bug reports#
When reporting a bug please include:
Your operating system name and version.
Any details about your local setup that might be helpful in troubleshooting.
Detailed steps to reproduce the bug.
Documentation improvements#
laser_measles could always use more documentation, whether as part of the official laser_measles docs, in docstrings, or even on the web in blog posts, articles, and such.
Feature requests and feedback#
The best way to send feedback is to file an issue at InstituteforDiseaseModeling/laser-measles#issues.
If you are proposing a feature:
- Explain in detail how it would work. 
- Keep the scope as narrow as possible, to make it easier to implement. 
- Remember that this is a volunteer-driven project, and that code contributions are welcome :) 
Development#
To set up laser-measles for local development:
- Fork laser-measles (look for the “Fork” button). 
- Clone your fork locally: - git clone git@github.com:YOURGITHUBNAME/laser-measles.git 
- Create a branch for local development: - git checkout -b name-of-your-bugfix-or-feature - Now you can make your changes locally. 
- When you’re done making changes run all the checks and docs builder with one command: - tox
- Commit your changes and push your branch to GitHub: - git add . git commit -m "Your detailed description of your changes." git push origin name-of-your-bugfix-or-feature 
- Submit a pull request through the GitHub website. 
Pull Request Guidelines#
If you need some code review or feedback while you’re developing the code just make the pull request.
For merging, you should:
- Include passing tests (run - tox).
- Update documentation when there’s new API, functionality etc. 
- Add a note to - CHANGELOG.rstabout the changes.
- Add yourself to - AUTHORS.rst.
Tips#
To run individual tox environments:
# Run code quality checks (linting, formatting, etc.)
tox -e check
# Run tests (including slow tests)
tox -e py312
# Run tests excluding slow tests (same as CI)
tox -e py312-ci
# Build documentation
tox -e docs
To run a subset of tests:
tox -e envname -- pytest -k test_myfeature
To run all the test environments in parallel:
tox -p auto
Version Management#
This project uses bump-my-version for automated version management. The tool is configured in pyproject.toml and automatically updates version numbers across multiple files.
Common version bump commands:
# Patch release (bug fixes): 0.7.0 -> 0.7.1
bump-my-version bump patch
# Minor release (new features): 0.7.0 -> 0.8.0
bump-my-version bump minor
# Major release (breaking changes): 0.7.0 -> 1.0.0
bump-my-version bump major
# Development version: 0.7.0 -> 0.7.1-dev0
bump-my-version bump patch --new-version 0.7.1-dev0
# Release candidate: 0.7.1-dev0 -> 0.7.1-rc0
bump-my-version bump pre_l --new-version 0.7.1-rc0
The tool automatically updates version numbers in:
- pyproject.toml
- setup.py
- docs/conf.py
- src/laser_measles/__init__.py
- .cookiecutterrc
By default, bump-my-version will create a git commit and tag. The configuration supports semantic versioning with pre-release labels (dev, rc, final).
