Skip to content

Latest commit

 

History

History
87 lines (64 loc) · 3.59 KB

RELEASE-PROCESS.md

File metadata and controls

87 lines (64 loc) · 3.59 KB

Release process

  1. Create a release commit

    1. Run prepublish script from the root of your local git repo. This will bump the version, build the documentation, and transpile + bundle dist assets.

      ./scripts/prepublish.sh
      
    2. Commit and push to master:

      git commit -a -m "Release v[1.1.0]"
      git push
      
    3. Create a release

      1. Draft a new release on GitHub
      2. Tag the release using the SemVer specification release format. For example, v1.1.0
      3. Title the release using the release number. For example, 1.1.0
      4. Follow the format below for the release notes, then publish.
      ## 🚨 Breaking changes
      ## 🚀 Added
      ## 💅 Changed
      ## 🛠 Fixed
      ## 📦 Internal
      

      Note: View commits since the last release on github by going to the releases page or run: git log `git describe --tags --abbrev=0`..HEAD --oneline

  2. Publish to NPM

    1. Log into NPM as cmsgov: npm whoami.
      1. To use an access token, edit your ~/.npmrc file so the contents are //registry.npmjs.org/:_authToken={token}
    2. Ensure JS unit tests, JS linting, and Sass linting pass locally.
      yarn test
      
    3. Publish the release to NPM by running
      ./scripts/publish.sh
      
      This will run npm publish for each public package in packages/. Note: You should only publish the master branch to NPM. The publish script above will check out the master branch if it isn't currently the HEAD.
  3. Update the documentation website

    1. The only parameter needed for deployment is the Git branch you'd like to deploy. The default is set to master.

    2. Deploy the CMS Design System to Akamai Netstorage via an automated Jenkins pipeline.

    It is a multi-stage pipeline that executes the deploy in two stages:

    • The first child job builds design-system, creates a tarball from the resulting artifacts, then uploads the tarball to S3.
    • The second child job downloads the tarball from S3, expands it onto the node Jenkins is using for the deploy, then copies the files to Netstorage via scp.

    Note: Your CBJ user will need to be a member of the wd-user group or you will be unable to see the linked job above.

    Note: For a manual process: Visit the Documentation deploy process page in Confluence for these instructions.

Versioning

The design system follows the SemVer specification.

Semantic Versioning

Patch release

Bug fixes and other minor changes: Increment the last number, e.g. 1.0.1

Examples:

  • Backwards compatible Sass/JS bug fixes
  • Tiny visual changes to make the UI more consistent

Minor release

Backwards compatible new functionality, newly deprecated APIs, or substantial new functionality/improvements to private code: Increment the middle number, e.g. 1.1.0

Examples:

  • Addition of a new component
  • New classes, global variables, mixins, functions, or deprecated code
  • Minor visual changes to existing components

Major release

Changes which break backwards compatibility: Increment the first number, e.g. 2.0.0

Example changes:

  • Renamed or removed classes, mixins, functions, placeholders, or global variables.
  • Major visual changes to existing components