chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

chore: exclude ZenStack-generated files from prettier formatting - #2786

Merged
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files
Aug 3, 2026
Merged

chore: exclude ZenStack-generated files from prettier formatting#2786
ymc9 merged 2 commits into
devfrom
fix/prettier-ignore-generated-files

Conversation

@ymc9

@ymc9ymc9 commented Aug 3, 2026

Copy link
Copy Markdown
Member

Summary

The v3.9.0 release run (failed job) died in the Publish packages step with ERR_PNPM_GIT_UNCLEAN.

Root cause: #2779 ran prettier over tracked generated files (schema.ts, schema-lite.ts, models.ts, input.ts under samples/, tests/, and package test dirs). In the release workflow, sample/test builds run zen generate, which rewrites those files with the generator's own formatting (double quotes, no trailing commas), leaving modified tracked files in the working tree — so pnpm -r publish fails its git-clean check.

Changes

  • Extend .prettierignore to cover all ZenStack-generated file names. The previous list missed schema-lite.ts entirely and didn't cover tests/runtimes/**. Patterns stay scoped to samples/, tests/, and **/test/** because a few hand-written source files share these names (packages/orm/src/schema.ts, packages/schema/src/schema.ts, packages/testtools/src/schema.ts).
  • Restore the 10 generated files that a full pnpm build dirties back to pristine generator output, so builds no longer touch the tree.

This also prevents recurrence via the pre-commit hook: lint-staged runs prettier --write on staged *.ts, which would otherwise re-format regenerated files on every commit.

Verification

  • Enumerated all 117 tracked files carrying the "automatically generated by ZenStack CLI" banner; prettier --list-different now reports none of them (the restored files use generator formatting, so they would be flagged if the ignore rules didn't match).
  • Full pnpm build (minus bun-e2e, no bun installed locally) leaves the working tree clean.

After this merges to main, the failed release can be re-triggered via workflow dispatch.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Style

    • Standardized formatting across generated schema and type-definition files.
    • Normalized quote styles, indentation, trailing commas, and expression layout without changing behavior.
    • Improved consistency in command-line, validation, and test code formatting.
  • Documentation

    • Updated issue-report and conduct templates to use consistent Markdown list formatting.
  • Chores

    • Expanded formatting exclusions to cover generated schema files throughout the test suite.
    • Updated generated examples and test fixtures for consistent formatting.

PR #2779 ran prettier over tracked generated files (schema.ts,
schema-lite.ts, models.ts, input.ts). During the release workflow,
sample/test builds run `zen generate` which rewrites these files with
the generator's own formatting, leaving the working tree dirty and
causing `pnpm publish` to fail with ERR_PNPM_GIT_UNCLEAN (v3.9.0
release run).
- extend .prettierignore to cover all generated file names, including
schema-lite.ts and tests/runtimes/**, which were previously missed
- restore the affected generated files to pristine generator output
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitaiBot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 39ff3707-a322-43ac-9039-c85f32ca76d0

📥 Commits

Reviewing files that changed from the base of the PR and between b2bba4e and 2a33d38.

📒 Files selected for processing (8)
  • .github/ISSUE_TEMPLATE/bug_report.md
  • CODE_OF_CONDUCT.md
  • packages/cli/src/actions/pull/provider/postgresql.ts
  • packages/cli/src/index.ts
  • packages/language/src/validators/attribute-application-validator.ts
  • packages/language/test/attribute-application.test.ts
  • tests/regression/test/issue-2385.test.ts
  • tests/regression/test/issue-393.test.ts

📝 Walkthrough

Walkthrough

The PR expands .prettierignore coverage for generated files and reformats generated schema, declaration, source, test, and documentation files. Schema values, exported types, content, and behavior remain unchanged.

Changes

Repository formatting alignment

Layer / File(s)Summary
Generated schema formatting
.prettierignore, packages/clients/*/test/schemas/*, samples/next.js/zenstack/schema-lite.ts, samples/nuxt/zenstack/schema-lite.ts
Prettier now ignores generated files under tests/** and generated schema-lite.ts files. Client and sample schema outputs use normalized formatting.
SvelteKit declarations
samples/sveltekit/src/zenstack/input.ts, samples/sveltekit/src/zenstack/schema*.ts
Generated type aliases and schema declarations were compacted without changing exported types or schema values.
Runtime schema fixtures
tests/runtimes/bun/schemas/schema.ts, tests/runtimes/edge-runtime/schemas/schema.ts
Runtime schema fixtures were reformatted without changing providers, models, relations, authorization rules, or declarations.
Source, test, and documentation formatting
packages/cli/src/..., packages/language/..., tests/regression/test/..., .github/ISSUE_TEMPLATE/bug_report.md, CODE_OF_CONDUCT.md
CLI calls, validation code, test calls, and Markdown lists were reformatted without changing behavior or content.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage✅ PassedNo functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check✅ PassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes check✅ PassedCheck skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/prettier-ignore-generated-files

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@ymc9
ymc9 merged commit 8b4d280 into devAug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for freeto 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

@ymc9