Skip to content

Version Bump Process

Kevin Chang edited this page Sep 2, 2021 · 47 revisions

Version Bump Process

Sage, Kajabi's design system, touches on many aspects of the Kajabi application. Rather than merge our PR's directly into the main branch (main), we merge all work into develop first, then, regularly and in a controlled process (see steps below), we merge develop into main. This merge kicks off the Version Bump process. Follow the steps in this document to bump the sage-lib packages into kajabi-products.

1. Last call for Bump PR's

Every Tuesday, in the Slack #ux-dev channel, two messages will automatically broadcast as a reminder to submit PR's for this week's Sage Version Bump.

Every Wednesday, all new PR's for Sage are to be included in the following weeks' version bump

2. Move to "Ready for review" and get PR approved

  1. First thing Wednesday, move the PR out of Draft and into Review. See this link for how to convert PR to "Ready for review".
  2. At least one other approval is needed to approve this PR.

3. Ensure main and develop branches are up-to-date

Before merging, ensure the develop and main branches in sage-lib are up-to-date. Run the following steps:

  1. git checkout main
  2. git pull
  3. git checkout develop
  4. git pull
  5. git rebase main
  6. git push -f

4. Merge develop into main

  1. Merge the branch into main
    • Do not delete the branch when prompted
  2. View Actions to determine all workflows are successful
    • This process can take approx. 5-10 minutes to complete
    • If any Jobs fail, reach out to the #ux-dev channel for assistance, if needed
  3. Once the Jobs are successful, follow the steps in #3 one more time

5. Update kajabi-products

  1. Destroy the bridge to kajabi-products within sage-lib

    • yarn bridge:kajabi-products:destroy
  2. Create a branch in kajabi-products for the version update, example of a recent branch/PR

  3. Update the versions and refresh the lock files

    1. Open Gemfile and locate gem "sage_rails".
      • Update sage@ to match the version for @kajabi/sage@ in the tags page
    2. Open package.json and locate @kajabi/sage-packs and @kajabi/sage-react.
      • Update each to match the version in @kajabi/sage-packs and @kajabi/sage-react@ in the tags page
    3. Run yarn refresh. This will result in five files changed:
      • Gemfile
      • Gemfile.lock
      • Gemfile_next.lock
      • package.json
      • yarn.lock
  4. Commit and push changes in order to open the kajabi-products version bump PR. The PR should follow this template

  5. Remove the PR numbers from the kajabi-products PR details to avoid GitHub linking to the wrong issues

6. QA Approval

  • Announce the PR as an FYI to the #dev and #ux-quality Slack channels. Here is a sample message:

:sage: FYI we have a Sage bump drafted here for v[version]. Welcoming any reviews. [link]

  • Once QA from all teams have approved the PR, the PR can be merged

Patches to sage-lib

If any patches are needed to sage-lib after the develop branch PR is merged, follow the steps below.

  1. Create a PR directly to the main branch
  2. Once approved, merge PR to main
  3. GitHub Actions will trigger new packages and versions
  4. Update the kajabi-products Version Bump PR with the latest version numbers by following the steps starting in Step 5, number 2
  5. Rebase develop against main following steps in #3

Patches to the kajabi-products Version Bump PR

🛑 Refer to the steps in the decision tree to determine whether a patch or revert is needed to continue.

7. Merge kajabi-products Version Bump PR

  1. Merge the PR
  2. Notify the #dev and #ux-quality channels with the great news
  3. 🎉

8. Sage release cleanup

1. Update the release version on Github

  1. Create a new release by clicking the "Draft a new release" link on the Github Releases page.
  2. For the tag version, type the version number as v[version]
  3. Update the branch to indicate @Target: main
  4. In the "Release title" field, type v[version] as the release title
  5. In the "Describe this release" textarea, link to the sage-lib version bump PR as "change log"
  6. Click "Publish release"

2. Update the release version in #uxd Slack channel for the topic

3. Close and update milestones in GitHub

  1. In either the GitHub Issues or Pull Requests view of the repo, click on "Milestones" near the top of the page
  2. Find the title of the milestone that you've just released (this should appear in the semantic versioning format vX.Y.Z, and match the released version number)
  • If the release version number does not exactly match your release number, edit the milestone and modify the release number to the actual release number
  1. Click "Close", located underneath the completion % meter to close the milestone
  2. If the next (upcoming) milestone is not displayed in the list, create a new milestone using the same numbering format vX.Y.Z. In most cases, the only change will be to the minor version/second digit (Y), which is incremented by 1. The other two version numbers will remain the same as the previous version.

Templates

kajabi-products Version Bump PR Template

Description

This PR bumps Sage to:

  • Sage Rails v[num] (Gemfile)
  • Sage Packs v[num] (package.json)
  • Sage React v[num] (package.json)

View the master change log for what's included.

Impact

(... steps copied from sage-lib next version bump PR with PR numbers removed)