1
1
mirror of https://github.com/primer/css.git synced 2024-12-11 11:16:04 +03:00
css/RELEASING.md

4.4 KiB

Releasing a new version of Primer CSS 🎉

Prepare the release (in primer/css)

  1. Decide which PRs should be part of the next release and if it will be a major, minor or patch <version>. You may also check the release tracking project or ask your team members in Slack.

  2. Create a new release branch from main and name it release-<version>.

  3. Run npm version <version> to update the version field in both package.json and package-lock.json.

  4. Create a new PR for the release-<version> branch. Please use the following template for the PR description, linking to the relevant issues and/or pull requests for each change.

    # Primer CSS [Major|Minor|Patch] Release
    
    Version: 📦 **`0.0.0`**
    Approximate release date: 📆 **Mon DD, YYYY**
    Changes: 🎉 [All merged PRs](https://github.com/primer/css/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-0.0.0) <!-- Update version at the end of the link. E.g. ...release-0.0.0 -> ...release-15.1.0 -->
    
    ---
    
    ### :boom: Breaking Change
    - [ ] Description #
    
    ### :rocket: Enhancement
    - [ ] Description #
    
    ### :bug: Bug Fix
    - [ ] Description #
    
    ### :nail_care: Polish
    - [ ] Description #
    
    ### :memo: Documentation
    - [ ] Description #
    
    ### :house: Internal
    - [ ] Description #
    
    ---
    
    ### Ship checklist
    
    - [x] Update the `version` field in `package.json`
    - [ ] Merge all PRs
    - [ ] Update `CHANGELOG.md`
    - [ ] Test the release candidate version with `github/github` (optional)
    - [ ] Get approval
    - [ ] Merge this PR and [create a new release](https://github.com/primer/css/releases/new)
    - [ ] Update `github/github`
    - [ ] Tell the world (Slack, Twitter, Team post)
    
    For more details, see [RELEASING.md](https://github.com/primer/css/blob/main/RELEASING.md).
    
    /cc @primer/ds-core
    
  5. Start merging existing PRs into the release branch. Note: You have to change the base branch from main to the release-<version> branch before merging.

  6. Update CHANGELOG.md and the PR description. Tip: You can copy&paste the changelog from Checks > changelog > all > changelog. It gets generated based on adding the Tag labels to PRs.

  7. Wait for your checks to pass, and take note of the version that primer/publish lists in your status checks.

    Tip: The release candidate version will always be <version>-rc.<sha>, where <version> comes from the branch name and <sha> is the 7-character commit SHA.

Test the release candidate (in github/github):

  1. Create a new branch in the github/github repo, name it primer-<version>.

  2. Update the Primer CSS version to the published release candidate with:

    bin/npm install @primer/css@<version>-rc.<sha>
    

    Then commit and push the changes to package.json, package-lock.json, LICENSE and vendor/npm.

  3. If you need to make changes to github/github due to the Primer CSS release, do them in a branch and merge that into your release branch after testing.

  4. Add or re-request reviewers and fix any breaking tests.

  5. Test on review-lab.

Publish the release (in primer/css)

  1. If the release PR got approved and you've done necessary testing, merge it.

    After tests run, the docs site will be deployed and @primer/css will be published with your changes to the latest dist-tag. You can check npm to see if primer/publish has finished.

  2. Create a new release with tag v<version>.

  3. Copy the changes from the CHANGELOG and paste them into the release notes.

  4. Publish 🎉

Update github.com (in github/github):

  1. Install the latest published version in the same primer-<version> branch created earlier with:

    bin/npm install @primer/css@<version>
    

    Then commit and push the changes to package.json, package-lock.json, LICENSE and vendor/npm.

  2. Fix any breaking tests.

  3. Deploy! 🚀

Publish the release

  1. Create a new release with tag v<version>.

  2. Copy the changes from the CHANGELOG and paste them into the release notes.

  3. Publish 🎉