# Bump Mgmt Base Version

> Bump the http-client-csharp base dependency versions in http-client-csharp-mgmt. Updates Azure and unbranded emitter (npm) dependencies and the Azure generator (NuGet) reference, rebuilds, and regenerates test projects.

- Skill: `azure-azure-sdk-for-net/bump-mgmt-base-version` (Agent Skill)
- Install (CLI): `npx skillmds@latest add azure-azure-sdk-for-net/bump-mgmt-base-version`
- Raw SKILL.md: https://api.skillmd.com/api/skills/azure-azure-sdk-for-net/bump-mgmt-base-version/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: Azure (https://skillmd.com/u/azure-azure-sdk-for-net)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/azure-azure-sdk-for-net/bump-mgmt-base-version

---


# Skill: bump-mgmt-base-version

Bump the base `http-client-csharp` dependencies used by the management-plane generator (`http-client-csharp-mgmt`). This updates the Azure and compatible unbranded npm emitter dependencies and the Azure 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 **Azure target version**.

Determine the **unbranded target version** required by that exact Azure package version:

```shell
npm view "@azure-typespec/http-client-csharp@<azure-target-version>" dependencies --json
```

Use the returned `@typespec/http-client-csharp` dependency version. The management emitter imports the unbranded package directly, so its pin must match the Azure package's dependency to avoid loading incompatible copies of the TypeSpec library.

### 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"]` | Azure emitter npm dependency |
| `eng/packages/http-client-csharp-mgmt/package.json` | `dependencies["@typespec/http-client-csharp"]` | Compatible unbranded 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 all three already match their respective target versions, no update is needed — inform the user and stop.

### 3. Update version references

Update the version references:

1. **`eng/packages/http-client-csharp-mgmt/package.json`**:
   - Change `@azure-typespec/http-client-csharp` in `dependencies` to the Azure target version.
   - Change `@typespec/http-client-csharp` in `dependencies` to the unbranded target version required by the Azure package.
2. **`eng/centralpackagemanagement/Directory.Generation.Packages.props`**: Change `<AzureGeneratorVersion>` to the Azure target version.

### 4. Run npm install

```shell
cd eng/packages/http-client-csharp-mgmt
npm install
```

This updates `package-lock.json` to resolve the new dependency version.

### 5. Build the emitter

```shell
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

```shell
cd eng/packages/http-client-csharp-mgmt
npm run lint
npm run prettier
```

If lint or prettier checks fail, fix with:

```shell
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

```shell
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

```shell
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

```shell
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 both base dependencies in `package.json` match the Azure package's compatible dependency chain
- 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

| 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 |
| `doc/GeneratorVersions/Emitter_Version_Dashboard.ps1` | Script to regenerate the version dashboard |
| `doc/GeneratorVersions/Emitter_Version_Dashboard.md` | Emitter dependency version dashboard |

