AWS Tools for PowerShellの変更履歴を取得する

PowerShell Core

一般的には小ネタの範疇かと思いますが、PowerShellおじさんの私としてはとても大事な内容です。

【2019.04.01更新】 GitHubリポジトリの追加

つい先日AWS Tools for PowerShellのGitHubリポジトリが公開され、各種ドキュメントとIssueを立てフィードバックができる様になっていました。
(ソースコードは公開されない様です...)

変更履歴もGitHubに上げられており、こちらから確認できます。

これでかなり楽に履歴を確認できますね。

まばらなドキュメント

AWS Tools for PowerShellの公式ドキュメントをたどると

最新の PowerShell ツールに関する詳細を確認する: リリースノート »

との記載があり一応リリースノートはあるのですが、その内容を確認してみるとVer.2.xまではきっちり揃っているもののVer.3.x以降についてはVer.3.1.0しかなく最新の変更履歴を追うことができません。
また、ユーザーガイドの変更履歴を見ても記載されているバージョンはまばらです。

PowerShell Galleryを見ても、リリースの履歴はわかるものの、その変更履歴は記載されていません。

そして、AWS Tools for PowerShellは残念ながらクローズドソースのためソースのあるリポジトリから履歴を追うといったこともできません。
(ちなみに内部で使われているAWS SDK for .NETであればGitHubでソースを公開しています)

モジュールのリリースノートを調べてみる

PowerShellのモジュールはモジュール自身にReleaseNotesプロパティを持ち、たいていの場合は変更履歴のあるサイトへのリンクが設定されています。
AWSPowerShellおよびAWSPowerShell.NetCoreでは以下のコマンドで取得することができます。

# AWSPowerShell, AWSPowerShell.NetCore 両方向け
Get-Module AWSPowerShell* -ListAvailable | select Version, ReleaseNotes

結果は

Release notes are available in the attached CHANGELOG.txt file.

と、モジュールと一緒にCHANGELOG.txtが添付されていることがわかりました。

中身を見るとMarkdownでVer.3.1.0.0から最新バージョンまでの変更履歴が記載されており、やっと欲しいものが手に入りました。

【補足】コマンドで変更履歴を調べる

欲しい情報は手に入りましたが、せっかくなのでCHANGELOG.txtを表示するコマンドを共有します。
これで必要になった瞬間にすぐ最新バージョンの変更履歴を読むことができます。

Invoke-Item $(Join-Path $(Get-Module AWSPowerShell* -ListAvailable | Sort-Object Version -Descending | Select-Object -ExpandProperty ModuleBase -First 1) 'CHANGELOG.txt')

やっていることはCHANGELOG.txtのパスを取得してInovke-Item(ファイルをダブルクリックするのと同等の操作)しているだけです。
PowerShell Core 6.1であればマークダウンを表示するコマンドレットがあるので、

Show-Markdown $(Join-Path $(Get-Module AWSPowerShell* -ListAvailable | Sort-Object Version -Descending | Select-Object -ExpandProperty ModuleBase -First 1) 'CHANGELOG.txt')

の様にしても良いでしょう。