Contributing to FastEdgy¶
FastEdgy is an Open Source, community-driven project. We welcome contributions from everyone!
Getting Started¶
Issues and feature requests are tracked in the Github issue tracker.
Pull Requests are tracked in the Github pull request tracker.
Development Setup¶
- Fork the repository
- Clone your fork locally
- Install dependencies with
uv sync
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
Commit Message Conventions¶
This project uses the Conventional Commits naming convention.
Basic structure of a Conventional commit¶
- type: the type of modification made (required)
- scope: the scope (optional, but recommended)
- description: a short explanation (imperative, no capital letters, no period)
Conventional Commits Types used¶
Type | Description |
---|---|
feat | New feature |
fix | Bug fix |
docs | Change in documentation |
style | Change of format (indentation, spaces, etc.) without functional impact |
refactor | Refactoring the code without adding or correcting functionality |
revert | Reverting a previous commit |
merge | Merging branches |
test | Adding or modifying tests |
chore | Miscellaneous tasks without direct impact (build, dependencies, configs, etc.) |
perf | Performance improvement |
ci | Changes to CI/CD files (Github Actions, Gitlab CI, etc.) |
release | Creating a new release |
Conventional Commits Scopes used¶
Scope | Description |
---|---|
core | Core backend logic and main platform features |
cli | CLI commands and related functionality |
orm | ORM models, migrations, and related logic |
auth | Authentication and authorization mechanisms |
api | REST API endpoints, routes, and controllers |
config | Global configuration and environment settings |
project | Project structure, global files, and overall management |
Code Style¶
- Follow PEP 8 guidelines
- Use type hints for all function parameters and return values
- Write docstrings for all public functions and classes
- Keep functions small and focused
- Write meaningful variable and function names
Testing¶
- Write tests for all new features
- Ensure existing tests continue to pass
- Aim for high test coverage
- Use pytest for testing framework
Documentation¶
- Update documentation for any new features
- Include code examples in docstrings
- Keep README.md up to date
- Use clear, concise language
Pull Request Guidelines¶
- Create descriptive PR titles following conventional commit format
- Provide detailed descriptions of changes made
- Reference related issues using
#issue_number
- Ensure tests pass before submitting
- Update documentation as needed
- Keep PRs focused - one feature or fix per PR
Questions?¶
Feel free to open an issue for any questions about contributing to FastEdgy!