Skip to content

Version Bump Process

Monica Wheeler edited this page Aug 6, 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. 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 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

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)