Skip to content

Copier update: format with Biome, keeping Prettier for Vue/HTML - #23

Merged
ejfine merged 3 commits into
mainfrom
biome-formatter-hybrid
Oct 13, 2026
Merged

ejfine merged 3 commits into
mainfrom
biome-formatter-hybrid

Conversation

@ejfine

@ejfine ejfine commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Pull in upstream changes: copier-base-template v0.1.20, then LabAutomationAndScreening/copier-base-template#234.

Repo-specific:

  • Kept this template's own changes the update couldn't merge: no Python hooks in generated repos' pre-commit config, their Nuxt module README, the unit test step in the verification job, and template/pytest.ini left out of the managed-files list
  • uv.lock updated for the faker and pyrefly bumps

Tested in downstream repo

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Devcontainer setup now adapts the workspace mount automatically and offers optional installation of Copier and development tooling.
    • Formatting support now covers common code and configuration files through Biome, with Prettier retained for selected web files.
  • Improvements
    • Tool installation retries temporary network failures and verifies the installed Session Manager plugin.
    • PNPM lock-file generation can run without installing packages.
    • Pull request templates now provide clearer test-plan guidance.

Keeps this template's own changes that the update couldn't merge: generated repos' pre-commit config without the Python hooks, their Nuxt module README, and the unit test step at the end of the verification job.
@coderabbitai

coderabbitai Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 2 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: LabAutomationAndScreening/copier-vue-package-template/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: ed476c5d-a1e6-4b85-b2a5-4a926bec792e
📥 Commits

Reviewing files that changed from the base of the PR and between 3748b49 and ee1af71.

📒 Files selected for processing (5)
  • .config/.copier-answers.yml
  • .devcontainer/devcontainer.json
  • .pre-commit-config.yaml
  • template/.devcontainer/devcontainer.json.jinja
  • template/.pre-commit-config.yaml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: LabAutomationAndScreening/copier-vue-package-template/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 347fc886-8c2a-4d9f-b7d4-8a76d5be5c56
📥 Commits

Reviewing files that changed from the base of the PR and between cbb2485 and 3748b49.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (65)
  • .claude/CLAUDE.md
  • .claude/hooks/bash-chain-guard.js
  • .claude/hooks/caveman-config.js
  • .claude/hooks/caveman-mode-tracker.js
  • .claude/settings/hooks.jsonc
  • .claude/settings/models.jsonc
  • .claude/settings/permissions/additional-dirs.jsonc
  • .claude/settings/permissions/bash.jsonc
  • .claude/settings/permissions/edit.jsonc
  • .claude/settings/permissions/read.jsonc
  • .claude/skills/address-pr-comments/SKILL.md
  • .coderabbit.yaml
  • .config/.copier-answers.yml
  • .config/.copier-managed-files.json
  • .config/biome.jsonc
  • .config/pyrefly.toml
  • .devcontainer/devcontainer.json
  • .devcontainer/docker-compose.yml
  • .devcontainer/initialize-command.sh
  • .devcontainer/install-ci-tooling.py
  • .devcontainer/manual-setup-deps.py
  • .github/actions/install_deps/action.yml
  • .github/pull_request_template.md
  • .github/reusable_workflows/build-docker-image.yaml
  • .github/workflows/ci.yaml
  • .github/workflows/hash_git_files.py
  • .github/workflows/pre-commit.yaml
  • .gitignore
  • .pre-commit-config.yaml
  • .prekignore
  • AGENTS.md
  • README.md
  • biome.jsonc
  • copier_template_resources/eslint/istanbul-ignore-if-must-throw.mjs
  • extensions/context.py
  • pyproject.toml
  • template/.claude/CLAUDE.md
  • template/.claude/hooks/bash-chain-guard.js
  • template/.claude/hooks/caveman-config.js
  • template/.claude/hooks/caveman-mode-tracker.js
  • template/.claude/settings/hooks.jsonc
  • template/.claude/settings/models.jsonc
  • template/.claude/settings/permissions/additional-dirs.jsonc
  • template/.claude/settings/permissions/bash.jsonc
  • template/.claude/settings/permissions/edit.jsonc
  • template/.claude/settings/permissions/read.jsonc
  • template/.claude/skills/address-pr-comments/SKILL.md
  • template/.coderabbit.yaml
  • template/.config/biome.jsonc
  • template/.devcontainer/devcontainer.json.jinja
  • template/.devcontainer/docker-compose.yml.jinja
  • template/.devcontainer/initialize-command.sh
  • template/.devcontainer/install-ci-tooling.py.jinja
  • template/.devcontainer/manual-setup-deps.py
  • template/.github/actions/install_deps/action.yml
  • template/.github/pull_request_template.md
  • template/.github/workflows/hash_git_files.py
  • template/.github/workflows/pre-commit.yaml
  • template/.gitignore
  • template/.pre-commit-config.yaml
  • template/AGENTS.md
  • template/biome.jsonc
  • template/index.d.mts
  • template/index.mjs
  • template/src/runtime/server/tsconfig.json
💤 Files with no reviewable changes (6)
  • .claude/CLAUDE.md
  • template/biome.jsonc
  • biome.jsonc
  • .claude/hooks/bash-chain-guard.js
  • template/.claude/CLAUDE.md
  • template/.claude/hooks/bash-chain-guard.js

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The pull request updates assistant settings, developer-tool installation, formatting configuration, CI workflows, and devcontainer behavior in both the repository and its Copier template. It adds configurable workspace mount handling and changes how several tools are installed and invoked.

Changes: Assistant Settings and Guidance

Layer / File(s) Summary
Assistant hooks, permissions, and prompt guidance
.claude/*, template/.claude/*, AGENTS.md, template/AGENTS.md
The Bash command-chain guard and its hook entries are removed. Bash permissions and address-PR-comments instructions change. Repository guidance adds public-repository handling rules. Other hook changes are formatting-only.

Developer Toolchain and CI

Layer / File(s) Summary
Tool installation and version checks
.devcontainer/install-ci-tooling.py, template/.devcontainer/install-ci-tooling.py.jinja
The installer adds retries and timeout handling, conditional tool installation, uv-based Task installation, Biome and pnpm installation, and SSM plugin version checks.
Biome and formatter configuration
.config/biome.jsonc, template/.config/biome.jsonc, .pre-commit-config.yaml, template/.pre-commit-config.yaml, .devcontainer/devcontainer.json, template/.devcontainer/devcontainer.json.jinja, .coderabbit.yaml, template/.coderabbit.yaml, related settings
Biome configuration moves under .config and is wired into editor and local pre-commit settings. Prettier is limited to Vue, HTML, SCSS, and Less files.
CI, action, and template integration
.github/*, template/.github/*, .config/*, extensions/context.py, pyproject.toml, README.md, related template files
Dependency actions pass new installer options. CI commands and template metadata change, along with dependency versions and repository templates. The Copier verification job also changes its cleanup and artifact naming.

Devcontainer Workspace Mount

Layer / File(s) Summary
Workspace mount detection and configuration
.devcontainer/initialize-command.sh, .devcontainer/docker-compose.yml, template/.devcontainer/initialize-command.sh, template/.devcontainer/docker-compose.yml.jinja, .gitignore, template/.gitignore
The initialization script sets WORKSPACE_MOUNT_TARGET when /workspaces is a volume. Compose uses that value with a default target. Ignore rules cover the generated environment and lock files.
Devcontainer hash detection
.github/workflows/hash_git_files.py, template/.github/workflows/hash_git_files.py
The hash helper recognizes both pre-commit-managed and Git-hook-managed comment prefixes.

Priority: ⬇️ Low

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 3748b

No confirmed issue remains that should block merging after normal checks.

Pre-merge checks · Passed 3 · Failed 2

Failed Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 30 functions across 15 files. (44 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check Warning The description explains the upstream update, retained repository-specific changes, lock-file updates, and downstream testing. However, it does not follow the required template structure and omits a c… Use the required section headings. Add the issue or message-thread link, explain why the update is necessary, describe how it addresses the issue, list side effects, provide a specific test plan with coverage and untested areas, and complet…
Passed Passed checks (3 passed)
Check name Status Explanation
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.
Title check Passed The title clearly identifies the main change: adopting Biome formatting while retaining Prettier for Vue and HTML files. It is concise and specific.
Full details: Docstring Coverage

Explanation

Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 30 functions across 15 files. (44 skipped: 44 unsupported.)

Full details: Description check

Explanation

The description explains the upstream update, retained repository-specific changes, lock-file updates, and downstream testing. However, it does not follow the required template structure and omits a clear issue link, rationale, side effects, detailed test plan, and Other section.

Resolution

Use the required section headings. Add the issue or message-thread link, explain why the update is necessary, describe how it addresses the issue, list side effects, provide a specific test plan with coverage and untested areas, and complete the Other section if applicable.

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@ejfine ejfine changed the title Copier update: format with Biome, keeping Prettier for Vue/HTML/SCSS/Less Copier update: format with Biome, keeping Prettier for Vue/HTML Oct 13, 2026
@ejfine
ejfine marked this pull request as ready for review October 13, 2026 14:44
@ejfine
ejfine requested a review from zendern October 13, 2026 14:44
@ejfine
ejfine merged commit b07395b into main Oct 13, 2026
16 checks passed
@ejfine
ejfine deleted the biome-formatter-hybrid branch October 13, 2026 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants