Skip to content

Release Process Documentation

Torleif Halseth edited this page Nov 21, 2024 · 5 revisions

Follow these steps to ensure a smooth and consistent release process.

1. Create a Release Ticket

  • Open a new release ticket (issue) in your project management tool.
  • Note the ticket/issue number for use in the release branch name.

2. Create a New Release Branch

  • In your terminal, create a new branch for the release using the following command:

    git checkout -b release-[ticket/issue number]
    • Replace [ticket/issue number] with the actual number. For example: release-3692.

3. Generate Release Notes

  • Navigate to the code section on GitHub and go to Releases.
  • Click Draft New Release.
    • Name the Release: Use the naming convention eds-core-react@[version]. Replace [version] with the new version number.

    • Tag Creation: Select Create a new tag on publish.

    • Generate Release Notes:

      • Automatically generate the release notes.
      • Copy and paste the generated notes into the CHANGELOG.md file in your new release branch.
      • Filter out commits unrelated to the release, such as updated dev dependencies, changes to GitHub actions, etc.
      • Review and modify the notes to match the existing format, improving commit messages if needed.
    • Save the release as a Draft.

4. Update the Version Number

  • Open the package.json file.
  • Update the version number to the new release version.

5. Commit Changes

  • Stage the changes and commit them with a clear message:

    git commit -m "🔖 Release eds-core-react@[version]"
    • Replace [version] with the version number, e.g., 0.42.5.

6. Create a Pull Request (PR)

  • Open a pull request for the new release branch.
  • In the PR description, include a reference to the release ticket: resolves #[ticket/issue number].

7. Run GitHub Actions to Publish

  • Go to GitHub Actions.
  • Find the Publish [package] workflow.
  • Run the Workflow:
    • Select the release branch you created.
    • Tag for npm: Use latest.
    • Environment for Storybook: Set to production.
  • Ensure the workflow runs successfully by reviewing the action logs.

8. Merge Pull Request to Develop

  • Once the release is published successfully, merge the pull request into the develop branch.
    • Include all changed packages in the release title for clarity.

9. Publish the Release

  • Go back to Releases on GitHub.
  • Publish the release. Ensure that all packages with changes have a unique release.

10. Update Master and Push Changes

  • Switch to the master branch:

    git checkout master
  • Rebase master with the latest changes from develop:

    git rebase develop
  • Push the updates to the remote repository:

    git push

11. Verify

  • Verify the new version is available on npmjs.
  • Verify the new storybook is published.

12. Celebrate

  • Announce the release in #eds-design-system Here's a template for future release announcements:

We've just released:

  • [package-name-1] v[version-number-1]
  • [package-name-2] v[version-number-2]

[Package-Name-1]:

Added

  • ✨ [Feature-1]: [Short description of the feature] by @[author]
  • ✨ [Feature-2]: [Short description of the feature] by @[author]

Fixed

  • 🐛 [Fix-1]: [Short description of the fix] by @[author]
  • 🐛 [Fix-2]: [Short description of the fix] by @[author]

[Package-Name-2]:

Added

  • ✨ [Feature-1]: [Short description of the feature] by @[author]

Note: [Include any important dependency or compatibility notes here.]


Best,
The EDS Core Team