bump-mgmt-base-version
Skill: bump-mgmt-base-version
Bump the base http-client-csharp dependency used by the management-plane generator (http-client-csharp-mgmt). This updates both the npm emitter dependency and the NuGet generator dependency, then rebuilds and regenerates test projects.
When Invoked
Trigger phrases: "bump mgmt base version", "update http-client-csharp in mgmt", "bump generator version", "update mgmt dependency".
Instructions
1. Determine the target version
Read the latest version of @azure-typespec/http-client-csharp from:
eng/azure-typespec-http-client-csharp-emitter-package.json
Look at the dependencies["@azure-typespec/http-client-csharp"] value. This is the target version.
2. Identify current versions
Check the current versions in these two files:
| File | Field | Purpose |
|---|---|---|
eng/packages/http-client-csharp-mgmt/package.json |
dependencies["@azure-typespec/http-client-csharp"] |
Emitter npm dependency |
eng/centralpackagemanagement/Directory.Generation.Packages.props |
<AzureGeneratorVersion> |
Generator NuGet dependency (used by Azure.Generator.Management.csproj via <PackageReference Include="Azure.Generator" />) |
If both already match the target version, no update is needed — inform the user and stop.
3. Update version references
Update both files to the target version:
eng/packages/http-client-csharp-mgmt/package.json: Change the@azure-typespec/http-client-csharpversion independencies.eng/centralpackagemanagement/Directory.Generation.Packages.props: Change the<AzureGeneratorVersion>value.
4. Run npm install
cd eng/packages/http-client-csharp-mgmt
npm install
This updates package-lock.json to resolve the new dependency version.
5. Build the emitter
cd eng/packages/http-client-csharp-mgmt
npm run build:emitter
If TypeScript compilation fails, examine the errors — they likely indicate breaking API changes in the base @azure-typespec/http-client-csharp package. Fix the emitter source code under eng/packages/http-client-csharp-mgmt/emitter/ accordingly.
6. Lint and format the emitter
cd eng/packages/http-client-csharp-mgmt
npm run lint
npm run prettier
If lint or prettier checks fail, fix with:
npm run lint:fix
npm run prettier:fix
These checks are required to pass CI. Always run them after any emitter code changes.
7. Build the generator
cd eng/packages/http-client-csharp-mgmt
npm run build:generator
This runs dotnet build ./generator. The Azure.Generator.Management project references the Azure.Generator NuGet package, whose version is controlled by AzureGeneratorVersion in eng/centralpackagemanagement/Directory.Generation.Packages.props.
If C# compilation fails, examine the errors — they likely indicate breaking API changes in the Azure.Generator package. Fix the generator source code under eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/ accordingly.
8. Regenerate test projects
pwsh eng/packages/http-client-csharp-mgmt/eng/scripts/Generate.ps1
This script:
- Rebuilds the emitter and generator (via
Refresh-Mgmt-Build) - Regenerates the
Mgmt-TypeSpectest project undergenerator/TestProjects/Local/Mgmt-TypeSpec/ - Builds the regenerated test project to verify correctness
If regeneration produces file changes, they must be included in the commit.
9. Verify
- Run
git statusto see all modified files - Ensure
package.json,package-lock.json,Directory.Generation.Packages.props, and any regenerated test project files are included - All changes should be committed together
Key Files Reference
| File | Role |
|---|---|
eng/azure-typespec-http-client-csharp-emitter-package.json |
Source of truth for latest base version |
eng/packages/http-client-csharp-mgmt/package.json |
Mgmt emitter npm dependencies |
eng/packages/http-client-csharp-mgmt/package-lock.json |
Resolved npm dependency tree |
eng/centralpackagemanagement/Directory.Generation.Packages.props |
NuGet version properties (AzureGeneratorVersion) |
eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Azure.Generator.Management.csproj |
Generator project referencing Azure.Generator |
eng/packages/http-client-csharp-mgmt/eng/scripts/Generate.ps1 |
Test project regeneration script |
eng/packages/http-client-csharp-mgmt/eng/scripts/Generation.psm1 |
Build and generation helper functions |