Skip to content

Commit bb8c283

Browse files
authored
fix(release): give Azure Managed its own changelog (#344)
1 parent 2957815 commit bb8c283

6 files changed

Lines changed: 43 additions & 30 deletions

File tree

.github/copilot-instructions.md

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,13 @@ orchestration replays, activity executions, and entity operations.
8282

8383
### Package Structure
8484

85-
This is an npm workspaces monorepo with two published packages:
86-
87-
| Package | Role |
88-
|---|---|
89-
| Core SDK | Orchestration engine, client, worker, entities, testing, tracing |
90-
| Azure Managed Backend | Connection string / Entra ID auth, credential factory, builder pattern |
85+
This is an npm workspaces monorepo with three published packages:
86+
87+
| Package | Role | Changelog |
88+
|---|---|---|
89+
| Core SDK | Orchestration engine, client, worker, entities, testing, tracing | `CHANGELOG.md` |
90+
| Azure Managed Backend | Connection string / Entra ID auth, credential factory, builder pattern | `packages/durabletask-js-azuremanaged/CHANGELOG.md` |
91+
| Azure Functions Durable Provider | Azure Functions v4 compatibility provider | `packages/azure-functions-durable/CHANGELOG.md` |
9192

9293
The Azure package **peers on** the core package — it adds authentication and connection
9394
management but delegates all domain logic to core.

.github/workflows/prepare-release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
PKG_DIR="packages/durabletask-js-azuremanaged"
5959
NPM_NAME="@microsoft/durabletask-js-azuremanaged"
6060
TAG_PREFIX="azuremanaged-v"
61-
CHANGELOG_PATH="CHANGELOG.md"
61+
CHANGELOG_PATH="packages/durabletask-js-azuremanaged/CHANGELOG.md"
6262
;;
6363
azure-functions-durable)
6464
PKG_DIR="packages/azure-functions-durable"

CHANGELOG.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,6 @@
99

1010
### Changes
1111

12-
- fix: trim whitespace from tenant values in connection string parsing ([#311](https://github.com/microsoft/durabletask-js/pull/311))
13-
- [copilot-finds] Bug: Fix off-by-one in createServiceConfig maxRetries→maxAttempts conversion ([#287](https://github.com/microsoft/durabletask-js/pull/287))
14-
- [copilot-finds] Improve: Add addEntity/addNamedEntity methods to DurableTaskAzureManagedWorkerBuilder ([#266](https://github.com/microsoft/durabletask-js/pull/266))
15-
- Fix race condition in AccessTokenCache concurrent token fetches ([#178](https://github.com/microsoft/durabletask-js/pull/178))
16-
- fix: preserve error cause in getHostAddress() for better debugging ([#194](https://github.com/microsoft/durabletask-js/pull/194))
17-
- [copilot-finds] Bug: Connection string parser uses case-sensitive key lookup ([#196](https://github.com/microsoft/durabletask-js/pull/196))
1812
- feat(durable-functions): restore worker-side callHttp ([#333](https://github.com/microsoft/durabletask-js/pull/333), fixes [#318](https://github.com/microsoft/durabletask-js/issues/318))
1913
- [copilot-finds] Bug: Entity getState() produces unhelpful SyntaxError for corrupted state ([#309](https://github.com/microsoft/durabletask-js/pull/309))
2014
- fix: prevent infinite loop in suspend/resume event buffer iteration ([#306](https://github.com/microsoft/durabletask-js/pull/306))

doc/release_process.md

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ This document describes how to cut a new release of the three npm packages publi
44

55
## Overview
66

7-
| Package (npm name) | Directory | npm |
8-
|---|---|---|
9-
| `@microsoft/durabletask-js` (core) | `packages/durabletask-js` | [npmjs](https://www.npmjs.com/package/@microsoft/durabletask-js) |
10-
| `@microsoft/durabletask-js-azuremanaged` | `packages/durabletask-js-azuremanaged` | [npmjs](https://www.npmjs.com/package/@microsoft/durabletask-js-azuremanaged) |
11-
| `durable-functions` | `packages/azure-functions-durable` | [npmjs](https://www.npmjs.com/package/durable-functions) |
7+
| Package (npm name) | Directory | Changelog | npm |
8+
|---|---|---|---|
9+
| `@microsoft/durabletask-js` (core) | `packages/durabletask-js` | `CHANGELOG.md` | [npmjs](https://www.npmjs.com/package/@microsoft/durabletask-js) |
10+
| `@microsoft/durabletask-js-azuremanaged` | `packages/durabletask-js-azuremanaged` | `packages/durabletask-js-azuremanaged/CHANGELOG.md` | [npmjs](https://www.npmjs.com/package/@microsoft/durabletask-js-azuremanaged) |
11+
| `durable-functions` | `packages/azure-functions-durable` | `packages/azure-functions-durable/CHANGELOG.md` | [npmjs](https://www.npmjs.com/package/durable-functions) |
1212

1313
This is an **npm workspaces** monorepo. The official build (`eng/ci/official-build.yml`) produces signed `.tgz` artifacts, and the **sanctioned way to publish them to npm is the ESRP release pipeline** (`eng/ci/release.yml`, see Step 3 below). A manual `npm publish` from the package directory is documented as an alternative for maintainers who need it.
1414

@@ -42,16 +42,9 @@ The scheme above describes the version **string**. Mapping a version to an **npm
4242

4343
Use the **Prepare Release** GitHub Action to automate the release preparation process.
4444

45-
### One-Time Preflight: Seed the `azuremanaged` Release Tag
45+
### Automatic Legacy Baseline for Azure Managed
4646

47-
The changelog step lists commits since the released package's **last package-scoped tag** (`git log <last-tag>..HEAD -- <pkg-dir>`); if no tag with that package's prefix exists, it falls back to the repo's initial commit and would dump the entire history into the changelog. `@microsoft/durabletask-js-azuremanaged` uses the `azuremanaged-v` prefix and has no such tag yet — the last lockstep release is the unprefixed `v0.3.0`. **Before the first independent `azuremanaged` release**, seed its tag so changelog generation starts at `v0.3.0` instead of the repo root:
48-
49-
```bash
50-
git tag azuremanaged-v0.3.0 v0.3.0
51-
git push origin azuremanaged-v0.3.0
52-
```
53-
54-
Do this once (not as part of a normal release run).
47+
The changelog step lists commits since the released package's **last package-scoped tag** (`git log <last-tag>..HEAD -- <pkg-dir>`). If Azure Managed has no `azuremanaged-v` tag yet, the workflow automatically checks for the legacy lockstep tag `v${CURRENT_VERSION}` and uses it as the baseline. This keeps the first independent Azure Managed changelog scoped to changes after its matching legacy release without requiring a manually seeded tag. If neither tag exists, the workflow falls back to the repository's initial commit.
5548

5649
### Running the Workflow
5750

@@ -68,7 +61,7 @@ For the **one package you selected** (and only that package):
6861
1. **Determines the next version**: uses the `version` input, or auto-increments the selected package's current version
6962
2. **Generates a changelog**: lists commits since that package's last release tag, scoped to the package's directory (`git log <last-tag>..HEAD -- <pkg-dir>`), so only commits that touched that package are included
7063
3. **Bumps the version**: updates `version` in that package's own `package.json`
71-
4. **Updates that package's changelog**: core and azuremanaged write the repo-root `CHANGELOG.md`; `durable-functions` writes `packages/azure-functions-durable/CHANGELOG.md`
64+
4. **Updates that package's changelog**: core writes `CHANGELOG.md`, Azure Managed writes `packages/durabletask-js-azuremanaged/CHANGELOG.md`, and `durable-functions` writes `packages/azure-functions-durable/CHANGELOG.md`
7265
5. **Creates a release branch and a package-scoped tag**: tag `<prefix><version>` and branch `release/<prefix><version>`, where the prefix is `v` (core), `azuremanaged-v`, or `durable-functions-v`
7366
6. **For `durable-functions` only**: verifies the exact-pinned `@microsoft/durabletask-js` version is already published on public npm, and fails the run if it is not (guards the uninstallable-dependency case)
7467

@@ -149,7 +142,7 @@ Go to [GitHub Releases](https://github.com/microsoft/durabletask-js/releases) an
149142

150143
- **Tag**: the package-scoped tag created by the release — e.g. `durable-functions-v4.0.0-beta.1`, `azuremanaged-v0.3.0`, or `v0.4.0`
151144
- **Title**: the same tag, or `<npm-name>@<version>`
152-
- **Description**: copy the relevant section from that package's changelog (`CHANGELOG.md` for core / azuremanaged, `packages/azure-functions-durable/CHANGELOG.md` for `durable-functions`)
145+
- **Description**: copy the relevant section from that package's changelog: `CHANGELOG.md` for core, `packages/durabletask-js-azuremanaged/CHANGELOG.md` for Azure Managed, or `packages/azure-functions-durable/CHANGELOG.md` for `durable-functions`
153146
- **Pre-release**: check this box for alpha/beta/rc/preview releases
154147

155148
## Manual Release Process (Alternative)
@@ -190,7 +183,13 @@ Then update the affected cross-package dependency **for the package you are rele
190183

191184
### 3. Update the Changelog
192185

193-
Move items from the `## Upcoming` section of the package's changelog into a new versioned section. The changelog is a **generated** list of the released package's commit messages / PR links — not a place for hand-authored breaking-change narrative; detailed preview and migration guidance lives in `packages/azure-functions-durable/README.md` (for `durable-functions`), not the changelog. To reproduce the tooling manually, promote any curated `## Upcoming` notes into the new section and add one `### Changes` entry per commit, mirroring `git log <last-tag>..HEAD -- <pkg-dir>` (each commit subject with its `(#NN)` linked). Use the repo-root `CHANGELOG.md` for `@microsoft/durabletask-js` and `@microsoft/durabletask-js-azuremanaged`, or `packages/azure-functions-durable/CHANGELOG.md` for `durable-functions`:
186+
Move items from the `## Upcoming` section of the package's changelog into a new versioned section. The changelog is a **generated** list of the released package's commit messages / PR links — not a place for hand-authored breaking-change narrative; detailed preview and migration guidance lives in `packages/azure-functions-durable/README.md` (for `durable-functions`), not the changelog. To reproduce the tooling manually, promote any curated `## Upcoming` notes into the new section and add one `### Changes` entry per commit, mirroring `git log <last-tag>..HEAD -- <pkg-dir>` (each commit subject with its `(#NN)` linked). Update only the released package's changelog:
187+
188+
| Package | Changelog |
189+
|---|---|
190+
| `@microsoft/durabletask-js` | `CHANGELOG.md` |
191+
| `@microsoft/durabletask-js-azuremanaged` | `packages/durabletask-js-azuremanaged/CHANGELOG.md` |
192+
| `durable-functions` | `packages/azure-functions-durable/CHANGELOG.md` |
194193

195194
```markdown
196195
## Upcoming
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Upcoming
2+
3+
### New
4+
5+
### Fixes
6+
7+
## v0.4.0 (2026-07-31)
8+
9+
### Changes
10+
11+
- fix: trim whitespace from tenant values in connection string parsing ([#311](https://github.com/microsoft/durabletask-js/pull/311))
12+
- [copilot-finds] Bug: Fix off-by-one in createServiceConfig maxRetries→maxAttempts conversion ([#287](https://github.com/microsoft/durabletask-js/pull/287))
13+
- [copilot-finds] Improve: Add addEntity/addNamedEntity methods to DurableTaskAzureManagedWorkerBuilder ([#266](https://github.com/microsoft/durabletask-js/pull/266))
14+
- Fix race condition in AccessTokenCache concurrent token fetches ([#178](https://github.com/microsoft/durabletask-js/pull/178))
15+
- build(deps): bump @grpc/grpc-js ([#259](https://github.com/microsoft/durabletask-js/pull/259))
16+
- fix: preserve error cause in getHostAddress() for better debugging ([#194](https://github.com/microsoft/durabletask-js/pull/194))
17+
- [copilot-finds] Bug: Connection string parser uses case-sensitive key lookup ([#196](https://github.com/microsoft/durabletask-js/pull/196))
18+
- feat: Implement work item filters ([#168](https://github.com/microsoft/durabletask-js/pull/168))

packages/durabletask-js-azuremanaged/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
},
1414
"files": [
1515
"dist",
16+
"CHANGELOG.md",
1617
"LICENSE",
1718
"README.md"
1819
],

0 commit comments

Comments
 (0)