Branching Strategy in RuFaS#
In this wiki, we outline the branching strategy used in RuFaS, detailing the purpose of each branch and the process for merging changes.
Branches Overview#
dev#
Purpose: Active development branch where new features and changes are implemented.
Usage: All pull requests (PRs) are merged into
dev. This is the main branch for ongoing development.Approval: Merging to
devrequires 2 approvals.
test#
Purpose: Intermediate branch used for integration and testing of features before moving to
main.Usage: Changes from
devare periodically pulled intotestfor vigorous testing. This ensures that new features and fixes are properly tested before being considered stable.Approval: Merging to
testrequires at least 1 approval.
main#
Purpose: Primary branch representing the latest stable release that is ready for production.
Usage: Once changes in
testare confirmed to be stable, the version number is updated, and updates are pulled intomain. Themainbranch is locked, and only Pooya Hekmati and Kristan Reed have the permissions to merge PRs into it.
Merging Process#
Merging to dev#
Develop: Create feature branches off
devto work on new features or fixes.Submit PR: Once the feature is ready, create a pull request to merge it into
dev.Review: The code is reviewed following the code review process in RuFaS.
Merge: After approval, the PR is merged into
dev.
Merging to test#
Periodic Updates: Periodically, pull changes from
devintotest.Testing: Conduct rigorous testing on the
testbranch to ensure all features and fixes are stable.Feedback: Address any issues found during testing by pushing fixes to
devand then merging the updates back intotest.
Merging to main#
Stability Confirmation: Once the
testbranch is confirmed to be stable, update the version number in bothTaskManagerand the change log. RuFaS Versioning PolicyPull Updates: Pull the stable updates from
testintomain.Approval: Only Pooya Hekmati and Kristan Reed can merge PRs into
mainto ensure high-quality, stable releases.
Best Practices#
Consistent Testing: Ensure thorough testing is done in
testbefore merging intomain.Clear Communication: Keep all team members informed about the status of each branch and any important changes.
Documentation: Maintain clear and up-to-date documentation for all changes and testing procedures.
Review and Approval: Adhere to the code review guidelines to maintain code quality and stability.
By following this branching strategy, we ensure a clear and structured workflow that supports continuous integration and delivery, maintaining the high standards of code quality in RuFaS.