Thank you for your interest in contributing to the Aggify project! We welcome contributions from the community. By contributing, you can help make this project even better.
1 - Fork the Repository: Start by forking the Aggify repository to your GitHub account.
2 - Clone the Repository: Clone the forked repository to your local development environment:
git clone https://github.com/Aggify/aggify.git3 - Create a New Branch: Create a new branch to work on your feature or bug fix:
git checkout -b feature-or-bugfix-name4 - Code and Test: Make your changes, add new features, or fix bugs. Write unit tests to cover your code changes.
5 - Documentation: If you make any changes to the code, ensure that the code comments and documentation are updated accordingly.
6 - Commit: Commit your changes with a descriptive commit message. Make sure your commits follow a clear and concise format. For example:
git commit -m "Added a new feature: [Brief Description]"7 - Push: Push your changes to your forked repository:
git push origin feature-or-bugfix-name8 - Create a Pull Request: Open a pull request from your forked repository to the Aggify main repository on GitHub.
9 - Code Review: Your pull request will be reviewed by project maintainers. Be prepared to make additional changes if requested.
10 - Merge: Once your pull request is approved, it will be merged into the main repository.
make install # editable install + test/doc dependencies
make mongo # single-node replica set in Docker on :27018 (transactions need a replica set)
make test # pytest (unit + integration + framework tests)
make lint typecheck docsTests marked mongo skip themselves when no server is reachable; set AGGIFY_TEST_MONGO_URI to use your own.
A new lookup, field or stage needs: a unit test of the compiled output, an integration test against MongoDB and
(if user-facing) a docs entry. Anything touching query construction must keep tests/integration/test_differential.py
and tests/test_security.py green.
- Follow Python PEP 8 style guidelines for code formatting.
- Write clear and concise code comments and docstrings.
- Ensure all code changes are covered by unit tests.
- Test your code thoroughly before submitting a pull request.
- If you're adding a new feature, provide documentation on how to use it.
- Keep pull requests focused. If you have multiple unrelated changes, submit separate pull requests.
- Be respectful and considerate of other contributors.
If you find a bug, have a question, or want to propose a new feature, please open an issue on the GitHub repository.
Thank you for your contributions and support. Together, we can improve Aggify for everyone.