Skip to content

Removing support for Node 18 and other upcoming breaking changes #2644

@zimeg

Description

@zimeg

👋 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:

  • Upstream Node 18 reaches EOL: 2025-03-27.
  • Notice of removing support: 2025-09-03.
  • Development releases shared: 2025-10-03 or sooner.
  • Public release of new package versions: 2025-12-02 or later.
  • Previous versions become unsupported: 2026-01-01 or later.

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:

  • Node 20 - "Maintenace": What we use in testing.
  • Node 22 - "Active": What we use in testing.
  • Node 24 - "Current": What we will recommend applications use.

Using the fetch API to send requests

The axios package has been used to send various responses as requests. We'll look to replace this with the undici package to align with the Node implementation.

Converting code samples and examples to ECMAScript modules

Examples documented for these packages will use ECMAScript modules. For: #2565.

Removing deprecated features

The next major version will remove deprecated features.

Using updated upstream packages

The @slack/logger, @slack/oauth, @slack/socket-mode, @slack/types, and @slack/web-api packages are used with planned breaking changes happening. We should use these updates for this release! From: slackapi/node-slack-sdk#2359.

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 test dependencies.

👁️‍🗨️ Future changes

Multiple open issues discuss improvements and breaking changes around typescript development that might not be included in this set of changes and can involve coordinating changes with @slack/types in upcoming releases. Follows: #1432.

📝 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 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionM-T: An issue where more input is needed to reach a decisionsemver:major

    Type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions