-
Notifications
You must be signed in to change notification settings - Fork 6
Change Management Plan
This strategy is taken and modified from Microsoft.
- Use feature branches for all new features and fixes
- Merge feature branches into the
develop
branch using pull requests - When ready to deploy to production, merge
develop
into themain
branch, conduct QA testing, then deploy when ready. - Deploying VRO describes how branches are used for deploying specific versions of the code.
- See Repository Branch Protection Settings for more configuration settings
Develop your features and fix bugs in feature branches based off your develop
branch. These branches are also known as topic branches. Feature branches isolate work in progress from the completed work in the develop
branch. Even small fixes and changes should have their own feature branch.
Creating feature branches for all your changes makes reviewing history simple. Look at the commits made in the branch and look at the pull request that merged the branch.
The review that takes place in a pull request is critical for improving code quality. Only merge branches through pull requests that pass your review process. Avoid merging branches to the develop
branch without a pull request.
- Pull Requests guidelines
- Development process
Pull Request Policy:
- All pull request reviews will require at least 2 approvals
- Draft pull requests should be created immediately when work on a branch begins. This is facilitate conversations about in-progress tasks and ensure no work gets forgotten in an orphaned branch.
- All pull requests will use
Squash and Merge
Certain Github Actions are triggered for pull requests to scan the changes to meet security requirements and coding style conventions.
A PR template is a way to automatically populate the body of a PR, to ensure developers fill in useful information for the team to share context and have a historical record of changes.
The PR template is https://github.com/department-of-veterans-affairs/abd-vro/blob/develop/.github/pull_request_template.md.
Triggering a new release is currently a deliberate decision and is detailed in Deploying VRO.
All of the pipeline releases will be created from tags off main
. The team decides when to release a new version following best practices. We should encourage following the semver definition of:
- patch versions including minor updates or changes
- minor versions including updates and added functionality that is backwards compatible
- major versions including breaking changes and added functionality
Each release will contain Release Notes specifying bug fixes, breaking changes, and new features.
Deploy to Prod describes details about deploying to releases to production.
The following branch protection rules should be applied against main
and develop
:
- Require a pull request before merging
- Require Approvals: 2 approvers
- Require status checks to pass before merging
- Require branches to be up to date before merging