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 #1415
- Subteam events in socketmode should have their 'Count' entries as numbers, not strings by @nlopes in #1417
- [chore]: support only the last 3 versions of go by @nlopes in #1416
- fix: don't allow emoji with
mrkdwn
by @nlopes in #1418 - feat!: expose
UploadToURL
(fromuploadToURL
) by @nlopes in #1422 - fix!: AppHomeOpenedEvent View is now a pointer by @nlopes in #1424
- feat: Adding Workflow Trigger WebAPI Methods by @lorenzoaiello in #1349
- fix: tighten permissions for the test workflow by @nlopes in #1425
- chore: add gomod to dependabot by @nlopes in #1426
- chore(deps): bump github.com/stretchr/testify from 1.2.2 to 1.10.0 by @dependabot in #1427
- chore(deps): bump github.com/go-test/deep from 1.0.4 to 1.1.1 by @dependabot in #1429
- chore(deps): bump github.com/gorilla/websocket from 1.4.2 to 1.5.3 by @dependabot in #1428
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
- @paprikati made their first contribution in #1408
- @bassettb made their first contribution in #1412
- @snowboardit made their first contribution in #1413
Full Changelog: v0.16.0...v0.17.0