Contributing to PageForge
Thank you for your interest in contributing to PageForge! This document provides guidelines and instructions for contributing to the project.
Development Setup
Fork and clone the repository:
git clone https://github.com/yourusername/pageforge.git cd pageforge
Create a virtual environment:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
Install development dependencies:
pip install -e ".[dev]"
Development Workflow
Branching Strategy
main: Stable release branchdevelop: Development branch for ongoing workFeature branches: Create from
developusing formatfeature/feature-nameBug fix branches: Create from
mainusing formatfix/bug-name
Making Changes
Create a new branch from
developfor your feature:git checkout develop git pull git checkout -b feature/your-feature-name
Make your changes and commit with meaningful messages:
git commit -m "feat: add new feature for X"
We follow Conventional Commits for commit messages.
Push your branch and create a Pull Request against
develop.
Testing
Run tests to ensure your changes don’t break existing functionality:
pytest
For test coverage report:
pytest --cov=src/pageforge --cov-report=term
Code Style
We follow PEP 8 style guidelines. Run linting before committing:
flake8 src/ tests/
Pull Request Guidelines
Update documentation if you’re changing functionality
Include tests for new features
Update the CHANGELOG.md file if appropriate
Make sure all tests pass before submitting
Reference any related issues in your PR description
Documentation
When adding new features, please update the documentation:
Add docstrings to new functions, classes, and methods
Update or add examples in the
docs/examples.mdfileUpdate API documentation in
docs/api.mdif you’ve changed the public API
To build the documentation locally:
cd docs
pip install -r requirements.txt
make html
Then open docs/_build/html/index.html in your browser.
Release Process
Ensure all tests pass on
developUpdate version in
src/pageforge/__init__.pyUpdate CHANGELOG.md
Merge
developintomainTag the release:
git tag v0.1.0Push the tag:
git push origin v0.1.0Create a new release on GitHub
Code of Conduct
Please be respectful and inclusive in your interactions with other contributors. We aim to foster an open and welcoming environment for everyone.
License
By contributing to PageForge, you agree that your contributions will be licensed under the project’s MIT License.