Skip to content

chore: drop Node.js 18 support for relevant packages#2572

Merged
WilliamBergamin merged 7 commits intov8{webook,web-api}from
drop-support-for-node-18
May 4, 2026
Merged

chore: drop Node.js 18 support for relevant packages#2572
WilliamBergamin merged 7 commits intov8{webook,web-api}from
drop-support-for-node-18

Conversation

@WilliamBergamin
Copy link
Copy Markdown
Contributor

@WilliamBergamin WilliamBergamin commented May 1, 2026

Summary

Node.js 18 reached end-of-life on April 30, 2025. This raises the minimum supported Node.js version to 20 for @slack/cli-hooks, @slack/cli-test, @slack/logger, @slack/oauth, @slack/socket-mode, @slack/types,@slack/web-api and @slack/webhook, ahead of the upcoming axios-to-fetch migration.

  • Updated engines.node and @types/node from 18 to 20 in both packages
  • Split the CI test step so Node 18 runs only the packages that still support it
  • All other packages remain unchanged and continue to support Node 18

Requirements

@WilliamBergamin WilliamBergamin self-assigned this May 1, 2026
@WilliamBergamin WilliamBergamin requested a review from a team as a code owner May 1, 2026 16:55
@WilliamBergamin WilliamBergamin added pkg:web-api applies to `@slack/web-api` pkg:webhook applies to `@slack/webhook` labels May 1, 2026
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 1, 2026

🦋 Changeset detected

Latest commit: a4dbb88

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 9 packages
Name Type
@slack/cli-hooks Major
@slack/cli-test Major
@slack/logger Major
@slack/oauth Major
@slack/socket-mode Major
@slack/types Major
@slack/web-api Major
@slack/webhook Major
@slack/rtm-api Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codecov
Copy link
Copy Markdown

codecov Bot commented May 1, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.38%. Comparing base (4af912d) to head (a4dbb88).
⚠️ Report is 1 commits behind head on v8{webook,web-api}.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@                 Coverage Diff                 @@
##           v8{webook,web-api}    #2572   +/-   ##
===================================================
  Coverage               87.38%   87.38%           
===================================================
  Files                      62       62           
  Lines                   10256    10256           
  Branches                  415      415           
===================================================
  Hits                     8962     8962           
  Misses                   1273     1273           
  Partials                   21       21           
Flag Coverage Δ
cli-hooks 87.38% <ø> (ø)
cli-test 87.38% <ø> (ø)
logger 87.38% <ø> (ø)
oauth 87.38% <ø> (ø)
socket-mode 87.38% <ø> (ø)
web-api 87.38% <ø> (ø)
webhook 87.38% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Copy Markdown
Member

@zimeg zimeg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@WilliamBergamin Huge thanks for getting this started! Let's note this toward #2359 🐙

I'm approving now but left a few thoughts and comments. Before merging I'm most curious about:

  • Freezing the @slack/rtm-api package
  • Increasing the minimum npm version

The standard packages of these later versions are so exciting to unlock 🔏 🦕

],
"engines": {
"node": ">= 18",
"node": ">= 20",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔭 note(non-blocking): We might want to find the LTS version of this minimum? Perhaps not for 20 but in future updates this might guarantee more stable app code:

This release marks the transition of Node.js 24.x into Long Term Support (LTS).

🔗 https://nodejs.org/en/blog/release/v24.11.0

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧊 suggestion: We might want to keep this package frozen?

Beginning March 31, 2025, we will discontinue support for legacy custom bots.

🔗 https://docs.slack.dev/changelog/2024-09-legacy-custom-bots-classic-apps-deprecation/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point 💯

"engines": {
"node": ">= 12.13.0",
"npm": ">= 6.12.0"
"node": ">= 20",
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⭐ praise: I understand this is a significant change but should make maintenance much better ongoing!

🪬 thought: We might be confident that developers update to the latest package versions and using the latest Slack features are using more recent versions of node too?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure of the use case where this package is used standalone, from what I understand it should be used in combination with another one of our packages that now require node 20 🤔

Comment thread packages/cli-hooks/package.json Outdated
@WilliamBergamin WilliamBergamin changed the title chore: drop Node.js 18 support for web-api and webhook chore: drop Node.js 18 support for relevant packages May 4, 2026
WilliamBergamin and others added 3 commits May 4, 2026 11:01
@WilliamBergamin WilliamBergamin merged commit dcd9828 into v8{webook,web-api} May 4, 2026
10 checks passed
@WilliamBergamin WilliamBergamin deleted the drop-support-for-node-18 branch May 4, 2026 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg:web-api applies to `@slack/web-api` pkg:webhook applies to `@slack/webhook`

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants