chore: complete merging angular runtime in framework adapters#22
Conversation
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe PR integrates Angular Runtime into package and release metadata, documents it in the README, and adds Renovate rules for its fixtures and demo. Angular Runtime workflows are narrowed to relevant path changes, SSR execution uses the package-local test path, and manual publishing tolerates failures. Repository tooling and ownership metadata are adjusted. A composite action polls commit deployment statuses and exposes deploy URL and host outputs. Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related issues
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
packages/angular-runtime/package.json (1)
61-61: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winPin
publintinstead of usingnpx -y.Because
publintis not declared in the shown dependencies, this command can install a moving registry version on each invocation. Add a pinned devDependency and call the local binary for reproducible, reviewable validation. (docs.npmjs.com)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/angular-runtime/package.json` at line 61, Update the package configuration around the publint script to add a pinned publint version under devDependencies, then change the script to invoke the locally installed binary without npx or automatic installation. Keep strict validation enabled.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/actions/wait-for-deploy-preview/action.yml:
- Line 43: Update the status retrieval in the action’s STATUS_LIST assignment to
request all pagination pages from the GitHub API before filtering by
STATUS_CONTEXT. Preserve the existing context filtering and downstream deploy-ID
selection so older processing entries are included and the correct preview is
validated.
In @.github/workflows/release-please.yaml:
- Around line 61-62: Update the manual publish branch for
packages/angular-runtime to stop suppressing all npm publish failures by
removing || true, or handle only the specific “version already exists” condition
while propagating authentication, provenance, registry, and network errors.
In `@eslint.config.js`:
- Around line 19-28: Update the packageIgnores logic to treat only an ENOENT
failure from fs.access as a missing .gitignore; propagate permission and other
I/O errors instead of converting them to false. Preserve the existing
includeIgnoreFile behavior when the file exists and the empty-ignore fallback
only for genuinely absent files.
---
Nitpick comments:
In `@packages/angular-runtime/package.json`:
- Line 61: Update the package configuration around the publint script to add a
pinned publint version under devDependencies, then change the script to invoke
the locally installed binary without npx or automatic installation. Keep strict
validation enabled.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 484b299b-9d45-4a4d-8299-04cea15553d0
⛔ Files ignored due to path filters (2)
package-lock.jsonis excluded by!**/package-lock.jsonpackages/angular-runtime/demo/deno.lockis excluded by!**/*.lock
📒 Files selected for processing (31)
.github/actions/wait-for-deploy-preview/action.yml.github/workflows/angular-runtime-bump-notifier.yaml.github/workflows/angular-runtime-ssr.yaml.github/workflows/release-please.yaml.gitignore.release-please-manifest.jsonREADME.mdeslint.config.jspackages/angular-runtime/.editorconfigpackages/angular-runtime/.eslintrc.cjspackages/angular-runtime/.github/.kodiak.tomlpackages/angular-runtime/.github/CODEOWNERSpackages/angular-runtime/.github/ISSUE_TEMPLATE/bug_report.mdpackages/angular-runtime/.github/ISSUE_TEMPLATE/feature_request.mdpackages/angular-runtime/.github/workflows/labeler.ymlpackages/angular-runtime/.github/workflows/release-please.ymlpackages/angular-runtime/.github/workflows/stalebot.ymlpackages/angular-runtime/.github/workflows/test.ymlpackages/angular-runtime/.gitignorepackages/angular-runtime/.husky/commit-msgpackages/angular-runtime/.husky/pre-pushpackages/angular-runtime/.prettierignorepackages/angular-runtime/.prettierrc.cjspackages/angular-runtime/CODE_OF_CONDUCT.mdpackages/angular-runtime/CONTRIBUTING.mdpackages/angular-runtime/LICENSE.mdpackages/angular-runtime/commitlint.config.jspackages/angular-runtime/package.jsonpackages/angular-runtime/renovate.json5release-please-config.jsonrenovate.json5
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
netlify/blueprints(manual)
💤 Files with no reviewable changes (20)
- packages/angular-runtime/CODE_OF_CONDUCT.md
- packages/angular-runtime/.github/workflows/labeler.yml
- packages/angular-runtime/.github/workflows/release-please.yml
- packages/angular-runtime/.husky/commit-msg
- packages/angular-runtime/.editorconfig
- packages/angular-runtime/commitlint.config.js
- packages/angular-runtime/.github/workflows/test.yml
- packages/angular-runtime/.github/ISSUE_TEMPLATE/bug_report.md
- packages/angular-runtime/.github/CODEOWNERS
- packages/angular-runtime/.eslintrc.cjs
- packages/angular-runtime/.prettierignore
- packages/angular-runtime/.husky/pre-push
- packages/angular-runtime/renovate.json5
- packages/angular-runtime/.github/ISSUE_TEMPLATE/feature_request.md
- packages/angular-runtime/.prettierrc.cjs
- packages/angular-runtime/LICENSE.md
- packages/angular-runtime/.github/workflows/stalebot.yml
- packages/angular-runtime/CONTRIBUTING.md
- packages/angular-runtime/.gitignore
- packages/angular-runtime/.github/.kodiak.toml
There was a problem hiding this comment.
Caution
Inline review comments failed to post. This is likely due to GitHub's internal server error or limits when posting large numbers of comments. If you are seeing this consistently it is likely a permissions issue. Please check "Moderation" -> "Code review limits" under your organization settings.
Actionable comments posted: 3
🧹 Nitpick comments (1)
packages/angular-runtime/package.json (1)
61-61: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winPin
publintinstead of usingnpx -y.Because
publintis not declared in the shown dependencies, this command can install a moving registry version on each invocation. Add a pinned devDependency and call the local binary for reproducible, reviewable validation. (docs.npmjs.com)🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/angular-runtime/package.json` at line 61, Update the package configuration around the publint script to add a pinned publint version under devDependencies, then change the script to invoke the locally installed binary without npx or automatic installation. Keep strict validation enabled.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/actions/wait-for-deploy-preview/action.yml:
- Line 43: Update the status retrieval in the action’s STATUS_LIST assignment to
request all pagination pages from the GitHub API before filtering by
STATUS_CONTEXT. Preserve the existing context filtering and downstream deploy-ID
selection so older processing entries are included and the correct preview is
validated.
In @.github/workflows/release-please.yaml:
- Around line 61-62: Update the manual publish branch for
packages/angular-runtime to stop suppressing all npm publish failures by
removing || true, or handle only the specific “version already exists” condition
while propagating authentication, provenance, registry, and network errors.
In `@eslint.config.js`:
- Around line 19-28: Update the packageIgnores logic to treat only an ENOENT
failure from fs.access as a missing .gitignore; propagate permission and other
I/O errors instead of converting them to false. Preserve the existing
includeIgnoreFile behavior when the file exists and the empty-ignore fallback
only for genuinely absent files.
---
Nitpick comments:
In `@packages/angular-runtime/package.json`:
- Line 61: Update the package configuration around the publint script to add a
pinned publint version under devDependencies, then change the script to invoke
the locally installed binary without npx or automatic installation. Keep strict
validation enabled.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 484b299b-9d45-4a4d-8299-04cea15553d0
⛔ Files ignored due to path filters (2)
package-lock.jsonis excluded by!**/package-lock.jsonpackages/angular-runtime/demo/deno.lockis excluded by!**/*.lock
📒 Files selected for processing (31)
.github/actions/wait-for-deploy-preview/action.yml.github/workflows/angular-runtime-bump-notifier.yaml.github/workflows/angular-runtime-ssr.yaml.github/workflows/release-please.yaml.gitignore.release-please-manifest.jsonREADME.mdeslint.config.jspackages/angular-runtime/.editorconfigpackages/angular-runtime/.eslintrc.cjspackages/angular-runtime/.github/.kodiak.tomlpackages/angular-runtime/.github/CODEOWNERSpackages/angular-runtime/.github/ISSUE_TEMPLATE/bug_report.mdpackages/angular-runtime/.github/ISSUE_TEMPLATE/feature_request.mdpackages/angular-runtime/.github/workflows/labeler.ymlpackages/angular-runtime/.github/workflows/release-please.ymlpackages/angular-runtime/.github/workflows/stalebot.ymlpackages/angular-runtime/.github/workflows/test.ymlpackages/angular-runtime/.gitignorepackages/angular-runtime/.husky/commit-msgpackages/angular-runtime/.husky/pre-pushpackages/angular-runtime/.prettierignorepackages/angular-runtime/.prettierrc.cjspackages/angular-runtime/CODE_OF_CONDUCT.mdpackages/angular-runtime/CONTRIBUTING.mdpackages/angular-runtime/LICENSE.mdpackages/angular-runtime/commitlint.config.jspackages/angular-runtime/package.jsonpackages/angular-runtime/renovate.json5release-please-config.jsonrenovate.json5
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
netlify/blueprints(manual)
💤 Files with no reviewable changes (20)
- packages/angular-runtime/CODE_OF_CONDUCT.md
- packages/angular-runtime/.github/workflows/labeler.yml
- packages/angular-runtime/.github/workflows/release-please.yml
- packages/angular-runtime/.husky/commit-msg
- packages/angular-runtime/.editorconfig
- packages/angular-runtime/commitlint.config.js
- packages/angular-runtime/.github/workflows/test.yml
- packages/angular-runtime/.github/ISSUE_TEMPLATE/bug_report.md
- packages/angular-runtime/.github/CODEOWNERS
- packages/angular-runtime/.eslintrc.cjs
- packages/angular-runtime/.prettierignore
- packages/angular-runtime/.husky/pre-push
- packages/angular-runtime/renovate.json5
- packages/angular-runtime/.github/ISSUE_TEMPLATE/feature_request.md
- packages/angular-runtime/.prettierrc.cjs
- packages/angular-runtime/LICENSE.md
- packages/angular-runtime/.github/workflows/stalebot.yml
- packages/angular-runtime/CONTRIBUTING.md
- packages/angular-runtime/.gitignore
- packages/angular-runtime/.github/.kodiak.toml
🛑 Comments failed to post (3)
.github/actions/wait-for-deploy-preview/action.yml (1)
43-43: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/usr/bin/env bash set -euo pipefail gh api --help | rg -- '--paginate|--slurp' rg -n -C2 'repos/\$\{REPO\}/statuses/\$\{SHA\}' .github/actions/wait-for-deploy-preview/action.ymlRepository: netlify/framework-adapters
Length of output: 1011
🏁 Script executed:
#!/usr/bin/env bash set -euo pipefail # Show the action around the relevant logic sed -n '1,220p' .github/actions/wait-for-deploy-preview/action.yml printf '\n--- workflow references ---\n' rg -n -C3 'deploy-url|wait-for-deploy-preview|STATUS_CONTEXT|processing|ready' .github/workflows .github/actions -g '*.yml' -g '*.yaml'Repository: netlify/framework-adapters
Length of output: 10863
🏁 Script executed:
#!/usr/bin/env bash set -euo pipefail # Read the exact action definition and nearby logic cat -n .github/actions/wait-for-deploy-preview/action.yml | sed -n '1,220p' printf '\n--- related references ---\n' rg -n -C3 'deploy-url|wait-for-deploy-preview|STATUS_CONTEXT|processing|ready' .github/workflows .github/actions -g '*.yml' -g '*.yaml'Repository: netlify/framework-adapters
Length of output: 11541
🏁 Script executed:
#!/usr/bin/env bash set -euo pipefail printf 'action.yml\n' cat -n .github/actions/wait-for-deploy-preview/action.yml | sed -n '1,220p' printf '\nworkflow references\n' rg -n -C4 'wait-for-deploy-preview|deploy-url|STATUS_CONTEXT|processing|ready|statuses/' .github -g '*.yml' -g '*.yaml'Repository: netlify/framework-adapters
Length of output: 12445
🏁 Script executed:
#!/usr/bin/env bash set -euo pipefail # Show the full action implementation so the status lookup can be judged in context. cat -n .github/actions/wait-for-deploy-preview/action.yml | sed -n '1,260p' printf '\n--- all status-related workflow/action references ---\n' rg -n -C2 'statuses/|status context|commit status|processing|ready|deploy-preview|deploy-url' .github -g '*.yml' -g '*.yaml'Repository: netlify/framework-adapters
Length of output: 11257
🏁 Script executed (no clone):
#!/usr/bin/env bash set -euo pipefail python3 - <<'PY' import urllib.request, re url = "https://docs.github.com/en/rest/commits/statuses?apiVersion=2022-11-28" with urllib.request.urlopen(url, timeout=20) as r: text = r.read().decode("utf-8", "replace") for needle in [ "List commit statuses for a reference", "per_page", "default 30", "paginate", ]: print(f"--- {needle} ---") m = re.search(needle, text, re.I) if m: start = max(0, m.start()-300) end = min(len(text), m.end()+700) print(text[start:end]) else: print("not found") PYLength of output: 2719
Fetch all status pages before deriving the deploy ID.
gh api "repos/${REPO}/statuses/${SHA}"only reads the first page, so an olderprocessingentry can be missed once the commit accumulates enough statuses. In that case the action falls back to the shared PR alias and can validate the wrong preview.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/actions/wait-for-deploy-preview/action.yml at line 43, Update the status retrieval in the action’s STATUS_LIST assignment to request all pagination pages from the GitHub API before filtering by STATUS_CONTEXT. Preserve the existing context filtering and downstream deploy-ID selection so older processing entries are included and the correct preview is validated..github/workflows/release-please.yaml (1)
61-62: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
Do not suppress all manual publish failures.
|| trueturns authentication, provenance, registry, and network failures into a successful workflow, so trusted publishing can appear successful while the package was never published. Remove it or explicitly ignore only the “version already exists” case.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/release-please.yaml around lines 61 - 62, Update the manual publish branch for packages/angular-runtime to stop suppressing all npm publish failures by removing || true, or handle only the specific “version already exists” condition while propagating authentication, provenance, registry, and network errors.eslint.config.js (1)
19-28: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash set -euo pipefail echo "== eslint.config.js (relevant sections) ==" nl -ba eslint.config.js | sed -n '1,260p' echo echo "== Search for angular runtime/commonjs overrides ==" rg -n "Angular Runtime|commonjs|CommonJS|override|angular/runtime" eslint.config.js . || true echo echo "== Find package .gitignore files referenced by the config ==" python3 - <<'PY' from pathlib import Path p = Path('eslint.config.js') text = p.read_text() print(text.count(".gitignore")) PYRepository: netlify/framework-adapters
Length of output: 247
🏁 Script executed:
#!/bin/bash set -euo pipefail echo "== eslint.config.js (lines with numbers) ==" awk '{ printf "%4d %s\n", NR, $0 }' eslint.config.js | sed -n '1,260p' echo echo "== Search for Angular/CommonJS-related config ==" rg -n "Angular Runtime|commonjs|CommonJS|override|angular/runtime" eslint.config.js . || true echo echo "== .gitignore references ==" rg -n "\.gitignore|includeIgnoreFile|fs\.access" eslint.config.js || trueRepository: netlify/framework-adapters
Length of output: 15249
Don't swallow non-ENOENT
.gitignoreerrors.
Treat only missing files as absent here; permission or I/O failures should surface instead of silently dropping package ignore rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@eslint.config.js` around lines 19 - 28, Update the packageIgnores logic to treat only an ENOENT failure from fs.access as a missing .gitignore; propagate permission and other I/O errors instead of converting them to false. Preserve the existing includeIgnoreFile behavior when the file exists and the empty-ignore fallback only for genuinely absent files.
✅ Deploy Preview for angular-runtime-demo ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@release-please-config.json`:
- Line 4: Remove the release-as version overrides for packages/nuxt-module and
packages/vite-plugin from the release configuration after this release, allowing
future release runs to calculate and publish versions normally instead of
forcing 0.3.9 and 2.12.9.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 5e6dcbf9-35e0-43c1-8e0e-43028c414c9d
📒 Files selected for processing (1)
release-please-config.json
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
netlify/blueprints(manual)
| "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", | ||
| "bootstrap-sha": "1e628be35d2ae079b63ec8e98ca0c6831237b677", | ||
| "last-release-sha": "d38a292a55fea10a0fad0b700e15f093dbfff423", | ||
| "last-release-sha": "ae7efb878a0bc7ef506688e216071f7823d865cb", |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== file =="
cat -n release-please-config.json
echo
echo "== mentions of last-release-sha / release-as =="
rg -n '"last-release-sha"|"release-as"|release-please' -S .
echo
echo "== release-please related docs/config files =="
fd -a -t f 'release-please|releaseplease|release\.please|\.release-please' .Repository: netlify/framework-adapters
Length of output: 1629
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== release-please config =="
cat -n release-please-config.json
echo
echo "== release-please mentions in repo =="
rg -n '"last-release-sha"|"release-as"|release-please|release please' -S . --glob '!**/node_modules/**' --glob '!**/dist/**' --glob '!**/build/**'
echo
echo "== top-level files =="
find . -maxdepth 2 \( -name 'release-please-config.json' -o -name '.release-please-manifest.json' -o -name 'README*' -o -name 'docs' \) -printRepository: netlify/framework-adapters
Length of output: 1638
🌐 Web query:
release-please "release-as" config file persists subsequent runs "last-release-sha" never ignored docs manifest releaser
💡 Result:
In release-please, both release-as and last-release-sha are configuration options that, when set in your release-please-config.json file, will persist across subsequent runs [1][2]. Because the release-please tool reads these values from your configuration file during every execution, it will continue to apply them until you manually remove or update them [1][2]. Regarding release-as: If you use release-as to manually set the next version (e.g., "1.2.3"), release-please will use that version even after the release pull request has been merged [1][2]. If you do not remove or update this field in the config file after the release, subsequent runs will continue to attempt to force that same version, which is typically not the desired behavior [1][3]. Regarding last-release-sha: This setting is used to manually specify the commit SHA that marks the end of the previous release, which tells release-please where to begin gathering commits for the next release [2]. Like release-as, it is never ignored by the tool while it is present in the configuration [2]. It is explicitly designed for recovery scenarios—such as when a bad release pull request was merged and cannot be deleted—and should be removed or changed as soon as a successful release pull request is merged [4][2]. Summary of best practice: Always treat these fields as temporary overrides. Once the desired release action has been successfully performed and merged, remove these fields from your release-please-config.json to allow the tool to return to its default behavior of automatically determining the next version and the last release point [1][2].
Citations:
- 1: https://github.com/googleapis/release-please/blob/main/docs/manifest-releaser.md
- 2: https://github.com/googleapis/release-please/blob/master/docs/manifest-releaser.md
- 3: https://github.com/googleapis/release-please/blob/HEAD/docs/manifest-releaser.md
- 4: feat(manifest): support hard-coded last-release-sha googleapis/release-please#989
🏁 Script executed (no clone):
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import urllib.request
urls = [
"https://raw.githubusercontent.com/googleapis/release-please/main/docs/manifest-releaser.md",
"https://raw.githubusercontent.com/googleapis/release-please/main/docs/README.md",
]
for url in urls:
try:
with urllib.request.urlopen(url, timeout=20) as r:
text = r.read().decode("utf-8", "replace")
print(f"== {url} ==")
for needle in ["last-release-sha", "release-as", "bootstrap", "never ignored"]:
idx = text.lower().find(needle.lower())
if idx >= 0:
start = max(0, idx - 250)
end = min(len(text), idx + 600)
print(text[start:end])
print("\n---\n")
except Exception as e:
print(f"ERROR {url}: {e}")
PY
Length of output: 578
Remove the release-as pins after this release.
packages/nuxt-module and packages/vite-plugin are locked to 0.3.9 and 2.12.9 until these overrides are removed, so future release runs will keep forcing those same versions.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@release-please-config.json` at line 4, Remove the release-as version
overrides for packages/nuxt-module and packages/vite-plugin from the release
configuration after this release, allowing future release runs to calculate and
publish versions normally instead of forcing 0.3.9 and 2.12.9.
follow-up of: #19
pending items