First time contributors can refer to First Contributions for learning basics.
Refer to project management docs for tagging appropriate labels.
When submitting a bug report, please include:
- A clear, descriptive title prefixed with [BUG]
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Any error messages or screenshots
- Your environment details (OS, Python version, etc.)
- Check skipped.json, error.json - make sure you add job portal link so that others can reproduce and fix the issue.
For feature requests, please:
- Prefix the title with [FEATURE]
- Include a feature summary
- Provide a detailed feature description
- Explain your motivation for the feature
- List any alternatives you've considered
main- tested code, protected branch- Contributors need to create their working branch from
mainand point pull requests tomain
- Semantic versioning:
vMAJOR.MINOR.PATCH - Release tags on
mainbranch only - Package versions match git tags
Week one for release/v4.1.0:
- Planning meeting for
release/v4.1.0with release scope and milestone objectives set by the maintainers. Release and maintainer meeting agendas and schedules are posted on the project repository wiki and shared in the#releaseschannel on Discord. release/v4.0.0release candidate ready for releaserelease/v4.0.0merge intodevelop,main- Tag
mainasrelease/v4.0.0 release/v4.0.0published to AIHawk/releases and PyPI as a package with release documentation- Delete
release/v4.0.0branch
Release/v4.1.0 release weeks:
- Contributors work on issues and PRs, prioritizing next milestone
- Maintainers review PRs from
feature/*,bugfix/*branches and issues, merging intodevelop - Maintainers review PRs from
hotfix/*branches and issues, merged intomainanddevelop,maintagged and merged into4.0.1package andrelease/v4.0.1andrelease/v4.1.0, documentation is updated
Last week, release candidate:
developis frozen, only bug fixes- Create release branch
release/v4.1.0fromdevelop - Only bug fixes are merged into
release/v4.1.0 - Additional testing and release candidate review
Week one is repeated for release/v4.2.0.
gantt
title Release Cycle Process
dateFormat YYYY-MM-DD
section Retro/Plan
Planning release/v4.1.0 : 2025-01-01, 2d
Publish release/v4.0.0 :milestone, m1, 2025-01-01, 1d
section Dev Cycle
Feature Development :2025-01-03, 27d
PR Reviews :2025-01-03, 27d
section Release
Freeze develop :milestone, m3, 2025-01-30, 1d
Create release/v4.1.0 :milestone, m4, 2025-01-30, 1d
Bug Fixes Only :2025-01-30, 2d
RC Testing :2025-01-30, 2d
section Next Cycle
Skip Weekend :2025-02-01, 2d
Planning release/v4.2.0 :2025-02-03, 2d
Publish release/v4.1.0 :milestone, m4, 2025-02-03, 1d
- Fork the repository
- Create a new branch for your feature or bug
- Write clear commit messages
- Update documentation as needed
- Add tests for new functionality
- Ensure tests pass
- Submit a pull request with a clear description
- All PRs are reviewed by maintainers
- At least 2 maintainers approve PRs for merge
- PRs are merged into
develop - PRs are tested and verified to work as expected
- Follow PEP 8 standards for Python code
- Include docstrings for new functions and classes
- Add comments for complex logic
- Maintain consistent naming conventions
- Security best practices
- Any performance considerations
- Clone the repository
- Install dependencies from requirements.txt
- Set up necessary API keys and configurations
Before submitting a PR:
- Test your changes thoroughly
- Ensure existing tests pass
- Add new tests for new functionality
- Verify functionality with different configurations
- Be respectful and constructive in discussions
- Use clear and concise language
- Reference relevant issues in commits and PRs
- Ask for help when needed
The project maintainers reserve the right to reject any contribution that doesn't meet these guidelines or align with the project's goals.