Skip to content

chore: prepare v0.8.12 release#774

Merged
danielmeppiel merged 3 commits intomainfrom
chore/prepare-v0.9.0
Apr 19, 2026
Merged

chore: prepare v0.8.12 release#774
danielmeppiel merged 3 commits intomainfrom
chore/prepare-v0.9.0

Conversation

@danielmeppiel
Copy link
Copy Markdown
Collaborator

@danielmeppiel danielmeppiel commented Apr 19, 2026

Summary

Bump version to 0.8.12 and backfill CHANGELOG.md entries for all PRs merged since v0.8.11.

The previous ## [Unreleased] section was missing ~21 PRs. This PR consolidates everything into a single dated ## [0.8.12] - 2026-04-19 section, organized per Keep-a-Changelog (Added / Changed / Fixed / Tests / Dependencies).

Why patch (0.8.12) and not minor

Consistent with the project's established convention:

  • 0.8.11 shipped two new top-level commands (apm view, apm outdated) — patch.
  • 0.8.8 shipped -g global scope, full marketplace integration, and Codex as a target — patch.
  • 0.8.6 introduced the --target flag — patch.

This release is incremental on top of those: no new commands, no breaking changes, no removed flags. So a patch bump is the right call.

Backfilled PRs

Added missing entries for: #571, #584, #607, #609, #616, #623, #642, #671, #681, #682, #698, #707, #709, #712, #715, #724, #730, #738, #742, #748, #750, #761, #767, #771.

Verification

  • pyproject.toml version: 0.8.11 -> 0.8.12
  • CHANGELOG.md: Unreleased is now empty; new [0.8.12] - 2026-04-19 section contains the consolidated history (single ### Changed, fixing the duplicate header that was in the prior Unreleased block)
  • No code changes

Release readiness assessment

This is worth shipping now. Highlights:

No blocking known issues. Recommend merging this PR, then tagging v0.8.12 from main.

Copilot AI review requested due to automatic review settings April 19, 2026 19:45
Bump version to 0.8.12 and backfill CHANGELOG entries for all PRs merged since v0.8.11. Includes feature additions (project-local .apm/ install, configurable temp-dir, root-project primitives, marketplace proxy), an install-engine refactor + design-pattern cleanup, the #666/#762 stale-cleanup safety hardening, multiple Windows-environment fixes (CP950 encoding, hook backslash paths, init path validation), and the GitHub Merge Queue tiered-CI rollout.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Prepares the v0.9.0 release by bumping the package version and consolidating missing release notes into a new dated changelog section, aligning the release documentation with the project’s recent merged work.

Changes:

  • Bump apm-cli version from 0.8.11 to 0.9.0.
  • Move/backfill ~recent PR entries into CHANGELOG.md under ## [0.9.0] - 2026-04-19.
  • Re-organize release notes into grouped headings for the new release section.
Show a summary per file
File Description
pyproject.toml Updates project version to 0.9.0.
CHANGELOG.md Adds the 0.9.0 release section and consolidates missing entries into it.

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 3

Comment thread CHANGELOG.md Outdated
Comment on lines +21 to +22
- Refactor `apm install` into a modular engine package (`apm_cli/install/`) with discrete phases (resolve, targets, download, integrate, cleanup, lockfile, finalize, post-deps local), preserving behaviour and the `#762` cleanup chokepoint (#764)
- Refactor `apm install` internals to apply real design patterns: introduce a `DependencySource` Strategy hierarchy with shared `run_integration_template()` Template Method (kills ~300 LOC duplication across local/cached/fresh dep handlers), add `services.py` DI seam to eliminate `_install_mod` indirection, and wrap the pipeline in a typed `InstallService` Application Service consuming a frozen `InstallRequest`. `install/phases/integrate.py` shrinks from 1013 to ~400 LOC; the public `apm install` behaviour and CLI surface are unchanged. Backward-compatible: `_install_apm_dependencies` re-export and 55 healthy test patches keep working (#764)
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

This release section introduces two separate changelog bullets for the same PR number (#764). The project changelog format calls for one line per PR; please consolidate these into a single entry (or split by PR if they are actually different PRs).

Copilot uses AI. Check for mistakes.
Comment thread CHANGELOG.md Outdated
- Refactor `apm install` internals to apply real design patterns: introduce a `DependencySource` Strategy hierarchy with shared `run_integration_template()` Template Method (kills ~300 LOC duplication across local/cached/fresh dep handlers), add `services.py` DI seam to eliminate `_install_mod` indirection, and wrap the pipeline in a typed `InstallService` Application Service consuming a frozen `InstallRequest`. `install/phases/integrate.py` shrinks from 1013 to ~400 LOC; the public `apm install` behaviour and CLI surface are unchanged. Backward-compatible: `_install_apm_dependencies` re-export and 55 healthy test patches keep working (#764)
- `apm marketplace browse/search/add/update` now route through the registry proxy when `PROXY_REGISTRY_URL` is set; `PROXY_REGISTRY_ONLY=1` blocks direct GitHub API calls (#506, #617)
- CI: adopt GitHub Merge Queue with tiered CI. `ci.yml` (Tier 1: unit tests + binary build) now runs on `pull_request` and `merge_group`. The integration + release-validation suite (Tier 2) moves to `merge_group`-only, replacing the previous `workflow_run` + environment-approval flow. PR branches no longer need manual updates against `main`, and the heavy integration suite runs once at merge time instead of on every PR push (#770, #771)
- CI: add `ci-integration-pr-stub.yml`, an inert `pull_request_target` workflow that produces no-op check runs for the four Tier 2 required checks (`Build (Linux)`, `Smoke Test (Linux)`, `Integration Tests (Linux)`, `Release Validation (Linux)`). This satisfies branch protection's required-check gate at PR time without burning CI minutes, and works retroactively on existing fork PRs because `pull_request_target` reads workflow YAML from `main`. The stub holds no secrets, runs no checkout, and grants `permissions: {}` so it cannot be turned into a supply-chain attack vector. Real Tier 2 work continues to run only inside the merge queue. CODEOWNERS now requires Lead Maintainer review for any change to `.github/workflows/**`
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

This bullet does not end with a PR number reference. Changelog entries should end with the relevant PR number(s) in parentheses (e.g., "(#771)") to match the project changelog format.

Suggested change
- CI: add `ci-integration-pr-stub.yml`, an inert `pull_request_target` workflow that produces no-op check runs for the four Tier 2 required checks (`Build (Linux)`, `Smoke Test (Linux)`, `Integration Tests (Linux)`, `Release Validation (Linux)`). This satisfies branch protection's required-check gate at PR time without burning CI minutes, and works retroactively on existing fork PRs because `pull_request_target` reads workflow YAML from `main`. The stub holds no secrets, runs no checkout, and grants `permissions: {}` so it cannot be turned into a supply-chain attack vector. Real Tier 2 work continues to run only inside the merge queue. CODEOWNERS now requires Lead Maintainer review for any change to `.github/workflows/**`
- CI: add `ci-integration-pr-stub.yml`, an inert `pull_request_target` workflow that produces no-op check runs for the four Tier 2 required checks (`Build (Linux)`, `Smoke Test (Linux)`, `Integration Tests (Linux)`, `Release Validation (Linux)`). This satisfies branch protection's required-check gate at PR time without burning CI minutes, and works retroactively on existing fork PRs because `pull_request_target` reads workflow YAML from `main`. The stub holds no secrets, runs no checkout, and grants `permissions: {}` so it cannot be turned into a supply-chain attack vector. Real Tier 2 work continues to run only inside the merge queue. CODEOWNERS now requires Lead Maintainer review for any change to `.github/workflows/**` (#770, #771)

Copilot uses AI. Check for mistakes.
Comment thread CHANGELOG.md Outdated
Comment on lines +56 to +65
### Tests

- Refactor `apm install` internals to apply real design patterns: introduce a `DependencySource` Strategy hierarchy with shared `run_integration_template()` Template Method (kills ~300 LOC duplication across local/cached/fresh dep handlers), add `services.py` DI seam to eliminate `_install_mod` indirection, and wrap the pipeline in a typed `InstallService` Application Service consuming a frozen `InstallRequest`. `install/phases/integrate.py` shrinks from 1013 to ~400 LOC; the public `apm install` behaviour and CLI surface are unchanged. Backward-compatible: `_install_apm_dependencies` re-export and 55 healthy test patches keep working (#764)
- `apm marketplace browse/search/add/update` now route through the registry proxy when `PROXY_REGISTRY_URL` is set; `PROXY_REGISTRY_ONLY=1` blocks direct GitHub API calls (#506)
- Refactor `apm install` into a modular engine package (`apm_cli/install/`) with discrete phases (resolve, targets, download, integrate, cleanup, lockfile, finalize, post-deps local), preserving behaviour and the `#762` cleanup chokepoint (#764)
- Close install/uninstall/update CLI integration coverage gaps surfaced by the `#764` review (#767)
- Add 55 unit tests for `commands/deps/_utils.py` and `commands/view.py` to address Test Improver backlog items #4 and #5 (#682)

### Dependencies

- Bump `pytest` from 8.4.2 to 9.0.3 (#698)
- Bump `dompurify` from 3.3.2 to 3.4.0 in `/docs` (#730)
- Bump `lodash-es` and `langium` in `/docs` (#761)
Copy link

Copilot AI Apr 19, 2026

Choose a reason for hiding this comment

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

The changelog format in this repo groups entries under Keep-a-Changelog headings like Added/Changed/Deprecated/Removed/Fixed/Security. Introducing new top-level headings ("Tests", "Dependencies") makes the structure inconsistent with the documented format; consider folding these items under existing headings (commonly Changed or Added) instead.

See below for a potential fix:

### Changed

- Close install/uninstall/update CLI integration coverage gaps surfaced by the `#764` review (#767)
- Add 55 unit tests for `commands/deps/_utils.py` and `commands/view.py` to address Test Improver backlog items #4 and #5 (#682)

Copilot uses AI. Check for mistakes.
@danielmeppiel danielmeppiel changed the title chore: prepare v0.9.0 release chore: prepare v0.8.12 release Apr 19, 2026
danielmeppiel and others added 2 commits April 19, 2026 22:05
- Consolidate two #764 bullets into one (same PR, two bullets violated 'one line per PR' rule)
- Merge inert CI stub bullet into the merge-queue (#770, #771) line since the stub came from direct pushes (no PR number)
- Fold 'Tests' and 'Dependencies' headings into 'Changed' to match Keep-a-Changelog conventions used by the project (Added/Changed/Deprecated/Removed/Fixed/Security only)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve CHANGELOG conflict: keep [0.8.12] release section (which already
incorporates #616/#671/#681 from main's Unreleased), and add #766 entry
for the codex/opencode --target compile fix that landed via #769.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danielmeppiel danielmeppiel merged commit 0d2093d into main Apr 19, 2026
9 checks passed
@danielmeppiel danielmeppiel deleted the chore/prepare-v0.9.0 branch April 19, 2026 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants