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
4 changes: 0 additions & 4 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,6 @@ reviews:
instructions: >-
Review as the vite-plugin-angular package scope. Prioritize Angular and Vite integration behavior,
build compatibility, backward compatibility, stability, and targeted coverage for regressions.
- path: 'packages/angular-compiler/**'
instructions: >-
Review as the angular-compiler package scope. Prioritize Angular Compiler. integration behavior,
build compatibility, backward compatibility, stability, and targeted coverage for regressions.
- path: 'packages/vite-plugin-angular-tools/**'
instructions: >-
Treat changes here as part of the vite-plugin-angular scope and review them together with test fixtures
Expand Down
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/01-bug-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ body:
- platform
- astro-angular
- storybook-angular
- angular-compiler
- Docs
- Don't know / other
validations:
Expand Down
1 change: 0 additions & 1 deletion .github/ISSUE_TEMPLATE/02-feature-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ body:
- platform
- astro-angular
- storybook-angular
- angular-compiler
- Docs
- Don't know / other
validations:
Expand Down
8 changes: 0 additions & 8 deletions .github/pr-scope-map.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,5 @@
{
"areas": [
{
"scope": "angular-compiler",
"label": "scope:angular-compiler",
"kind": "package",
"color": "0e8a16",
"description": "Changes in @analogjs/angular-compiler",
"prefixes": ["packages/angular-compiler/"]
},
{
"scope": "astro-angular",
"label": "scope:astro-angular",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Angular Compiler Compatibility Tests
name: Compiler Compatibility Tests

# Verifies that @analogjs/angular-compiler runs against every Angular major
# version it claims to support (peerDependencies in
# packages/angular-compiler/package.json declare ">=19.0.0").
# Verifies that the compiler inside @analogjs/vite-plugin-angular runs
# against every Angular major version it claims to support
# (peerDependencies in packages/vite-plugin-angular/package.json).
#
# Why this exists separately from conformance.yml:
# - conformance.yml downloads Angular's reference test fixtures at a
Expand All @@ -11,9 +11,9 @@ name: Angular Compiler Compatibility Tests
# output match the reference fixtures?" — not "does our compiler run
# against this Angular version's API surface?".
# - This workflow swaps @angular/compiler (and @angular/compiler-cli)
# to the matrix version via pnpm.overrides, then runs the regular
# angular-compiler unit/integration suite. Failures here mean the
# compiler crashes against a peer dep version it claims to support.
# to the matrix version via pnpm.overrides, then runs the compiler
# unit/integration suite. Failures here mean the compiler crashes
# against a peer dep version it claims to support.
#
# Matrix policy:
# - Each numeric slot pins the FLOOR of a supported major (e.g. 19.0.0).
Expand All @@ -24,9 +24,9 @@ name: Angular Compiler Compatibility Tests
# - The `next` slot installs `@angular/compiler@next` (Angular's prerelease
# dist-tag) and is allowed to fail — it gives early warning when the
# next major drops a breaking change without blocking the workflow.
# - When packages/angular-compiler/package.json bumps the peerDependencies
# floor, drop the lowest matrix slot. When a new Angular major ships,
# add a new floor slot.
# - When packages/vite-plugin-angular/package.json bumps the
# peerDependencies floor, drop the lowest matrix slot. When a new
# Angular major ships, add a new floor slot.
#
# Regression-issue policy:
# - On `push` to beta, a failure auto-opens (or comments on an existing)
Expand All @@ -37,15 +37,15 @@ on:
workflow_dispatch:
pull_request:
paths:
- 'packages/angular-compiler/**'
- 'packages/vite-plugin-angular/src/lib/compiler/**'
- 'package.json'
- '.github/workflows/angular-compiler-compat.yml'
- '.github/workflows/compiler-compat.yml'
push:
branches: [beta]
paths:
- 'packages/angular-compiler/**'
- 'packages/vite-plugin-angular/src/lib/compiler/**'
- 'package.json'
- '.github/workflows/angular-compiler-compat.yml'
- '.github/workflows/compiler-compat.yml'

env:
NODE_OPTIONS: --max-old-space-size=16384
Expand Down Expand Up @@ -121,13 +121,13 @@ jobs:
fi
fi

- name: Run angular-compiler test suite
- name: Run compiler test suite
# Surfaces compiler-vs-Angular API mismatches via DEBUG output so
# silently-caught errors (like the LiteralMapPropertyAssignment
# constructor regression on 20.3.x) appear in CI logs.
env:
DEBUG: 'analog-compiler*'
run: pnpm exec vitest run packages/angular-compiler/src/lib/
DEBUG: 'analog-fast-compile*'
run: pnpm exec vitest run packages/vite-plugin-angular/src/lib/compiler/

- name: Open or update regression issue (push to beta only)
# PRs already surface failures via the check status — auto-opening
Expand All @@ -139,15 +139,15 @@ jobs:
run: |
set -e
MATRIX_VERSION='${{ matrix.angular-version }}'
TITLE="CI: angular-compiler compatibility regression against @angular/compiler@${MATRIX_VERSION}"
TITLE="CI: compiler compatibility regression against @angular/compiler@${MATRIX_VERSION}"
RUN_URL="${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
COMMIT_URL="${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}"

# Body mirrors .github/ISSUE_TEMPLATE/01-bug-report.yml section structure
# so a maintainer reading the issue gets the same shape they'd get
# from a manually-filed report.
BODY=$(cat <<EOF
> 🤖 Auto-opened by \`.github/workflows/angular-compiler-compat.yml\`. Once the regression is fixed, please close this issue with a reference to the fixing commit.
> 🤖 Auto-opened by \`.github/workflows/compiler-compat.yml\`. Once the regression is fixed, please close this issue with a reference to the fixing commit.

## Please provide the environment you discovered this bug in.

Expand All @@ -156,21 +156,21 @@ jobs:
- **Failing workflow run**: $RUN_URL
- **Matrix slot**: \`@angular/compiler@${MATRIX_VERSION}\`
- **Workspace pin**: see \`package.json\` for the version that the workspace currently builds against
- **Reproduction**: \`pnpm install\` with \`pnpm.overrides\` setting \`@angular/compiler\` and \`@angular/compiler-cli\` to \`${MATRIX_VERSION}\`, then \`DEBUG=analog-compiler* pnpm exec vitest run packages/angular-compiler/src/lib/\`
- **Reproduction**: \`pnpm install\` with \`pnpm.overrides\` setting \`@angular/compiler\` and \`@angular/compiler-cli\` to \`${MATRIX_VERSION}\`, then \`DEBUG=analog-fast-compile* pnpm exec vitest run packages/vite-plugin-angular/src/lib/compiler/\`

## Which area/package is the issue in?

\`angular-compiler\`
\`vite-plugin-angular\`

## Description

The \`packages/angular-compiler/src/lib/\` test suite failed when run against \`@angular/compiler@${MATRIX_VERSION}\` after passing against the workspace-pinned version. This indicates an API-surface regression — a class export, method signature, or behavior in this Angular version differs from what the workspace pin provides, and the compiler depends on the difference.
The \`packages/vite-plugin-angular/src/lib/compiler/\` test suite failed when run against \`@angular/compiler@${MATRIX_VERSION}\` after passing against the workspace-pinned version. This indicates an API-surface regression — a class export, method signature, or behavior in this Angular version differs from what the workspace pin provides, and the compiler depends on the difference.

The compatibility matrix exists precisely to catch this class of failure ahead of user reports — see \`packages/angular-compiler/COMPILER.md\` § Compatibility Testing for the design rationale.
The compatibility matrix exists precisely to catch this class of failure ahead of user reports — see \`packages/vite-plugin-angular/src/lib/compiler/COMPILER.md\` § Compatibility Testing for the design rationale.

## Please provide the exception or error you saw

See the [failing workflow run]($RUN_URL) for full output. The \`Run angular-compiler test suite\` step has \`DEBUG=analog-compiler*\` enabled, so silently-caught compiler errors should appear in the log alongside any thrown exceptions.
See the [failing workflow run]($RUN_URL) for full output. The \`Run compiler test suite\` step has \`DEBUG=analog-fast-compile*\` enabled, so silently-caught compiler errors should appear in the log alongside any thrown exceptions.

## Other information

Expand Down Expand Up @@ -200,6 +200,6 @@ jobs:
gh issue create \
--repo "${{ github.repository }}" \
--title "$TITLE" \
--label "bug,angular-compiler" \
--label "bug,vite-plugin-angular" \
--body "$BODY"
fi
18 changes: 13 additions & 5 deletions .github/workflows/conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@ name: Angular Compiler Conformance Tests

on:
workflow_dispatch:
pull_request: {}
pull_request:
paths:
- 'packages/vite-plugin-angular/src/lib/compiler/**'
- 'package.json'
- '.github/workflows/conformance.yml'
push:
branches: [beta]
paths:
- 'packages/vite-plugin-angular/src/lib/compiler/**'
- 'package.json'
- '.github/workflows/conformance.yml'

env:
NODE_OPTIONS: --max-old-space-size=16384
Expand Down Expand Up @@ -31,11 +41,9 @@ jobs:
cache-dependency-path: '**/pnpm-lock.yaml'
- name: Install
run: pnpm install --frozen-lockfile --prefer-offline
- name: Build angular-compiler
run: pnpm exec nx build angular-compiler
- name: Download Angular ${{ matrix.angular-major }} compliance fixtures
run: bash packages/angular-compiler/scripts/setup-conformance.sh ${{ matrix.angular-major }}
run: bash packages/vite-plugin-angular/scripts/setup-conformance.sh ${{ matrix.angular-major }}
- name: Run conformance tests
env:
ANGULAR_SOURCE_DIR: .angular-conformance
run: pnpm exec vitest run packages/angular-compiler/src/lib/conformance.spec.ts
run: pnpm exec vitest run packages/vite-plugin-angular/src/lib/compiler/conformance.spec.ts
1 change: 0 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,6 @@ This is the monorepo that contains all the code and infrastructure for AnalogJS.
| `packages/storybook-angular` | `@analogjs/storybook-angular` | `storybook-angular` |
| `packages/trpc` | `@analogjs/trpc` | `trpc` |
| `packages/astro-angular` | `@analogjs/astro-angular` | `astro-angular` |
| `packages/angular-compiler` | `@analogjs/angular-compiler` | `angular-compiler` |

## Contribution Policy

Expand Down
1 change: 0 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ The following is the list of currently supported scopes:
- **vite-plugin-angular**
- **vite-plugin-nitro**
- **vitest-angular**
- **angular-compiler**

### Breaking Changes

Expand Down
2 changes: 1 addition & 1 deletion apps/analog-app/vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ export default defineConfig(({ mode }) => {
},
vite: {
inlineStylesExtension: 'scss',
fastCompile: true,
experimental: {
useAngularCompilationAPI: false,
useAnalogCompiler: true,
},
},
liveReload: true,
Expand Down
Loading
Loading