Releases: slack-go/slack
v0.17.0
MAJOR BREAKING CHANGES
This release has a few major breaking changes. And a couple require developers to pay a bit of attention, else their programs will break.
I am sorry this is the case but such is life sometimes.
See below for the most important, and trickier breaking changes.
Breaking changes
- Fix message event struct by @paprikati in #1391 and #1408
OurMessageEvent
has been quite wrong for a while. This should fix it but it does mean folks will have to change their code to cope with this new structure. Please be extra vigilant in areas of your code that usesMessageEvent
. - Function execution events now correctly accept interfaces not strings by @ProjectBarks in #1357
FunctionExecutedEvent
hadInputs
set asmap[string]string
but that didn't allow enough flexibility - that has been changed tomap[string]interface
. - Allow
emoji
value in plain text blocks to be null by @calebmckay in #1354
TheEmoji
field inTextBlockObject
is now a pointer to ensure we can make a distinction betweennil
andfalse
. Only affects when unmarshalling. - Remove Legacy Workflows by @lorenzoaiello in #1350
Slack has deprecated legacy workflows for a long time, and beginning September 26, 2024, Slack stopped executing workflows containing a "step from app." See more at https://api.slack.com/changelog/2023-08-workflow-steps-from-apps-step-back. - Implement PublishViewContext to keep hash optional by @ishitamundhra in #1322
PublishViewContext()
now requires people to pass aPublishViewContextRequest
which became a public type. If you callPublishViewContext()
in your code, please adjust accordingly. - Renamed
AltText
toAltTxt
andSnippetText
toSnippetType
(inGetUploadURLExternalParameters
andUploadFileV2Parameters
) by @nlopes in #1422 AppHomeOpenedEvent
View
is now a pointer by @nlopes in #1424
This provides slightly better ergonomics in the case when there's no view yet.
Features added
- Add markdown block by @nlopes in #1372
- Add filter in
MultiSelectBlockElement
by @quantumsheep in #1373 - Support unmarshalling markdown blocks by @carlaurr in #1381
- Expose private File Upload V2 methods to support multiple file uploads in a single message by @YutoKashiwagi in #1376
- Add
Headers
field to theFile
structure by @rntk in #1380 - Add
RichTextValue
(rich_text_value
) toBlockAction
by @borisputerka in #1385 - Add '&debug_reconnects=true' to websocket url when in
debug
mode by @nlopes in #1393 - Add include_icon to auth.teams.list by @nlopes in #1394
- Add a few missing fields to conversation by @nlopes in #1395
- Add missing icons image_132 and image_230 to Team Icons by @nlopes in #1396
- Add
ForceInviteUsersToConversation
by @nlopes in #1397 - Add a bunch of missing params to usergroups.* calls by @nlopes in #1398
- Add FocusOnLoad to DateTimePickerBlockElement by @nlopes in #1399
- Add Border and Offset to RichTextList by @nlopes in #1400
- Add some missing admin.conversations endpoints by @samstarling in #1401
- Add interaction callback parser by @snowboardit in #1413
- Rename uploadToUrl to UploadToURL (becomes public to library consumers) by @nlopes in #1422
- Add Workflow Trigger WebAPI Methods by @lorenzoaiello in #1349
Fixes
- Fix
slacktest
GetSeenOutboundMessages
race condition by @askreet in #1362 - Return a StatusCodeError when a workspace's message limit is exceeded by @greysteil in #1383
- Tidy up go.mod, add a linting check to prevent this by @samstarling in #1405
- Handle nil being passed in to newTextParser by @samstarling in #1403
- Remove a number of unused functions and parameters by @samstarling in #1402
- Tidy up arguments to _search function by @samstarling in #1404
- Make it foolproof for people trying to use emoji with
mrkdwn
which the Slack API doesn't support by @nlopes in #1418 - Subteam events in socketmode now have their
Count
fields as numbers by @nlopes in #1417 - RichTextSectionLinkElement Text is now
omitempty
by @bassettb in #1412
Detailed list of all of the changes
- feat: add markdown block by @nlopes in #1372
- Configure Dependabot to maintain GitHub Actions by @sgerrand in #1374
- feat: add filter in
MultiSelectBlockElement
by @quantumsheep in #1373 - chore(deps): bump actions/stale from 9.0.0 to 9.1.0 by @dependabot in #1377
- chore(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.5.0 by @dependabot in #1378
- feat: support unmarshalling markdown blocks by @carlaurr in #1381
- chore: remove unused GO111MODULE from the tests by @nlopes in #1382
- Expose private File Upload V2 methods to support multiple file uploads in a single message by @YutoKashiwagi in #1376
- [fix] function execution events accept interfaces not strings by @ProjectBarks in #1357
- fix: slacktest GetSeenOutboundMessages race condition by @askreet in #1362
- Implement PublishViewContextV2 to keep hash optional by @ishitamundhra in #1322
- DEPRECATION!: Legacy Workflows Deprecation by @lorenzoaiello in #1350
- Additional field to the File structure by @rntk in #1380
- fix: Allow
emoji
value in plain text blocks to be null by @calebmckay in #1354 - Return a StatusCodeError when a workspace's message limit is exceeded by @greysteil in #1383
- Add rich_text_value into BlockAction by @borisputerka in #1385
- chore: bump golangci to 1.63.4 by @nlopes in #1386
- chore: bump testing ubuntu runner to 24.04 by @nlopes in #1387
- Create FUNDING.yml by @nlopes in #1388
- chore(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 by @dependabot in #1389
- ci: add Go version 1.24 to test matrix by @nemuvski in #1390
- Fix message event struct by @nlopes in #1391
- chore: sort out a couple minor niggles by @nlopes in #1392
- feat: add '&debug_reconnects=true' to websocket url by @nlopes in #1393
- feat: add include_icon to auth.teams.list by @nlopes in #1394
- feat: add a few missing fields to conversation by @nlopes in #1395
- feat: add missing icons image_132 and image_230 to Team Icons by @nlopes in #1396
- feat: add
ForceInviteUsersToConversation
by @nlopes in #1397 - feat: add a bunch of missing params to usergroups.* calls by @nlopes in #1398
- feat: add FocusOnLoad to DateTimePickerBlockElement by @nlopes in #1399
- feat: add Border and Offset to RichTextList by @nlopes in #1400
- Tidy up go.mod, add a linting check to prevent this by @samstarling in #1405
- Handle nil being passed in to newTextParser by @samstarling in #1403
- Remove a number of unused functions and parameters by @samstarling in #1402
- Tidy up arguments to _search function by @samstarling in #1404
- Add some missing admin.conversations endpoints by @samstarling in #1401
- chore(deps): bump golangci/golangci-lint-action from 6.5.1 to 6.5.2 by @dependabot in #1407
- Unmarshal messages correctly for all subtypes by @paprikati in #1408
- RichTextSectionLinkElement Text omitempty by @bassettb in #1412
- Add interaction callback parser by @snowboardit in #1413
- chore(deps): bump golangci/golangci-lint-action from 6.5.2 to 8.0.0 by @dependabot in...
v0.17.0-rc7
What's Changed
- fix!: AppHomeOpenedEvent View is now a pointer by @nlopes in #1424
- feat: Adding Workflow Trigger WebAPI Methods by @lorenzoaiello in #1349
Breaking Changes
AppHomeOpenedEvent
View
is now a pointer - this provides slightly better ergonomics in the case when there's no view yet.
Full Changelog: v0.17.0-rc6...v0.17.0-rc7
v0.17.0-rc6
What's Changed
I've also added an example on how to do this. You can find it in ./examples/files/multiple_files.
BREAKING CHANGES
- renamed AltText to AltTxt and SnippetText to SnippetType.
Full Changelog: v0.17.0-rc5...v0.17.0-rc6
v0.17.0-rc5
Features Added
- Add interaction callback parser by @snowboardit in #1413
Fixes / cleanup
- Make it foolproof for people trying to use emoji with
mrkdwn
which the Slack API doesn't support by @nlopes in #1418 - Subteam events in socketmode now have their
Count
fields as numbers by @nlopes in #1417 - RichTextSectionLinkElement Text is now
omitempty
by @bassettb in #1412 - We now only test for the last 3 versions of Go by @nlopes in #1416
New Contributors
- @bassettb made their first contribution in #1412
- @snowboardit made their first contribution in #1413
Full Changelog: v0.17.0-rc4...v0.17.0-rc5
v0.17.0-rc4
What's Changed
- chore(deps): bump golangci/golangci-lint-action from 6.5.1 to 6.5.2 by @dependabot in #1407
- Unmarshal messages correctly for all subtypes by @paprikati in #1408
This fixes a major bug introduced when we changed shapes of messages inrc2
(I think).
New Contributors
- @paprikati made their first contribution in #1408
Full Changelog: v0.17.0-rc3...v0.17.0-rc4
v0.17.0-rc3
A few more changes but most shouldn't cause big issues, i.e: they won't feel as the previous breaking changes.
Features added
- Add include_icon to auth.teams.list by @nlopes in #1394
- Add a few missing fields to conversation by @nlopes in #1395
- Add missing icons image_132 and image_230 to Team Icons by @nlopes in #1396
- Add
ForceInviteUsersToConversation
by @nlopes in #1397 - Add a bunch of missing params to usergroups.* calls by @nlopes in #1398
- Add FocusOnLoad to DateTimePickerBlockElement by @nlopes in #1399
- Add Border and Offset to RichTextList by @nlopes in #1400
- Add some missing admin.conversations endpoints by @samstarling in #1401
Fixes / cleanup
- Tidy up go.mod, add a linting check to prevent this by @samstarling in #1405
- Handle nil being passed in to newTextParser by @samstarling in #1403
- Remove a number of unused functions and parameters by @samstarling in #1402
- Tidy up arguments to _search function by @samstarling in #1404
Full Changelog: v0.17.0-rc2...v0.17.0-rc3
v0.17.0-rc2
MAJOR BREAKING CHANGES
This release has a few major breaking changes. And a couple require developers to pay a bit of attention, else their programs will break.
I am sorry this is the case but such is life sometimes.
In order to give people a bit of a heads up here, and to make sure people do pay attention, I'm releasing a release candidate (-rc
) version and give it some time, before I do a final v0.17.0
.
See below for the most important, and trickier breaking changes.
Breaking changes
- Fix message event struct by @paprikati in #1391
OurMessageEvent
has been quite wrong for a while. This should fix it but it does mean folks will have to change their code to cope with this new structure. Please be extra vigilant in areas of your code that usesMessageEvent
. - Function execution events now correctly accept interfaces not strings by @ProjectBarks in #1357
FunctionExecutedEvent
hadInputs
set asmap[string]string
but that didn't allow enough flexibility - that has been changed tomap[string]interface
. - Allow
emoji
value in plain text blocks to be null by @calebmckay in #1354
TheEmoji
field inTextBlockObject
is now a pointer to ensure we can make a distinction betweennil
andfalse
. Only affects when unmarshalling. - Remove Legacy Workflows by @lorenzoaiello in #1350
Slack has deprecated legacy workflows for a long time, and beginning September 26, 2024, Slack stopped executing workflows containing a "step from app." See more at https://api.slack.com/changelog/2023-08-workflow-steps-from-apps-step-back. - Implement PublishViewContext to keep hash optional by @ishitamundhra in #1322
PublishViewContext()
now requires people to pass aPublishViewContextRequest
which became a public type. If you callPublishViewContext()
in your code, please adjust accordingly.
Features added
- Add markdown block by @nlopes in #1372
- Add filter in
MultiSelectBlockElement
by @quantumsheep in #1373 - Support unmarshalling markdown blocks by @carlaurr in #1381
- Expose private File Upload V2 methods to support multiple file uploads in a single message by @YutoKashiwagi in #1376
- Add
Headers
field to theFile
structure by @rntk in #1380 - Add
RichTextValue
(rich_text_value
) toBlockAction
by @borisputerka in #1385 - Add '&debug_reconnects=true' to websocket url when in
debug
mode by @nlopes in #1393
Fixes
- Fix
slacktest
GetSeenOutboundMessages
race condition by @askreet in #1362 - Return a StatusCodeError when a workspace's message limit is exceeded by @greysteil in #1383
Other changes
- Configure Dependabot to maintain GitHub Actions by @sgerrand in #1374
- chore(deps): bump actions/stale from 9.0.0 to 9.1.0 by @dependabot in #1377
- chore(deps): bump golangci/golangci-lint-action from 6.1.0 to 6.5.0 by @dependabot in #1378
- chore: remove unused GO111MODULE from the tests by @nlopes in #1382
- chore: bump golangci to 1.63.4 by @nlopes in #1386
- chore: bump testing ubuntu runner to 24.04 by @nlopes in #1387
- Create FUNDING.yml by @nlopes in #1388
- chore(deps): bump golangci/golangci-lint-action from 6.5.0 to 6.5.1 by @dependabot in #1389
- ci: add Go version 1.24 to test matrix by @nemuvski in #1390
- chore: sort out a couple minor niggles by @nlopes in #1392
New Contributors
- @sgerrand made their first contribution in #1374
- @quantumsheep made their first contribution in #1373
- @dependabot made their first contribution in #1377
- @carlaurr made their first contribution in #1381
- @ProjectBarks made their first contribution in #1357
- @askreet made their first contribution in #1362
- @ishitamundhra made their first contribution in #1322
- @greysteil made their first contribution in #1383
- @borisputerka made their first contribution in #1385
Full Changelog: v0.16.0...v0.17.0-rc2
v0.16.0
Warning
This release may mean a breaking change! Read below for more although for most folks this should all be fine.
π Hi folks,
I've tried my best to keep this version to just non-breaking changes but there are a couple of changes that might introduce breaking changes in rare circumstances.
If you're upgrading, please pay special attention to:
- Add ID() to the Block interface by @samstarling in #1359
If you were using only what we provide in the library, this is a non-breaking change, but if not, it may be considered a breaking change.
Next release will likely bring a few required breaking changes (hard deprecations for example).
Thank you to everyone that contributed to this release π₯³
What's Changed
- feat: Slack AI & Assistants Compatibility by @MattDavisRV in #1331
- fix: Assistant Prompts and Status, send channel_id with request by @MattDavisRV in #1344
- fix: Don't require
skin_tone
for rich text emoji element by @calebmckay in #1341 - fix: ScheduleMessage not returning scheduled_message_id by @hussachai in #1153
- chore: Contributing Guide - Codification of Project Norms by @lorenzoaiello in #1340
- chore: Add parse channel context and host for shared channel by @fahmizulhasymi in #1353
- chore: Adding A Deprecation Notice for rtm.start (no-op) by @lorenzoaiello in #1351
- Additional field to the File structure by @rntk in #1370
- add enable_section option for UserGroup API by @sivchari in #1364
- Add ID() to the Block interface by @samstarling in #1359
- Add assistant app thread message subtype by @dorkauf in #1368
New Contributors
- @fahmizulhasymi made their first contribution in #1353
- @rntk made their first contribution in #1370
- @samstarling made their first contribution in #1359
- @dorkauf made their first contribution in #1368
Full Changelog: v0.15.0...v0.16.0
v0.15.0
Warning
This release includes a breaking change since the last release.
What's Changed
v0.15.0 is now available. It does contain minor breaking changes to two Block Kit elements along with a lot of new functionality.
Breaking Changes
Block Kit - Rich Text Section Date Element
If you are using the RichTextSectionDateElement
block kit element, there is a new field Format
which is now required. It previously did not exist, but was marked as required in the Block Kit Documentation. Similarly, the function NewRichTextSectionDateElement
function signature has been updated to require the new parameter. While this may not have previously worked, the non-backwards compatible signature change prompts it to be identified as breaking change.
Block Kit - Rich Text input Block Element
If you are using the RichTextInputBlockElement
block kit element, the InitialValue
field type has been changed from string
to *RichTextBlock
to provide a more strongly typed experience. If you were previously passing a pre-formatted JSON object you will need to update your input to use the RichTextBlock
struct instead.
Enhancements
- Added support for publishing a message to a specific thread by @Nikolo in #1309
- Added support for unicode parameter in emoji type of rich text blocks by @YutoKashiwagi in #1319
- Added endpoints for
calls.*
apis andType: call
in blockkit by @winston-stripe in #1190 - Added Convenience Methods to Block Elements by @obed-sj in #1279
- Added functions.completeError and functions.completeSuccess by @gideonw in #1328
- Added support for external_limited option of inviteShared by @bamo in #1330
- Added support for Canvas API methods by @jarospisak-unity in #1334
Bug Fixes
- Added required
format
field to rich text date blocks by @luke-josh in #1317 - Updated RichTextInputBlockElement InitialValue data type by @Manjish in #1320
Chores
- Added go v1.23 to test matrix (test.yml) by @nemuvski in #1315
- Bumped GitHub Actions to Latest Versions by @shogo82148 in #1314
- Updated deprecated comment for UploadFile and UploadFileContext by @shogo82148 in #1316
New Contributors
- @shogo82148 made their first contribution in #1314
- @Nikolo made their first contribution in #1309
- @luke-josh made their first contribution in #1317
- @Manjish made their first contribution in #1320
- @YutoKashiwagi made their first contribution in #1319
- @obed-sj made their first contribution in #1279
- @gideonw made their first contribution in #1328
- @bamo made their first contribution in #1330
- @jarospisak-unity made their first contribution in #1334
Full Changelog: v0.14.0...v0.15.0
v0.14.0
What's Changed
v0.14.0 is now available. It contains no breaking changes but does include several pieces of new functionality and long-standing bug fixes.
Enhancements
- Added Support for receiving
metadata
when receiving aMessageEvent
over WebSocket by @rfratto in #1307 - Added a new field to expose file data when receiving a
File
event from a Slack Connect Channel by @zFlabmonsta in #1312 - Added support for the
slack_file
in the image block by @rhysm in #1311 - Added 35 missing Websocket event types by @Aryakoste in #1306
- Added support for parsing
AppRateLimited
events in theParseEvent
function by @nemuvski in #1308 - Added newly documented Channel Canvas properties to the
conversations.info
Web API method by @ku in #1228
Bug Fixes
- Fixed an edge case when using
UpdateRemoteFileContext
andUpdateRemoteFile
and Image Previews would return aninvalid_auth
error by @EkeMinusYou in #1117
Chores / Code Cleanup
- Replaced deprecated
ioutil
withio
andos
packages by @nakamasato in #1310
New Contributors
- @rfratto made their first contribution in #1307
- @nakamasato made their first contribution in #1310
- @rhysm made their first contribution in #1311
- @Aryakoste made their first contribution in #1306
- @nemuvski made their first contribution in #1308
- @ku made their first contribution in #1228
- @EkeMinusYou made their first contribution in #1117
- @jjjjeeffff was instrumental in the successful resolution of #1117
Full Changelog: v0.13.1...v0.14.0