Skip to content

test: Angular matrix with consumer-build apps (full)#109

Closed
JuroUhlar wants to merge 3 commits into
mainfrom
claude/pensive-wright-dk8to9
Closed

test: Angular matrix with consumer-build apps (full)#109
JuroUhlar wants to merge 3 commits into
mainfrom
claude/pensive-wright-dk8to9

Conversation

@JuroUhlar

Copy link
Copy Markdown
Contributor

What

Full version of the Angular compatibility matrix. Builds on the simpler version-swap workflow (#108) by adding a consumer-compatibility check: compile real, committed Angular apps against the built SDK package.

Jobs

  1. unit-and-build (×7) — swap the installed Angular toolchain in the committed workspace, then ng build the library and run jest, across Angular 15–21.
  2. build-package (×1) — build the publishable SDK once → dist. Angular Package Format output is partial-Ivy and portable, so one build serves every consumer version.
  3. consumer-build (×2) — download the built package and compile committed demo apps against it under their own Angular version:
    • demo-angular15 — NgModule API (FingerprintModule.forRoot), oldest supported version.
    • demo-angular21 — standalone API (provideFingerprint), newest version.

This compiles both consumer API surfaces against the real built artifact — verification that #85's generated-but-never-built demo scaffolding never actually performed.

Notes

  • demo-angular21 now consumes the built dist (matching tsconfig.test-dts.json) so it behaves like a real npm consumer.
  • Adding a version is a copy-the-folder + one matrix line operation.
  • Locally build-verified: SDK dist builds, and both demo apps compile against it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a


Generated by Claude Code

claude added 3 commits June 23, 2026 13:19
Replace the per-version workspace scaffolding approach with a declarative
CI matrix that keeps the committed workspace and only swaps the installed
Angular toolchain (core/common/cli/compiler-cli/ng-packagr) plus the
version-matched TypeScript, zone.js and jest-preset-angular. Each matrix
entry builds the library and runs the existing jest suite.

Also add .node-version and an engines field for local Node consistency.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
Extends the version matrix with a consumer-compatibility check: build the
publishable SDK package once (portable Angular Package Format output) and
compile the committed demo app against that built package under its own
Angular version. This catches breakage in a version's real project config
and consumer API surface that the library-only build/unit job can miss.

Point demo-angular21 at the built dist (matching tsconfig.test-dts.json) so
it consumes the SDK the way a real npm consumer does. Add more versions by
dropping in projects/demo-angular<NN> and a matrix entry.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
Adds a real, committed Angular 15 application that consumes the built SDK
package via the NgModule API (FingerprintModule.forRoot) and FingerprintService.
This covers the oldest supported version and the module-based consumer API
surface that the standalone demo-angular21 (provideFingerprint) does not.

Wired into the consumer-build matrix. Also ignore nested .angular/ build
caches so generated artifacts are never committed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Fpy8yBUra4yxpMp5F9Xm7a
@JuroUhlar JuroUhlar closed this Jun 23, 2026
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