Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,21 @@ The floating `v1` tag tracks the latest `1.x` release. Consumers pinning

## [Unreleased]

## [1.9.0] - 2026-05-18
Comment on lines 11 to +13

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch -- fixed in 77f3b29. Added [1.9.0]: ...compare/v1.8.0...v1.9.0 and bumped [Unreleased] to compare from v1.9.0.


### Added

- **`mode: release` umbrella for tag-triggered releases** ([microsoft/apm#1348]). A single input collapses the release pipeline into one step: gate (`apm pack --check-versions --check-clean --json`), per-package matrix pack with sha256 sidecars, marketplace.json drift detection, GH Step Summary, and `gh release create` publish. The CLI primitives underneath stay vendor-neutral — the equivalent shell recipe works unchanged on GitLab CI, Jenkins, and Azure DevOps (see `producer/releasing-from-any-ci.md`).
- New inputs (all optional): `mode` (`release`), `release-tag`, `release-name`, `release-notes`, `release-draft`, `release-prerelease` (`true`/`false`/`auto` — auto-detects from `-rc`/`-alpha`/`-beta`/`-pre` in the tag), `release-skip-publish` (dry-run for CI / e2e).
- New outputs: `packages` (JSON array of `{name, version, bundle, sha256, sha256_path}`), `marketplace-drift` (`true`/`false`), `release-url`, `release-tag`. Outside `mode: release` the `packages` output is always set to `'[]'` so downstream `fromJSON()` steps work unconditionally.
- Mutually exclusive with the classic dispatch inputs (`pack`, `bundle`, `bundles-file`, `setup-only`); setting any combination fails fast with a single consolidated error.
- Requires `apm` >= 0.14.0 on PATH for the `--check-versions` / `--check-clean` gate; below 0.14 the gate exits non-zero with a generic message.
- Requires `apm` >= 0.14.0 on PATH for the `--check-versions` / `--check-clean` gate; the default `apm-version` is pinned to `0.14.0` so the umbrella is functional out of the box.
- Reference workflow: `tests/fixtures/release/` (aggregator + single-plugin shapes).

### Changed

- **`apm-version` default bumped to `0.14.0`** (was `0.13.0`). Picks up the v0.14.0 release: `apm pack --check-versions` / `--check-clean` release gates (required by `mode: release`), `apm plugin init` noun-verb surface, `apm pack` multi-format outputs (`--marketplace`, `--marketplace-path`, `--json`, `marketplace.outputs` map form), `apm marketplace doctor` version-alignment + format-coverage rows, and the breaking MCP Registry v0.1 client (self-hosted registries must serve `/v0.1/` paths). Consumers pinning `apm-version` explicitly are unaffected.


## [1.8.0] - 2026-05-18

Expand Down Expand Up @@ -222,7 +228,8 @@ Initial public release.
- **Marketplace name set to "Setup APM"** ([#5]).
- **Microsoft OSS compliance baseline.** SECURITY.md ([#2]), CODEOWNERS, license, contributing guide, code of conduct, and CI pipeline.

[Unreleased]: https://github.com/microsoft/apm-action/compare/v1.8.0...HEAD
[Unreleased]: https://github.com/microsoft/apm-action/compare/v1.9.0...HEAD
[1.9.0]: https://github.com/microsoft/apm-action/compare/v1.8.0...v1.9.0
[1.8.0]: https://github.com/microsoft/apm-action/compare/v1.7.3...v1.8.0
[1.7.3]: https://github.com/microsoft/apm-action/compare/v1.7.2...v1.7.3
[1.7.2]: https://github.com/microsoft/apm-action/compare/v1.7.1...v1.7.2
Expand Down
4 changes: 2 additions & 2 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ inputs:
default: '.'
apm-version:
description: |
APM CLI version to install (e.g. "0.13.0"). Defaults to a pinned, known-good release.
APM CLI version to install (e.g. "0.14.0"). Defaults to a pinned, known-good release.
The default is intentionally NOT "latest": pinning the action to a specific APM version
prevents downstream workflows from being broken by an unrelated APM release. Pass
"latest" explicitly to opt in to floating, or pin to a different tag for reproducibility.
required: false
default: '0.13.0'
default: '0.14.0'

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Declining -- the v0.14.0 bump is the intentional core of this cut, not a stowaway.

Why the bump is required, not optional: mode: release (the flagship feature of v1.9.0) calls apm pack --check-versions --check-clean --json. Those flags landed in apm CLI #1365 and only exist as of v0.14.0. Cutting v1.9.0 while keeping the default at 0.13.0 would ship an action whose own flagship feature is broken against its own default install. The PR body calls this out explicitly.

MCP Registry v0.1 scope is narrower than it reads: the breaking surface in apm#1337 only affects users who install MCP servers from a self-hosted registry serving /v0/ paths. Both public registries (api.mcp.github.com, registry.modelcontextprotocol.io) are unaffected. The intersection of (1) using apm-action in CI, (2) installing MCP servers via apm install rather than directly, and (3) sourcing them from a self-hosted v0-only registry is a vanishingly small slice of users.

Affected users have a one-line escape hatch: with: { apm-version: '0.13.5' } pins the old CLI. The CHANGELOG entry and PR body both document the upgrade and the workaround.

Not a major-version trigger: floating v1 already tracks CLI bumps (we've moved through 0.10.x -> 0.13.x without majoring), the breaking change is squarely in the CLI's documented ### Breaking section, and SemVer for the action surface remains intact (no apm-action input/output contract change in this minor).

script:
description: 'APM script to run after install (optional — by default only install runs)'
required: false
Expand Down
Loading