-
Notifications
You must be signed in to change notification settings - Fork 675
Removing support for Node 18 and other upcoming breaking changes #2359
Copy link
Copy link
Open
Labels
auto-triage-skipdiscussionM-T: An issue where more input is needed to reach a decisionM-T: An issue where more input is needed to reach a decisionpkg:cli-hooksapplies to `@slack/cli-hooks`applies to `@slack/cli-hooks`pkg:cli-testapplies to `@slack/cli-test`applies to `@slack/cli-test`pkg:loggerapplies to `@slack/logger`applies to `@slack/logger`pkg:oauthapplies to `@slack/oauth`applies to `@slack/oauth`pkg:rtm-apiapplies to `@slack/rtm-api`applies to `@slack/rtm-api`pkg:socket-modeapplies to `@slack/socket-mode`applies to `@slack/socket-mode`pkg:typesapplies to `@slack/types`applies to `@slack/types`pkg:web-apiapplies to `@slack/web-api`applies to `@slack/web-api`pkg:webhookapplies to `@slack/webhook`applies to `@slack/webhook`semver:major
Metadata
Metadata
Assignees
Labels
auto-triage-skipdiscussionM-T: An issue where more input is needed to reach a decisionM-T: An issue where more input is needed to reach a decisionpkg:cli-hooksapplies to `@slack/cli-hooks`applies to `@slack/cli-hooks`pkg:cli-testapplies to `@slack/cli-test`applies to `@slack/cli-test`pkg:loggerapplies to `@slack/logger`applies to `@slack/logger`pkg:oauthapplies to `@slack/oauth`applies to `@slack/oauth`pkg:rtm-apiapplies to `@slack/rtm-api`applies to `@slack/rtm-api`pkg:socket-modeapplies to `@slack/socket-mode`applies to `@slack/socket-mode`pkg:typesapplies to `@slack/types`applies to `@slack/types`pkg:web-apiapplies to `@slack/web-api`applies to `@slack/web-api`pkg:webhookapplies to `@slack/webhook`applies to `@slack/webhook`semver:major
👋 Hello! This issue announces support for Node 18 is being removed within a few months to add support and develop with changes from more recent Node versions. Ongoing changes and discussion can be followed along here!
📆 Timeline
As overview for what's ahead, the following timeline might be useful:
References
👾 Planned changes
Breaking changes planned for this next major version follow.
Supported Node version
The Node 18 release will no longer be supported or used in testing. Future development will use features from the latest releases for the following versions:
Using the fetch API to send requests
The
axiospackage has been used to send requests with both the@slack/web-apiand@slack/webhookpackages. We'll look to replace this with theundicipackage to align with the Node implementation. Related: #1525 #1761.Using request and response in installation callbacks
The installer handler callback arguments from
@slack/oauthare changing toRequestandResponseobjects as a more compatible standard. For: #2270.Unnesting responses from the filesUploadV2 method
The shape of responses from the
filesUploadV2method of@slack/web-apiwill be flattened to return file indicies at the top of the response. From: #1803.Converting code samples and examples to ECMAScript modules
Examples documented for these packages will use ECMAScript modules.
Removing deprecated features
These next major versions will remove deprecated features from packages.
Removing unsupported packages from the main branch
The
@slack/client,@slack/events-api, and@slack/interactive-messagespackages are being removed from the main branch after being EOL for a handful of years.Converting test runners to default scaffoldings
Recent Node updates introduced a test runner for setting up and asserting cases. We can perhaps use this to reduce updates from dependencies. Similar: #2304 #2348 #2349 #2350 #2351 #2352.
👁️🗨️ Future changes
A few open issues address breaking changes to
@slack/typesthat might not be included in this set of changes and might involve coordinating changes with@slack/boltin upcoming releases. Follows: #1768 #1816 #1904 #1905.📝 Notes
Super open to discussing the scope of these changes and considerations of all kind!
For sometime soon I'm hoping we can start developing against supported Node versions in sample apps and begin testing in CI 🚀