CtrlK
BlogDocsLog inGet started
Tessl Logo

bump-mgmt-base-version

Bump the http-client-csharp base dependency version in http-client-csharp-mgmt. Updates emitter (npm) and generator (NuGet) references, rebuilds, and regenerates test projects.

62

Quality

72%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/bump-mgmt-base-version/SKILL.md
SKILL.md
Quality
Evals
Security

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:

FileFieldPurpose
eng/packages/http-client-csharp-mgmt/package.jsondependencies["@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:

  1. eng/packages/http-client-csharp-mgmt/package.json: Change the @azure-typespec/http-client-csharp version in dependencies.
  2. 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-TypeSpec test project under generator/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. Refresh the Emitter Version Dashboard

pwsh doc/GeneratorVersions/Emitter_Version_Dashboard.ps1

This regenerates doc/GeneratorVersions/Emitter_Version_Dashboard.md so the documented dependency chain matches the updated package.json versions. The updated dashboard file must be included in the commit.

10. Verify

  • Run git status to see all modified files
  • Ensure package.json, package-lock.json, Directory.Generation.Packages.props, Emitter_Version_Dashboard.md, and any regenerated test project files are included
  • All changes should be committed together

Key Files Reference

FileRole
eng/azure-typespec-http-client-csharp-emitter-package.jsonSource of truth for latest base version
eng/packages/http-client-csharp-mgmt/package.jsonMgmt emitter npm dependencies
eng/packages/http-client-csharp-mgmt/package-lock.jsonResolved npm dependency tree
eng/centralpackagemanagement/Directory.Generation.Packages.propsNuGet version properties (AzureGeneratorVersion)
eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Azure.Generator.Management.csprojGenerator project referencing Azure.Generator
eng/packages/http-client-csharp-mgmt/eng/scripts/Generate.ps1Test project regeneration script
eng/packages/http-client-csharp-mgmt/eng/scripts/Generation.psm1Build and generation helper functions
doc/GeneratorVersions/Emitter_Version_Dashboard.ps1Script to regenerate the version dashboard
doc/GeneratorVersions/Emitter_Version_Dashboard.mdEmitter dependency version dashboard
Repository
Azure/azure-sdk-for-net
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.