Looking ahead to 2021

Updates to some of our developer tools

Steve Gill
Slack Platform Blog
2 min readDec 22, 2020

--

On January 12th, 2021, we will be releasing new major versions for @slack/bolt, @slack/web-api, @slack/webhook, @slack/oauth, @slack/events-api, @slack/rtm-api, @slack/socket-modeand @slack/interactive-messages packages. Read on to learn more about these changes.

Bolt-js v3.0

  • Socket Mode is built in to Bolt via a new SocketModeReceiver (#630)
  • A more flexible and versatile HTTPReceiver as the default for Bolt apps. (ExpressReceiver is still be available for compatibility) (#670)
  • Adopt the latest TypeScript features with minimum v4.1 (up from v3.7)
  • Increment the minimum Node.js version to v12 LTS, matching the LTS schedule
  • Developer Mode — one flag to configure an app to make development easier (#714)
  • Remove orgAuthorize and merge it into authorize

Node-Slack-SDK

  • New @slack/socket-mode package (#1096)
  • For @slack/oauth, merge fetchOrgInstallation() and saveOrgInstallation() methods into fetchInstallation() and saveInstallation() for the InstallationStore interface (#1133)
  • Adopt the latest TypeScript features with minimum v4.1 (up from v3.7)
  • Increment the minimum Node.js version to v12 LTS, matching the LTS schedule
  • End of life @slack/events-api & @slack/interactive-messages packages.

With the end of life of Node 10.x scheduled for April 2021, we have decided to use this opportunity to end of life @slack/events-api and @slack/interactive-messages packages. After a few years of development, Bolt for JavaScript can now perform all the same functionality as these packages. We think you’ll love the more modern set of features you get in Bolt. Here are some migration examples (and a full guide to follow with the release):

// @slack/events-apislackEvents.on('app_home_opened', (event) -> {// fired when `app_home_opened` event is received// do work});
// @slack/boltapp.event('app_home_opened', async ({ event }) -> {// fired when `app_home_opened` event is received// do work});
// @slack/interactive-messagesslackInteractions.action({actionId: 'buttonActionId'}, (payload, respond) => {// fired when a clicked button's actionId matches// do work
respond();
});
// @slack/boltapp.action('buttonActionId', async( {action, ack} ) => {// fired when a clicked button's actionId matches// do work
await ack();
});// @slack/bolt also has listeners for options, view, slash commands and shortcuts

In accordance with our published support schedule, we aim to release the new major versions on January 12th, 2021. We continue to provide soft-maintenance for critical fixes and merging low impact contributions to previous majors until May 31st, 2021.

Schedule

  • January 12th, 2021 — new major versions of @slack/bolt, @slack/web-api, @slack/webhook, @slack/oauth, @slack/events-api, @slack/interactive-messages, @slack/rtm-api and @slack/socket-mode
  • April 30th, 2021 — Node v10.x officially reaches end-of-life
  • May 31st, 2021 — Soft maintenance of previous major versions ends. @slack/events-api & @slack/interactive-messages reach end of life

Feedback? Questions? Need support? Email feedback@slack.com.

--

--

Steve Gill
Slack Platform Blog

Sr Open Source Engineer at Slack working on Developer tooling (such as bolt-js)