Microsoft Azure documentation update: [email protected] hotfixの変更点と確認ポイント

Microsoft Azure documentation update: Backmerge release/may-2026([email protected] hotfix)は、Azureの実行中リソースを直接変更する更新ではなく、Azure向けTypeSpecライブラリのうち @azure-tools/typespec-client-generator-core に関するホットフィックスです。結論から言うと、Azure Portalの設定変更や既存リソースの移行作業は基本的に不要です。一方で、TypeSpecからAzure SDKやクライアントコードを生成している開発チームは、@@usage / @@access を使ったモデル公開範囲の指定が、以前より正しく反映される可能性があります。2026年5月20日に release/may-2026 から main へバックマージされた内容で、バージョン更新と修正内容をメインブランチへ反映する目的のPRです。(GitHub)

目次

Microsoft Azure documentation update: Backmerge release/may-2026([email protected] hotfix)の概要

今回の更新は、Azureのサービス仕様や運用設定そのものを変えるアップデートではありません。対象は、Azure向けTypeSpec関連リポジトリ Azure/typespec-azure 内の @azure-tools/typespec-client-generator-core、いわゆるTypeSpecからクライアント生成に使われるコアライブラリです。

公式リリースでは @azure-tools/[email protected] が2026年5月20日に公開され、Bug Fixesとして @@usage@@access の扱いに関する修正が記載されています。具体的には、インポートされたnpmライブラリ由来のモデルを対象にした明示的な指定が、従来は一部の条件で無視される可能性があった点を修正しています。(GitHub)

今回の変更をひと言で整理すると、TypeSpecで明示的に「このモデルは入力用」「このモデルは公開扱い」と指定した内容が、外部ライブラリ由来のモデルでも正しくSDK生成側に渡りやすくなった修正です。

観点内容
公開・更新日2026年5月20日
対象@azure-tools/typespec-client-generator-core
バージョン0.68.0 から 0.68.1 へ更新
変更種別ホットフィックス、バックマージ
主な修正インポート済みライブラリのモデルに対する @@usage / @@access の反映漏れを修正
直接影響しにくい対象Azure Portal、既存Azureリソース、一般的なVM・Storage・ネットワーク運用
確認すべき対象TypeSpecでAzure SDK生成、API仕様管理、クライアント生成を行っているチーム

何が変わったのか

今回の変更点は、大きく分けて3つあります。

1つ目は、@azure-tools/typespec-client-generator-core のパッケージバージョンが 0.68.0 から 0.68.1 に上がったことです。PRの差分では package.json のバージョン更新が確認できます。(GitHub)

2つ目は、@@usage@@access の処理が修正されたことです。これまで、インポートされたnpmパッケージ内の名前空間にあるモデルへこれらのaugment decoratorを適用した場合、対象モデルが操作から直接到達可能でないと、sdkPackage.models に現れないケースがありました。今回の修正により、明示的にタグ付けされたモデルは、どの名前空間に属していても認識されるようになったと説明されています。(GitHub)

3つ目は、@usage を名前空間に適用した場合の伝播処理です。関連PRでは、@usage が名前空間に指定されたときに、ネストされたサブ名前空間まで再帰的に処理する必要がある点がレビューで指摘され、その後、3階層のネストを確認する回帰テストが追加されています。(GitHub)

@@usage@@access が重要な理由

TypeSpecでは、API仕様からOpenAPI仕様やクライアントコードなどを生成できます。Microsoft LearnのTypeSpec概要でも、TypeSpecはAPIを定義し、emittersを通じてAPI仕様、クライアントコード、サーバー側コードを生成できる言語として説明されています。(Microsoft Learn)

その中で @usage@access は、生成されるSDK上でモデルをどう扱うかに関係します。

@usage は、モデルやenumなどに対して「入力」「出力」「JSON」などの利用目的を追加するための指定です。公式ドキュメントでは、モデルのデフォルトusageはそれを使う操作から計算され、@usage によって追加のusageを付与できると説明されています。対象には ModelEnumUnionNamespace が含まれます。(Azure)

@access は、モデルや操作、enum、名前空間などの公開範囲を上書きするための指定です。公式ドキュメントでは、Access.public または Access.internal を指定でき、名前空間に設定した場合は、その名前空間内のモデルや操作に情報が伝播すると説明されています。(Azure)

つまり、これらの指定が正しく反映されないと、次のような問題につながります。

起きうる問題実務上の影響
入力用に指定したモデルが生成対象に含まれないSDK利用者が必要な型を参照できない
public指定したモデルがinternal相当で扱われる外部向けSDKのAPI設計と実装がずれる
外部ライブラリ由来の共通モデルが欠落するAzure Core系の共通エラー型などが期待通り扱われない
生成結果が言語ごとにずれる.NET、Java、Python、JavaScriptなどのSDK品質確認が難しくなる

今回のホットフィックスは、特に「TypeSpec上では明示的に指定しているのに、生成結果に反映されない」という種類の問題を減らすための修正と考えると理解しやすいです。

影響を受けやすいプロジェクト

すべてのAzure利用者が対応すべき更新ではありません。影響を受けやすいのは、Azureリソースを運用している管理者全般ではなく、TypeSpecを使ってAPI仕様やSDK生成を管理している開発チームです。

次の条件に当てはまる場合は、今回の変更を確認する価値があります。

確認対象確認すべき理由
TypeSpecでAzure向けAPI仕様を管理している生成モデルの構成が変わる可能性がある
@azure-tools/typespec-client-generator-core を使っている今回の直接対象パッケージであるため
@@usage / @@access を使っている修正対象のdecoratorであるため
外部npmライブラリのモデルを参照している以前はインポート元名前空間のモデルが見落とされる可能性があったため
Azure.Core.Foundations.Error など共通型を明示指定している回帰テストでもこのケースが扱われているため
SDK生成結果をCIで比較している生成されるモデル一覧や公開範囲が変わる可能性がある

一方で、次のような利用者は直接的な対応が必要になる可能性は低いです。

対象理由
Azure Portalだけでリソースを管理している管理者Azureリソース設定を変更する更新ではないため
ARMテンプレートやBicepの通常デプロイのみを行うチームTypeSpec Client Generator Coreを直接使わない場合が多いため
既存SDKを利用するだけのアプリ開発者SDK生成パイプライン側の変更であり、利用中アプリの設定変更ではないため
VM、Storage、VNet、Azure SQLの運用担当者対象サービスのランタイム動作を変える情報ではないため

管理者が確認すべきポイント

Azure管理者にとって重要なのは、「Azure環境に変更が必要か」ではなく、「自社のAPI仕様管理・SDK生成フローにこのパッケージが含まれているか」です。

まず確認すべきなのは、リポジトリ内の package.json やロックファイルです。

{
  "dependencies": {
    "@azure-tools/typespec-client-generator-core": "0.68.0"
  }
}

上記のように @azure-tools/typespec-client-generator-core を固定している場合、0.68.1 へ更新するかどうかを検討します。すでに ^0.68.0 のような範囲指定をしている場合でも、ロックファイルで 0.68.0 に固定されていることがあります。CIで実際に解決されているバージョンを確認してください。

確認時は、次の順番で見ると無駄がありません。

手順確認内容判断基準
依存関係の確認package.jsonpnpm-lock.yamlpackage-lock.jsonyarn.lock対象パッケージが含まれるか
TypeSpecコードの確認@@usage@@access の利用箇所外部ライブラリのモデルを指定しているか
生成結果の比較更新前後のSDK生成物追加・削除されたモデルがないか
CI結果の確認TypeSpec compile、SDK生成、lint、単体テスト既存の生成差分が意図したものか
リリース影響の確認SDK利用者向けの公開APIpublic/internalの変化がないか

管理者が避けたいのは、パッケージ更新だけを行い、生成差分を確認せずにSDKやAPI仕様を公開してしまうことです。今回の修正はバグフィックスですが、これまで欠落していたモデルが生成結果に現れる可能性があります。これは正しい挙動への修正である一方、公開APIの見え方が変わる場合があります。

開発者が確認すべきコード上のポイント

開発者は、@@usage@@access の指定箇所を重点的に確認してください。

特に注意すべきなのは、次のような外部ライブラリ由来のモデルを対象にした指定です。

@@usage(Azure.Core.Foundations.Error, Usage.input);
@@access(Azure.Core.Foundations.Error, Access.public);

PRのテストでは、Azure.Core.Foundations.Error@@usage@@access を適用し、そのモデルが sdkPackage.models に現れることを確認する回帰テストが追加されています。(GitHub)

このような指定を使っている場合、更新後に生成結果が変わる可能性があります。差分が出たときは、すぐに「生成が壊れた」と判断するのではなく、次の観点で確認してください。

差分確認すること
新しいモデルが生成された以前は欠落していた外部ライブラリ由来モデルではないか
モデルのusageが変わったUsage.inputUsage.outputUsage.json の指定が正しく反映された結果ではないか
accessが変わったAccess.public / Access.internal の明示指定が反映された結果ではないか
ネストされた名前空間配下のモデルが増えた名前空間への @usage 指定が再帰的に伝播した結果ではないか
言語別SDKで差分が出た各エミッターが同じモデル情報をどう解釈しているか

今回の修正では、decorators.tsgetUsageOverride が名前空間をたどって再帰的にusageを取得するように変更され、internal-utils.tslistOrphanTypes もdecoratorデータを起点に対象型を拾う方向へ修正されています。(GitHub)

移行・展開時のおすすめ手順

今回のようなホットフィックスは、依存関係を上げるだけなら簡単です。しかし、SDK生成系の更新では、更新後の生成物まで確認しないと影響を見落とします。

安全に進めるなら、次の流れがおすすめです。

フェーズ実施内容失敗しやすいポイント
事前確認現在のTCGCバージョンとTypeSpecコードを確認ロックファイルの実バージョンを見落とす
検証ブランチ作成0.68.1 へ更新して生成を実行本番ブランチで直接更新する
差分確認生成SDK、OpenAPI、スナップショットを比較差分をすべてノイズとして無視する
テストTypeSpec compile、SDKテスト、サンプルビルドを実行生成だけ成功して利用側テストを省略する
レビューpublic/internalや入力・出力モデルの変化を確認公開APIの見え方を確認しない
展開CI/CDに反映し、SDK公開フローへ進める複数言語SDKの差分確認を忘れる

実務では、まず生成結果の差分を保存してレビューするのが重要です。たとえば、以前はSDKに含まれていなかった共通エラー型が出力されるようになった場合、それは今回の修正が正しく効いた結果かもしれません。

CI/CDで見ておきたいチェック項目

TypeSpecからSDKを生成しているプロジェクトでは、CI/CDで次の項目を確認してください。

チェック項目目的
tsp compile の成功TypeSpec定義がコンパイルできるか確認
SDK生成コマンドの成功生成処理が従来通り完了するか確認
生成物の差分モデル、メソッド、visibilityの変化を確認
スナップショットテスト既存の期待値との差分を把握
サンプルコードのビルドSDK利用者目線で破綻がないか確認
API互換性チェックpublic APIに意図しない変更がないか確認
複数言語の生成確認C#、Java、Python、JavaScriptなどで差分が偏らないか確認

PR上では、ベンチマーク結果として一部メトリックがしきい値を超えて悪化した表示もあります。ただし、同じ表示内でtotalは大きな破綻を示すものではなく、ベンチマークは環境や対象に依存します。自社プロジェクトでは、公式PRの数値だけで判断せず、実際の仕様ファイルと生成パイプラインで計測するのが現実的です。(GitHub)

バックマージで「Rebase merge」が指定された理由

今回のPR本文では、release/may-2026 のホットフィックスを main にバックマージし、バージョン更新と修正をmainに反映する目的が明記されています。また、PRには「Rebase merge this PR (do not squash)」という注意書きがあります。(GitHub)

これは、リリースブランチで行われたホットフィックスのコミット履歴を、main側でも追跡しやすくするための運用上の指示と考えられます。GitHubのドキュメントでも、Pull Requestの取り込み方法には、通常のmerge、squash merge、rebase mergeがあり、squash mergeは複数コミットを1つにまとめる方式、rebase mergeはheadブランチの個々のコミットをbaseブランチへ載せ替える方式として説明されています。(GitHub Docs)

開発チームで同様の運用をしている場合、ホットフィックスのバックマージでは次の点に注意してください。

マージ方法特徴今回のようなバックマージでの注意点
Merge commitマージコミットが残る履歴は明確だが、リポジトリの運用方針に合わない場合がある
Squash merge複数コミットを1つにまとめるホットフィックスの個別コミット追跡が難しくなる場合がある
Rebase merge個別コミットをbaseへ載せ替えるバージョン更新と修正コミットを分けて追跡しやすい

今回のPRでは、2つのコミットが main へ取り込まれています。1つは @@usage / @@access に関する修正、もう1つは [email protected] のバージョン更新です。(GitHub)

よくある誤解と注意点

Azureの本番環境に緊急対応が必要なのか

基本的には不要です。今回の更新は、Azureリソースのランタイム設定やセキュリティポリシーを直接変更するものではなく、TypeSpec関連パッケージのホットフィックスです。

ただし、自社でAzure API仕様をTypeSpecで管理し、SDK生成を内製・自動化している場合は、依存関係の更新と生成差分の確認を行ってください。

既存のSDK利用アプリに影響するのか

既存アプリが公開済みSDKを利用しているだけなら、直接の影響は限定的です。影響が出るのは、主にSDKを生成・公開する側です。

ただし、今回の修正を取り込んだ後に新しいSDKを公開する場合、生成されるモデルの一覧や公開範囲が変わる可能性があります。SDK利用者に見えるAPIが増える場合は、リリースノートや変更履歴で説明しておくと混乱を避けられます。

@@access だけを指定している場合も対象になるのか

PR内のレビューでは、@@access だけを指定した場合の発見処理についても話題に上がっています。レビューコメントでは、@@usage とlegacy hierarchy buildingのdecorator dataを起点にしており、@@access のみの型が発見されるかという観点が確認されています。(GitHub)

実務では、外部ライブラリ由来のモデルを生成対象にしたい場合、@@access だけでなく、必要に応じて @@usage も明示する設計にしておくほうが安全です。access は公開範囲、usage は生成・利用目的に関係するため、どちらの意図もコード上に残しておくとレビューしやすくなります。

パッチバージョンなので確認は不要か

不要とは言い切れません。今回のリリースはBug Fixesとして扱われていますが、修正により「これまで落ちていたモデルが正しく出る」可能性があります。これはバグ修正であっても、生成物の差分としては見える変更です。

特にSDK生成物をそのまま公開しているチームは、パッチバージョンでも生成結果を比較してください。

実務での判断基準

今回のMicrosoft Azure documentation update: Backmerge release/may-2026([email protected] hotfix)を取り込むかどうかは、次の基準で判断するとよいでしょう。

状況推奨判断
TypeSpecを使っていない対応不要
TypeSpecは使っているがTCGCを使っていない依存関係を確認するだけでよい
TCGC 0.68.0を使っている0.68.1への更新を検証する
@@usage / @@access を使っていない生成差分が小さい可能性が高いが、通常テストは実施
外部ライブラリのモデルに @@usage / @@access を指定している優先的に更新・差分確認
SDK公開前のブランチがある取り込んでから生成差分をレビュー
すでにSDKリリース直前生成差分を確認し、意図しない公開API変更があればリリース判断を分ける

もっとも注意すべきなのは、「自分たちはAzureを使っているから関係がある」と広く捉えすぎることと、「TypeSpecのパッチだから関係ない」と狭く捉えすぎることです。今回の対象は、Azure運用全般ではなく、Azure向けTypeSpecとSDK生成の境界にある変更です。

次に取るべき行動

まず、自社リポジトリで @azure-tools/typespec-client-generator-core を使っているか確認してください。使っていなければ、今回の更新による直接対応はほぼありません。

使っている場合は、現在のバージョン、@@usage / @@access の利用箇所、外部ライブラリ由来モデルへの指定有無を確認します。そのうえで 0.68.1 に更新した検証ブランチを作成し、TypeSpec compile、SDK生成、生成差分、サンプルビルド、API互換性チェックを実行してください。

今回のホットフィックスは、派手な機能追加ではありません。しかし、SDK生成におけるモデルの欠落や公開範囲のずれは、後から見つかると修正コストが高くなります。TypeSpecをAzure SDK生成やAPI仕様管理に使っているチームほど、早めに差分を確認し、正しい生成結果をリリースフローに反映することが重要です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次