Snyk CLI:セマンティックバージョニングとリリースチャネルの導入
2024年4月30日
0 分で読めますセマンティックバージョニングとリリースチャネルを、v.1.1291.0以降のSnyk CLIに導入します。このブログでは、変更を導入する理由、お客様にとってどのような課題を解決するのか、またニーズに応じてオプトインする方法についてご紹介します。
どのような課題を解決するのか、そしてその理由は?
Snyk CLIがWorld Wide Webとセキュリティ愛好家に向けて初めて公開されたのは、2015年10月2日、v0.0.0-pre-alphaリリースとしてでした。この8年間で、Snyk CLIは約2,000回リリースされ、そのうち1,100回以上が直近の3年間に行われました。これは約32時間に1回のリリースに相当し、お客様のニーズが高まっていること、そしてエンタープライズ規模でそのニーズに応えるための当社の開発ペースを示しています。需要の拡大に伴い、迅速なコード変更の複雑さ、範囲、影響も大きくなりました。
迅速に修正や変更を提供すれば、すべてのSnykユーザーが最新の機能を利用できます。一方、エンタープライズのお客様を対象としたユーザー調査では、Snyk CLIが頻繁にリリースされることで、ガバナンスやコンプライアンス対応の負担が増えることが明らかになりました。こうした声が繰り返し寄せられる中で、開発者からDevSecOpsまで、お客様とエンドユーザーのSnyk CLI体験を向上させるために変化が必要だと認識しました。
セキュリティゲートとして、Snyk CLIは当社とお客様の開発エコシステムの要です。Snyk CLIに障害が発生すると、お客様のビルドパイプラインに直接影響し、ビジネス上の約束やユーザー体験にも支障をきたします。Snykは、お客様から寄せられている信頼を心から大切にしています。そして、持続可能なペースを選べる柔軟性という、いまだ満たされていないニーズがあると考えています。
このため、v.1291.0以降のSnyk CLIに次の変更を導入します。
Snyk CLIのリリースにセマンティックバージョニングを採用
お客様が好みやニーズに応じて選択できる複数のチャネル
今回の変更は、お客様にとって何を意味するのでしょうか?
リリース
Snyk CLIでは、業界標準のセマンティックバージョニングに従い、以下のように3つの要素でバージョンを表します。
バージョン番号をMAJOR.MINOR.PATCHとした場合、次のように番号を更新します。
後方互換性のない変更を行った場合は、MAJORバージョンを更新
後方互換性を保ちながら機能を追加した場合は、MINORバージョンを更新
後方互換性のあるバグ修正を行った場合は、PATCHバージョンを更新
標準に基づき、必要に応じてCLIのリリースに追加のラベルを付与します。
Snyk CLIでは、CI/CDインテグレーションなど、既存の稼働環境に問題を引き起こし、自動化されたワークフローを中断させる可能性がある変更を、後方互換性のない変更と定義しています。こうした変更はMAJOR番号の更新で示し、リリースノートに記載します。
後方互換性のない変更の例:
出力フィールド、フィールド名、環境変数の廃止または変更
必須となる設定変更の導入
エラーコードまたは終了コードの変更
問題の性質や影響に応じて、ホットフィックスをリリースする場合もあります。その場合、PATCH番号が更新されます。
チャネル
お客様がニーズや好みに合ったチャネルを選べるよう、複数のチャネルを導入します。
お客様にとって、チャネルを選ぶことは、利用するコード変更の安定性とペースを選ぶことを意味します。
preview「pre-release」ビルドは定期的に、場合によっては1日に複数回デプロイされ、最新の変更が含まれます。
バージョン形式:
v{MAJOR}.{MINOR}.{PATCH}-previewリリース頻度:不定
入手先:
rc「release candidate」のプレリリースは、決まったタイミングでデプロイされます。追加テストの後、安定版として昇格することを想定したCLIバージョンが含まれます。
バージョン形式:
v{MAJOR}.{MINOR}.{PATCH}-rcリリース頻度:8週間ごと。安定版リリースの2週間前(ホットフィックスリリースの可能性あり)
入手先:
stable安定版ビルドは、追加テストを実施し、安定性を確認した後、決まったタイミングでデプロイされます。
バージョン形式:
v{MAJOR}.{MINOR}.{PATCH}リリース頻度:8週間ごと(ホットフィックスリリースの可能性あり)
入手先:
Snykは、次の理由からstableチャネルへのオプトインを推奨します。
安定版ビルドは8週間にわたって徹底的にテストされ、その間、Snykの開発チームがSDLCプロセスでCLIを使用します。
ニーズに最適なバージョンを選ぶためのリリースノートが付属します。
コード変更がマージされ次第すぐに受け取りたいお客様は、previewチャネルにオプトインできます。ただし、Snykはpreviewチャネルをサポートしておらず、既知の問題が含まれることをご了承ください。
ヒント:従来のlatestチャネルを選択している既存のお客様は、自動的にstableチャネルに切り替わります。既存ユーザーに影響が出ないよう、裏側では最新の安定版をミラーリングしています。ただし、次のセクションで説明するように、新しいリリースチャネルへの切り替えをおすすめします。
IDEでチャネルを選択する
下のスクリーンショットに示すドロップダウンから、CLIのリリースチャネルを選択してください。リリースチャネルはいつでも切り替えられます。たとえば、ホットフィックスを受け取るためにrelease candidate(rc)へ切り替えることができます。この機能はIntelliJ IDEで利用できます。今後、ほかのサポート対象IDEにも対応を拡大する予定です。すべてのIDEで、デフォルトのチャネルはstableです。

まとめ
約2,000回のリリースを経た今も、お客様や開発者がセキュアなコードを提供できるよう支援することは、Snykチームにとって大きな喜びです。開発者が無理のないペースで仕事に取り組める、優れた開発者体験を実現するため、今後もSnyk CLIの強化に取り組んでいきます。
ご意見をお寄せいただく場合や、ユーザー調査への参加をご希望の場合は、サポートチーム、担当アカウントマネージャー、またはSnyk CLIのプロダクトマネージャーまでご連絡ください。皆さまと協力しながら、Snyk CLIの将来を形作っていけることを楽しみにしています。



