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

@ymc9 ymc9 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

coderabbitai Bot 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 name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the primary change: excluding ZenStack-generated files from Prettier formatting.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check 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 dev Aug 3, 2026
8 checks passed
@ymc9
ymc9 deleted the fix/prettier-ignore-generated-files branch August 3, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant