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
dev
requires 2 approvals.
test
#
Purpose: Intermediate branch used for integration and testing of features before moving to
main
.Usage: Changes from
dev
are periodically pulled intotest
for vigorous testing. This ensures that new features and fixes are properly tested before being considered stable.Approval: Merging to
test
requires at least 1 approval.
main
#
Purpose: Primary branch representing the latest stable release that is ready for production.
Usage: Once changes in
test
are confirmed to be stable, the version number is updated, and updates are pulled intomain
. Themain
branch 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
dev
to 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
dev
intotest
.Testing: Conduct rigorous testing on the
test
branch to ensure all features and fixes are stable.Feedback: Address any issues found during testing by pushing fixes to
dev
and then merging the updates back intotest
.
Merging to main
#
Stability Confirmation: Once the
test
branch is confirmed to be stable, update the version number in bothTaskManager
and the change log. RuFaS Versioning PolicyPull Updates: Pull the stable updates from
test
intomain
.Approval: Only Pooya Hekmati and Kristan Reed can merge PRs into
main
to ensure high-quality, stable releases.
Best Practices#
Consistent Testing: Ensure thorough testing is done in
test
before 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.