-
Notifications
You must be signed in to change notification settings - Fork 677
build: automate release packaging and version bumps with changesets #2483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 11 commits
87118a6
aaab8b4
5601453
d85e8ce
3fdec0e
0a444a5
37fe12b
b08d490
cb8fa87
381af9c
17724b5
6476161
1180916
51199df
4c4959a
f360a20
e645853
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # Changesets | ||
|
|
||
| This directory contains [**Changesets**](https://github.com/changesets/changesets) which are markdown files that describe package changes for the next release. | ||
|
|
||
| For guidance on when and how to add changesets, checkout the [Maintainer's Guide](../.github/maintainers_guide.md#-updating-changesets). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| { | ||
| "$schema": "https://unpkg.com/@changesets/config@3.1.2/schema.json", | ||
| "changelog": "@changesets/cli/changelog", | ||
| "commit": false, | ||
| "fixed": [], | ||
| "linked": [], | ||
| "access": "public", | ||
| "baseBranch": "main", | ||
| "updateInternalDependencies": "patch", | ||
| "ignore": [] | ||
| } | ||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,43 @@ | ||||||||
| name: Release | ||||||||
|
|
||||||||
| on: | ||||||||
| push: | ||||||||
| branches: | ||||||||
| - main | ||||||||
|
|
||||||||
| concurrency: ${{ github.workflow }}-${{ github.ref }} | ||||||||
|
|
||||||||
| jobs: | ||||||||
| release: | ||||||||
| name: Release | ||||||||
| runs-on: ubuntu-latest | ||||||||
| environment: publish | ||||||||
| permissions: | ||||||||
| contents: write | ||||||||
| id-token: write | ||||||||
|
||||||||
| id-token: write | |
| # required for npm OIDC trusted publishing | |
| id-token: write |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📺 note: We're using node@24 for a supported npm version:
Trusted publishing requires npm CLI version 11.5.1 or later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: Do we need a NPM_TOKEN: ${{ secrets.NPM_TOKEN }}? How will npm run chahgeset -- publish release the packages without the token?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mwbrooks AFAICT OIDC is a replacement for the token authentications in most recent changes:
Publish packages without npm tokens
🔗 https://github.blog/changelog/2025-07-31-npm-trusted-publishing-with-oidc-is-generally-available/
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| { | ||
| "name": "@slack", | ||
| "version": "0.0.0", | ||
| "private": true, | ||
| "type": "module", | ||
| "repository": { | ||
| "type": "git", | ||
| "url": "git+https://github.com/slackapi/node-slack-sdk.git" | ||
| }, | ||
| "workspaces": [ | ||
| "packages/cli-hooks", | ||
| "packages/cli-test", | ||
| "packages/logger", | ||
| "packages/oauth", | ||
| "packages/rtm-api", | ||
| "packages/socket-mode", | ||
| "packages/types", | ||
| "packages/web-api", | ||
| "packages/webhook" | ||
| ], | ||
| "scripts": { | ||
| "changeset": "npx @changesets/cli", | ||
| "lint": "npx @biomejs/biome check packages", | ||
| "lint:fix": "npx @biomejs/biome check --write packages" | ||
| }, | ||
| "devDependencies": { | ||
| "@biomejs/biome": "^2.0.5", | ||
| "@changesets/cli": "^2.29.8" | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. question: Do we need
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mwbrooks I understand having this listed with dev dependencies guarantees a certain version will be used for the command: While |
||
| } | ||
| } | ||
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,6 +1,7 @@ | ||
| { | ||
| "name": "@slack/client", | ||
| "version": "5.0.2", | ||
| "private": true, | ||
|
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 👁️🗨️ note: These package are EOL and shouldn't be published so the
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. question: Should we add
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mwbrooks I'm curious about this too, but perhaps we add this to discussion in #2359? IIRC classic apps might still use this but I agree that since it's deprecated we might also mark this package as EOL. 📚 https://docs.slack.dev/changelog/2024-09-legacy-custom-bots-classic-apps-deprecation/ |
||
| "description": "Legacy wrapper for official Slack Platform's Web API, RTM API, and Incoming Webhook libraries. Use @slack/web-api, @slack/rtm-api, or @slack/webhook instead.", | ||
| "author": "Slack Technologies, LLC", | ||
| "license": "MIT", | ||
|
|
||
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
question: Should we explicitly ignore our legacy packages? I know we currently use
private: truein each legacy package to prevent publishing, so ignoring may not be necessary.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mwbrooks This is recommended against and instead
ignoreis meant to be used for stopgap times when we might want to not publish certain packages in the next release:🔗 https://github.com/changesets/changesets/blob/main/docs/config-file-options.md#ignore-array-of-packages