From d52ae0734c194bcef309d4307aae16c4a9006d66 Mon Sep 17 00:00:00 2001 From: Tania Allard Date: Thu, 19 Oct 2023 18:31:02 +0100 Subject: [PATCH] ENH - Update release process (#317) * Add release template * Update release workflow --- .github/ISSUE_TEMPLATE/release.md | 44 ++++++++++++++++++++++++++++++ .github/workflows/release.yml | 2 +- RELEASE.md | 45 ++++++++++++++++++++++--------- package.json | 2 +- 4 files changed, 79 insertions(+), 14 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/release.md diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md new file mode 100644 index 00000000..611bae35 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/release.md @@ -0,0 +1,44 @@ +--- +name: "New release 🏷 [maintainers only]" +about: "Start a new conda-store-ui release" +title: "[REL] - " +labels: ["release 🏷"] +--- + + + +## Release details + +Scheduled release date - + +Release captain responsible - <@gh_username> + +--- + +### 1. Pre-flight checks + +- [ ] Ensure there are no [open issues with a `block-release ⛔️` label](https://github.com/conda-incubator/conda-store/issues?q=is%3Aopen+label%3A%22block-release+%E2%9B%94%EF%B8%8F%22+sort%3Aupdated-desc) + +### 2. Prepare the codebase for a new release + +- [ ] Create a new git branch for the release `git checkout -b release-2023.9.1` + - [ ] Prepare the branch just in case `git clean -fxdq` +- [ ] Bump `conda-store-ui` version in `package.json` +- [ ] Follow the manual release instructions in the Release.md file (do not make the release yet!) +- [ ] Make a release commit: `git commit -m 'REL - 2023.9.1'` +- [ ] Push the release (REL) commit +- [ ] If a **release candidate** is needed, tick this box when we're ready for a full release. + +### 3. Make the release + +- [ ] [Start a new GitHub release](https://github.com/conda-incubator/conda-store/releases/new) + - Call the release the current version, e.g. `2023.9.1` + - In the **`Choose a Tag:`** dropdown, type in the release name (e.g., `2023.9.1`) and click "Create new tag" + - In the **`Target:`** dropdown, pin it to the release commit you've recently pushed. + - Add release notes in the field below[^github-activity]. +- [ ] Confirm that the release completed + - [The `release` GitHub action job](https://github.com/conda-incubator/conda-store-ui/blob/main/.github/workflows/release.yaml) has completed successfully in the [actions tab](https://github.com/conda-incubator/conda-store-ui/actions). +- [ ] Celebrate, you're done! 🎉 + +[^github-activity]: If you wish, use [`github-activity` to generate a changelog](https://github.com/choldgraf/github-activity), e.g. `github-activity conda-incubator/conda-store --since 2023.9.1 --until 2023.10.1`. diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 25948596..8933dd6b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,6 +37,6 @@ jobs: - name: "Publish to npm 📤" run: | echo "Publishing with tag ${{ env.GITHUB_REF_NAME }}" - yarn publish --access public --verbose + npm publish --verbose --access public conda-store-ui.tgz env: NPM_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/RELEASE.md b/RELEASE.md index 69d84eeb..cbbd678c 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -1,22 +1,43 @@ # Manual release process -1. Increment version in `package.json` -2. Perform a local dry run build: +1. Create a new branch for the release `git checkout -b release-2023.9.1` +2. Clean the branch `git clean -fxdq` +3. Increment version in `package.json` +4. Build the package locally: ```bash - # dry run build - npm publish --access public --dry-run + yarn install - # the real publish-to-npmjs command + # build the package + yarn run build + + # for the browser bundle + yarn run webpack bundle + + # pack the bundle + yarn pack --filename conda-store-ui.tgz + + ``` + +5. Perform a local dry run publish: + + ```bash + # dry run publish to npmjs + npm publish --verbose --access public conda-store-ui.tgz --dry-run + ``` + +6. If the dry run looks good, publish to npmjs: + + ```bash npm publish --access public ``` -3. Ensure that whatever code you published is checked into git, then tag and push the commit and tag +7. Ensure that whatever code you published is checked into git, then tag and push the commit and tag - ```bash - # use the same version here as in package.json, but without a leading `v` - git tag -a YYYY.M.ReleaseNumber +```bash +# use the same version here as in package.json, but without a leading `v` +git tag -a YYYY.M.ReleaseNumber - # push to upstream - git push && git push --tags - ``` +# push to upstream +git push && git push --tags +``` diff --git a/package.json b/package.json index 9b46969d..08a97765 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@conda-store/conda-store-ui", - "version": "2023.10.1", + "version": "2023.10.2", "description": "UI elements for building a frontend for conda-store", "homepage": "https://github.com/conda-incubator/conda-store-ui", "bugs": {