slack-go/slack v0.7.0 をリリースしました

公開:2020/10/02
更新:2020/10/02
2 min読了の目安(約2100字TECH技術記事

https://github.com/slack-go/slack

しばらく停滞していた nlopes/slack が、今年の頭に slack-go/slack としてメンテナンスをしていこうという流れになったのは記憶に新しいです。
org 移行後は順調?に v0.6.1 ~ v0.6.6 までリリースされていましたが、最近またリリースがなかったので今回自分が主導でリリースを進めてみました。
というわけで、この記事はアプデ前に見ておきたい変更点(後方非互換なものがいくつか入っています)に加えて、自分のリリースに変なところがあれば指摘してもらいたいという裏目的も持ちながら執筆されています。

Breaking Changes

ユーザの対応が必要、あるいは既存アプリケーションの挙動に影響がありうるものは、今回のリリースでは以下の3つです。

Add description field to option block object #783

slack.NewOptionBlockObject 関数の引数に description が追加されています。
Block Kit を利用している場合は登場頻度が高いかもしれないので要注意です。

https://github.com/slack-go/slack/pull/783

Add ScheduledMessage type #753

(*slack.Client).GetScheduledMessages および (*slack.Client).GetScheduledMessagesContext メソッドの返り値の型が []slack.Message から新しく追加された []slack.ScheduledMessage へと変更されています。

https://github.com/slack-go/slack/pull/753

Fix wrong conditional branch #782

slack.TextObject のタイプ判定に typo があり、Markdown になるべきところもすべて PlainText として判定されてしまっていたというものです。
これは正確にはもともとバグっていたものを修正したものですが、現在実装されているアプリケーションの挙動に影響がありうるので注意してください。

https://github.com/slack-go/slack/pull/782

その他

あまり大きなものはありません。
#772 の Slack から返ってくる response_metadata を取得可能になった PR は便利かもしれません。

参考程度に全PRを羅列しておきます。興味がある方は見てみてください。

むすび

CHANGELOG にも書いているので不要かなと思いつつ、slack-go/slack の現状をお知らせする意味でも記事を書いてみました。
直近で deprecated になった Slack の API もあるので、非互換を含むリリースが近いうちにまたありそうです。
もし変な挙動があれば issue でも Twitter でも何でも構いませんのでご報告ください!
また、改善ポイントもまだまだたくさんあると思います。
ぜひコントリビューションお待ちしております!