This document outlines the process for contributing to the project and provides guidelines to ensure a smooth collaboration.
- Getting Started
- Branching Strategy
- Making Changes
- Submitting a Pull Request
- Code Review Process
- Coding Standards
- Testing
- Documentation
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/your-username/mountainash-data.git - Add the original repository as a remote:
git remote add upstream https://github.com/mountainash-io/mountainash-data.git - Create a new branch for your contribution (see Branching Strategy).
We follow a git-flow branching methodology. The following branch naming conventions are allowed:
main: The main production branchdevelop: The main development branchfeature/*: For new featureschore/*: For maintenance tasksrelease/*: For release preparationhotfix/*: For critical bug fixes in productionbugfix/*: For non-critical bug fixesrenovate/*: For dependency updates (automated)
The following branches are strictly protected and require code owner review and repository owner approval for pull requests:
maindeveloprelease/*
- Ensure you're working on the correct branch (e.g.,
feature/new-featurefor a new feature). - Make your changes in small, logical commits.
- Follow the Coding Standards of the project.
- Add or update tests as necessary (see Testing).
- Update documentation if required (see Documentation).
- Push your changes to your fork on GitHub.
- Open a pull request against the appropriate branch:
- For features, chores, and bugfixes, target the
developbranch. - For hotfixes, target the
mainbranch.
- For features, chores, and bugfixes, target the
- Provide a clear title and description for your pull request.
- Reference any related issues in the pull request description.
- Ensure all checks (tests, linting, etc.) pass successfully.
- All pull requests require at least one review from a code owner.
- For protected branches (
main,develop,release/*), additional approval from a repository owner is required. - Address any feedback or comments provided during the review process.
- Once approved, a maintainer will merge your pull request.
- Follow PEP 8 style guide for Python code.
- Use type hints where appropriate.
- Write clear, self-documenting code with meaningful variable and function names.
- Keep functions and methods focused and concise.
- Use comments sparingly, only when necessary to explain complex logic.
- Write unit tests for all new functionality.
- Ensure all existing tests pass before submitting a pull request.
- Aim for high test coverage, especially for critical parts of the codebase.
- Use pytest for writing and running tests.
- For detailed information on how to run tests and our testing procedures, please refer to our TESTING.md file.
- Update the README.md file if your changes affect the project's setup or usage.
- Document new features or changes in behavior in the appropriate documentation files.
- Keep docstrings up-to-date for all public functions, classes, and modules.