Sitelet https://github.com/limitless-angular/limitless-angular/pull/27
Skip to content

feat(sanity): add angular compatibility harness - #27

Merged
osnoser1 merged 14 commits into
mainfrom
osnoser1/ensure-angular-compatibility
Jun 7, 2026
Merged

osnoser1 merged 14 commits into
mainfrom
osnoser1/ensure-angular-compatibility

Conversation

@osnoser1

@osnoser1 osnoser1 commented Jun 7, 2026 •

Copy link
Copy Markdown
Member

PR Checklist

Closes #

What is the new behavior?

Adds a config-driven Angular compatibility harness for @limitless-angular/sanity that validates the release-shaped package, not just the monorepo source tree.

The harness now:

  • builds and packs one package artifact with the newest stable configured Angular major
  • validates the packed tarball shape before testing or publishing
  • tests that exact tarball in generated Angular consumers for angular-18-floor, angular-18-latest, and angular-19-latest
  • compiles public entrypoint and public API type-smoke checks in those consumers
  • boots the generated consumers in Chromium and checks runtime rendering/errors
  • runs an advisory Angular next canary compatibility job
  • prevents peer-range and compatibility-matrix drift
  • guards the release workflow so npm publishes the same compatibility-tested tarball
  • documents the harness and how to add support for any Angular major in tools/angular-compat/README.md

The command layer is centralized through tools/angular-compat/cli.mjs with yargs, while the compatibility logic remains in reusable functions.

Also fixes SanityImage so its generated declarations remain compatible with Angular 18 consumers.

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Validated locally with:

  • volta run --node 22.22.3 pnpm run compat:assert
  • volta run --node 22.22.3 pnpm run compat:matrix
  • volta run --node 22.22.3 pnpm run compat:matrix --canary
  • volta run --node 22.22.3 pnpm run compat:pack
  • volta run --node 22.22.3 pnpm run compat:artifact
  • volta run --node 22.22.3 pnpm run compat:release-parity
  • volta run --node 22.22.3 pnpm run compat:test
  • volta run --node 22.22.3 pnpm run compat:test --set angular-18-floor --skip-runtime
  • volta run --node 22.22.3 pnpm turbo run build test --affected
  • volta run --node 22.22.3 pnpm turbo run lint --filter=@limitless-angular/sanity
  • CI=1 volta run --node 22.22.3 pnpm turbo run e2e --filter=sanity-presentation-e2e
  • CI=1 volta run --node 22.22.3 pnpm turbo run e2e-studio --filter=sanity-presentation-e2e
  • git diff --check

Current PR checks are green, including main, presentation-e2e, sanity-compat-pack, the three stable Angular consumer rows, and the advisory Angular next row.

Changelog entries are left to the repository release script, which generates packages/sanity/CHANGELOG.md from conventional commits during release.

Follow-up: #28 tracks release dry-run validation for compatibility publishing.

[Optional] What gif best describes this PR or how it makes you feel?

@netlify

netlify Bot commented Jun 7, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for limitless-angular-sanity-example canceled.

Name Link
🔨 Latest commit 8cc3fe3
🔍 Latest deploy log https://app.netlify.com/projects/limitless-angular-sanity-example/deploys/6a25b14818dee000086f9daf

@pkg-pr-new

pkg-pr-new Bot commented Jun 7, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@limitless-angular/sanity@27

commit: 8cc3fe3

@osnoser1
osnoser1 marked this pull request as ready for review June 7, 2026 06:19
@github-actions

github-actions Bot commented Jun 7, 2026 •

Copy link
Copy Markdown

Angular canary compatibility warning

The advisory Angular canary compatibility check failed. This does not block the PR because canary targets are outside the currently required support matrix.

Supported peer range: ^18.0.0 || ^19.0.0
Workflow run: CI #232

Canary set Target Tested versions First failure
angular-next Angular next Angular 22.0.0, CLI 22.0.0, TypeScript 6.0.3 ✘ [ERROR] TS5101: Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0. Specify compilerOption '"ignoreDeprecations": "6.0"' to silence this error.

Stable Angular compatibility rows remain required and will still fail CI if the declared peer range is broken.

@osnoser1
osnoser1 force-pushed the osnoser1/ensure-angular-compatibility branch from abf5bb9 to 478192d Compare June 7, 2026 16:38
@osnoser1
osnoser1 force-pushed the osnoser1/ensure-angular-compatibility branch from 639ba49 to b7cdd8a Compare June 7, 2026 17:18
@osnoser1
osnoser1 merged commit ffc05db into main Jun 7, 2026
15 checks passed
@osnoser1
osnoser1 deleted the osnoser1/ensure-angular-compatibility branch June 7, 2026 18:03
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.

1 participant