Contributing¶
Contributions are welcome! Every bit helps, and credit will always be given.
Ways to Contribute¶
Report Bugs¶
Report bugs at github.com/chekos/pypums/issues.
When reporting a bug, please include:
- Your operating system and Python version
- The exact code that produced the error
- The full traceback
- What you expected to happen
Fix Bugs¶
Look through the GitHub issues for bugs. Anything tagged with “bug” and “help wanted” is open to whoever wants to implement it.
Implement Features¶
Look through the GitHub issues for features. Anything tagged with “enhancement” and “help wanted” is open to whoever wants to implement it.
Write Documentation¶
PyPUMS can always use better documentation, whether it’s improving existing guides, adding new examples, or writing blog posts.
Submit Feedback¶
File an issue at github.com/chekos/pypums/issues.
If you’re proposing a feature:
- Explain in detail how it would work
- Keep the scope as narrow as possible
- Remember that this is a volunteer-driven project
Development Setup¶
-
Fork the pypums repo on GitHub.
-
Clone your fork locally:
-
Install uv and set up the project:
For working on documentation:
For spatial features:
-
Create a branch for your changes:
-
Make your changes and run the tests:
Run specific test phases:
-
Check code style:
-
Commit your changes and push:
-
Submit a pull request through GitHub.
Pull Request Guidelines¶
Before you submit a pull request:
- The pull request should include tests.
- If the pull request adds functionality, update the docs. Add a docstring to any new public function.
- The pull request should work for Python 3.10+.
- Make sure the tests pass by checking the GitHub Actions results.
Code Style¶
- We use Ruff for linting and formatting
- Target Python 3.10+
- NumPy-style docstrings for all public functions
- Type hints throughout