The Clue project follows a Git flow branching model to ensure stable releases and organized development:
main: Contains production-ready code. All releases are tagged from this branch. Direct commits tomainare restricted.develop: The integration branch for new features and the primary development branch. All feature branches are created from and merged back intodevelop.
- Feature branches: Created from
developfor new features or enhancements. Use descriptive names likefeature/add-oauth-providerorfeature/improve-caching. - Release branches: Created from
developwhen preparing for a new release (e.g.,release/v2.1.0). Used for final testing and minor bug fixes. - Hotfix branches: Created from
mainfor critical bug fixes that need immediate deployment (e.g.,hotfix/security-patch).
- Feature Development: Create a feature branch from
develop - Integration: Merge completed features into
developvia pull request - Release Preparation: Create a release branch from
developwhen ready for release - Production Release: Merge release branch into both
mainanddevelop, then tag the release - Hotfixes: If critical issues are found in production, create hotfix branches from
main
All code changes must go through the pull request process to ensure code quality and maintain project standards:
-
Create Feature Branch: Create a new branch from
developwith a descriptive namegit checkout develop git pull origin develop git checkout -b feature/your-feature-name
-
Implement Changes: Make your changes, following the project's coding standards and including appropriate tests
-
Open Pull Request: Create a PR targeting the
developbranch with:- Clear, descriptive title
- Detailed description of changes
- Reference to any related issues
- Screenshots or examples if applicable
-
Fork Repository: Fork the Clue repository to your GitHub account
-
Clone and Setup: Clone your fork and set up the development environment as described in this guide
-
Create Feature Branch: Create a branch from
developin your fork -
Implement and Test: Make your changes and ensure all checks pass
-
Submit Pull Request: Open a PR from your fork's feature branch to the main repository's
developbranch
-
Required Approvals: All pull requests require at least two approvals from project maintainers
-
Automated Checks: PRs must pass all automated checks including:
- Unit tests and integration tests
- Code formatting and linting
- Type checking
- Security scans
-
Code Review: Reviewers will examine:
- Code quality and adherence to project standards
- Test coverage and quality
- Documentation updates if needed
- Security implications
- Performance considerations
- Merge to Develop: Once approved and all checks pass, the PR is merged into
develop - Release Cycle: Features merged into
developwill be included in the next release whendevelopis merged intomain - Release Timeline: Release schedules are determined by the project maintainers based on feature readiness and testing completion. There's no guaranteed duration from merge to release.
In order to maintain high code quality in clue:
- Keep PRs focused and reasonably sized
- Include comprehensive test coverage for new features
- Update documentation for user-facing changes
- Rebase your branch if requested to maintain a clean history
- All PRs will be squash merged into the trunk.
You can reach the Clue developemnt team on the CCCS aurora discord: https://discord.gg/GUAy9wErNu