Skip to content

Version Bump Process

Monica Wheeler edited this page Aug 4, 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 (master), we merge all work into develop first, then, regularly and in a controlled process (see steps below), we merge develop into the main branch. 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 master and develop branches are up-to-date

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

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

4. Merge develop into master

  1. Merge the branch into master
    • Do not delete the branch when prompted
  2. View the pipeline to determine all Jobs are passed
    • This process can take approx. 5-10 minutes to complete
    • Ensure that the "release" Job is green before continuing to the next step
    • 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. CC to your team's tech lead and QA. Here is a sample message:

:sage: FYI we have a Sage bump drafted here for v[version]. Welcoming any reviews. [link] CC: your tech lead/qa

  • 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 these steps.

  1. Create a PR directly to the master branch
  2. Once approved, merge PR to master
  3. CI 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 master following steps in #3

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

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. In the "Release title" field, type v[version] as the release title
  4. In the "Describe this release" textarea, link to the version bump PR
  5. Click "Publish release"

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


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)