Contributing to mesa-frames π¶
Thank you for taking the time to contribute to mesa-frames! Since the project is still in its early stages, we warmly welcome contributions that will help shape its development. π
For a more general and comprehensive guide, please refer to mesa's main contribution guidelines. π
Project Roadmap πΊοΈ¶
Before contributing, we recommend reviewing our roadmap file to understand the project's current priorities, upcoming features, and long-term vision. This will help ensure your contributions align with the project's direction.
How to Contribute π‘¶
1. Prerequisite Installations βοΈ¶
Before you begin contributing, ensure that you have the necessary tools installed:
- Install Python (at least the version specified in
requires-python
ofpyproject.toml
). π - We recommend using a virtual environment manager like:
- Astral's UV π
- Hatch ποΈ
- Install pre-commit to enforce code quality standards before pushing changes:
- Pre-commit installation guide β
- More about pre-commit hooks
- If using VS Code, consider installing these extensions to automatically enforce formatting:
- Ruff β Python linting & formatting πΎ
- Markdownlint β Markdown linting (for documentation) βοΈ
- Git Hooks β Automatically runs & visualizes pre-commit hooks π
2. Contribution Process π οΈ¶
Step 1: Choose an Issue π¶
- Pick an existing issue or create a new one if necessary.
- Ensure that your contribution aligns with the project's goals.
Step 2: Set Up Your Local Repository π»¶
- Fork the repository on GitHub.
- Clone your fork to your local machine:
- Create a new branch with a descriptive name:
- Prevent merge commit clutter by setting rebase mode:
Step 3: Install Dependencies π¦¶
It is recommended to set up a virtual environment before installing dependencies.
- Using UV:
- Using Hatch:
- Using Standard Python:
python3 -m venv myenv
source myenv/bin/activate # macOS/Linux
myenv\Scripts\activate # Windows
pip install -e ".[dev]"
Step 4: Make and Commit Changes ⨶
- Make necessary edits and save the code.
- Add and commit your changes with meaningful commit messages:
- Keep commits small and focused on a single logical change.
- Follow Tim Popeβs commit message guidelines. π
Step 5: Code Quality and Testing β ¶
- Run pre-commit hooks to enforce code quality standards:
- Run tests to ensure your contribution does not break functionality:
- If using UV:
uv run pytest --cov
Step 6: Documentation Updates (If Needed) π¶
- If you add a new feature, update the documentation accordingly.
- We use MKDocs for documentation:
- Modify or create markdown files in the
docs/
folder. -
Preview your changes by running:
-
Open
http://127.0.0.1:8000
in your browser to verify documentation updates.
Step 7: Push Changes and Open a Pull Request (PR) π¶
- Push your changes to your fork:
- Open a pull request (PR):
- Follow GitHubβs PR guide.
- Link the issue you are solving in the PR description.
Thank you again for your contribution! π