diff --git a/docs/new_branch_checklist.md b/docs/new_branch_checklist.md new file mode 100644 index 0000000..f226cae --- /dev/null +++ b/docs/new_branch_checklist.md @@ -0,0 +1,155 @@ +## New Branch Checklist + +### Key + +| Code | Description | Example | +|-----------------|----------------------------|-------------| +| `` | New branch name | `lasker` | +| `` | New branch name titleized | `Lasker` | +| `` | New branch number | `12` | +| `` | Next branch name | `morphy` | +| `` | Next branch name titleized | `Morphy` | +| `` | Next branch number | `13` | +| `` | Next branch name | `morphy` | +| `` | Unnamed N+2 branch | `N-release` | + +### Steps + +1. Pause the mirror script + +2. Create the new branch + + - [X] In `manageiq-release@master` + - Update repos.yml file and add section for `` + - [X] `bin/release_branch.rb --branch ` + +3. Prepare development for the new branch + + - [X] Create release labels: `/yes`, `/yes?`, `/no`, `/backported`, and `/conflict`. + - [X] Update config/labels.yml with the new labels and features. Note: the new branch label is color #000000, the N-1 branch label color is #555555, the N-M branch label color is #dddddd + - [X] `bin/update_labels.rb` + +4. Code changes for new and master branches + + - [X] In `manageiq@` + - [X] Update Gemfile to change the ref for manageiq_plugin, manageiq-gems-pending, and amazon_ssa_support + - [X] Update Dockerfile to change the ref to `latest-` + - [X] Update docker-assets/README.md to change the ref + - [X] Update VERSION file to `-pre` + - [X] Commit and push the changes + - [X] In `manageiq@master` + - [X] Update lib/vmdb/appliance.rb CODENAME to `` + - [X] Update lib/vmdb/deprecation.rb version to `` + - [X] Commit and push the changes + - [X] In `manageiq-documentation@` + - [X] Update _data/site_menu.yml URLs from `latest` to `` + - [X] Commit and push the changes + - [X] In `manageiq-documentation@master` + - [X] Update _data/site_menu.yml and remove any `prior:` entries if they exist + - [X] Commit and push the changes if they exist + - [ ] In `manageiq-api@` + - [ ] Update lib/manageiq/api/version.rb and update the version number + - [ ] Commit and push the changes + - [ ] In `manageiq-api@master` + - [ ] Update lib/manageiq/api/version.rb and update the version number + - [ ] Commit and push the changes + - [X] In `manageiq-appliance-build@` + - [X] Update bin/nightly-build.sh BRANCH to `` + - [X] Update config/ova.json `vsphere_product_version` to `` + - [X] Commit and push the changes + - [X] In `manageiq-appliance-build@master` + - [X] Update kickstarts/partials/main/repos.ks.erb `-` to `-` + - [X] Update kickstarts/partials/post/repos.ks.erb `-` to `-`, if necessary + - [X] Commit and push the changes + - [X] In `manageiq-pods@lasker` + - [X] Update all files mentioning `latest` (except the operator `pullPolicy`) to `latest-` + - [X] Update all files mentioning `master` to `` + - [X] Commit and push the changes + - [X] In `manageiq-pods@master` + - [X] Update images/manageiq-base/Dockerfile + - `-` to `-` + - `manageiq-release-` to `manageiq-release-` + - [X] Commit and push the changes + - [X] In `manageiq-rpm_build@` + - [X] Update config/options.yml ref to `` + - [X] Ensure config/options.yml rpm.version is `.0.0` + - [X] Commit and push the changes + - [X] In `manageiq-rpm_build@master` + - [X] Build the manageiq-release RPM and upload it to the builds directory + - [X] Initial build of the RPM repo including the manageiq-release gem and other general dependencies + - [X] Update Dockerfile + - `-` to `-` + - `manageiq-release-` to `manageiq-release-` + - [X] Update config/options.yml + - rpm.version to `.0.0` + - rpm_repository.content `-` to `-` + - rpms.manageiq and rpms.manageiq-release `` in regex with ` + - [X] Rename packages/manageiq-release/manageiq--.repo to manageiq--.repo + - [X] Update packages/manageiq-release/manageiq--.repo + - `-` to `-` + - [X] Update packages/manageiq-release/manageiq-release.spec + - Version to `.0` + - `-` to `-` + - Update `%changelog` + - [X] Update rpm_spec/changelog + - Update `%changelog` + - [X] Commit and push the changes + - [X] Build and push the new rpm_build container to dockerhub + - [X] In `amazon_ssa_support@` + - [X] Update Gemfile to change the ref for manageiq-gems-pending + - [X] Commit and push the changes + - [X] In `container-amazon-smartstate@` + - [X] Update container-assets/Gemfile to change the ref for amazon_ssa_support and manageiq-gems-pending + - [X] Commit and push the changes + - [X] In `manageiq-providers-amazon@` + - [X] Update config/settings.yml agent_coordinator.docker_image from `latest` to `latest-` + - [X] Commit and push the changes + +5. Final development changes for the new branch + + - [X] Mark the new branch as protected + - `bin/update_branch_protection.rb -b ` + - [ ] Update miq-bot + - [ ] Add the new branch to each watched repo + - [X] Update the unassignable and unremovable labels for the new branch + - [X] Update triage links in https://github.com/ManageIQ/guides/blob/master/bin/triage.yml + +6. Prepare for the next branch + + - [X] Create the next milestone + - [X] `bin/update_milestone.rb --title --due-on "MMM dd, YYYY"` + - [X] Update https://manageiq.org/roadmap with new column `` + +7. Unpause the mirror script and adjust mirroring for the new branch + + +--- + +### Build + +- [X] Create a build machine for the new branch + +- [ ] Update docker hub autobuilds for manageiq-rpm_build container and container-amazon-smartstate +- [ ] Create a new box on Vagrant Cloud + +### OTHER (TODO CLEANUP) + +- [ ] Announce to talk.manageiq.org about the new branch + +- [ ] translations person to update transifex +- [ ] translations update +- [ ] Lock down ui-classic with yarn.lock +- [ ] Lock down manageiq with Gemfile.lock +- [ ] consolidate the CHANGELOG.md file +- [ ] new documentation needed to be generated for API? +- [ ] webmaster handle new documentation for website + +- [ ] ensure that container-httpd is locked down to a specific version of dbus_api_service +- [ ] ensure that httpd_configmap_generator is locked down to a specific version of httpd_configmap_generator + +- [ ] should we remove unused Ruby versions from .travis.yml on new branch? + +#### Downstream + +- [ ] Update options.yml with new branch and version +- [ ] Update Gemfile overrides with the new branch