Skip to content

Latest commit

 

History

History
59 lines (47 loc) · 2.83 KB

CONTRIBUTING.md

File metadata and controls

59 lines (47 loc) · 2.83 KB

Contributing to Aggify

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.

How to Contribute

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.git

3 - Create a New Branch: Create a new branch to work on your feature or bug fix:

git checkout -b feature-or-bugfix-name

4 - 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-name

8 - 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.

Development setup

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 docs

Tests 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.

Guidelines

  • 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.

Reporting Issues

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.