Skip to content

chore: config / tooling upgrades and cleanup#476

Merged
DylanPiercey merged 1 commit intomainfrom
config-file-upgrades
Apr 14, 2026
Merged

chore: config / tooling upgrades and cleanup#476
DylanPiercey merged 1 commit intomainfrom
config-file-upgrades

Conversation

@DylanPiercey
Copy link
Copy Markdown
Contributor

No description provided.

@DylanPiercey DylanPiercey self-assigned this Apr 14, 2026
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 14, 2026

⚠️ No Changeset found

Latest commit: 2277202

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 14, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 13522c85-c07b-48c0-ac26-c2036231607e

📥 Commits

Reviewing files that changed from the base of the PR and between f21fa4a and 9be96cb.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json and included by **
📒 Files selected for processing (24)
  • .changeset/config.json
  • .github/ISSUE_TEMPLATE/Bug_report.md
  • .github/ISSUE_TEMPLATE/Feature_request.md
  • .github/ISSUE_TEMPLATE/bug-report.yml
  • .github/ISSUE_TEMPLATE/feature-request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/dependabot.yml
  • .github/workflows/ci.yml
  • .gitignore
  • .prettierignore
  • .prettierrc.json
  • cspell.json
  • eslint.config.mjs
  • package.json
  • packages/language-server/build.mts
  • packages/language-server/package.json
  • packages/language-tools/build.mts
  • packages/language-tools/package.json
  • packages/type-check/build.mts
  • packages/type-check/package.json
  • packages/vscode/build.mts
  • packages/vscode/modules/marko-ts-plugin/package.json
  • packages/vscode/package.json
  • packages/vscode/release.mts

Walkthrough

Updated repository configuration and developer tooling: updated Changesets schema, removed legacy Markdown issue templates and added GitHub Issue Forms, simplified the pull request template, and added Dependabot. CI workflow was refactored (concurrency, renamed job, new @ci:* scripts, Node setup change). Root and package-level package.json files were reorganized with script changes and dependency/devDependency version bumps. ESLint, Prettier, cspell, .gitignore/.prettierignore were modified. Multiple package build scripts and small code files received formatting/punctuation-only edits.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided by the author. Add a description explaining the purpose and scope of the configuration and tooling upgrades, such as what versions were updated and why these changes were made.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The PR title 'chore: config / tooling upgrades and cleanup' accurately describes the main changes, which involve updating configuration files, dependencies, and tooling setup across the repository.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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 config-file-upgrades

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

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/ISSUE_TEMPLATE/bug-report.yml:
- Around line 20-27: The form field with id "reproduction" currently sets an
unsupported render value ("render: marko") which GitHub ignores; update the
textarea definition (type: textarea, id: reproduction) to either remove the
render attribute entirely so it remains plain text, or replace "marko" with a
supported Linguist language identifier (e.g., "javascript" or "bash") depending
on whether you expect code snippets, ensuring syntax highlighting will work.

In `@package.json`:
- Around line 16-18: The scripts in package.json use non-fail-fast chaining:
update the "format" script to use && instead of ; (change "format": "eslint
--fix .; prettier . --write --log-level=warn" to use &&) and update the
"prepare" script to use && instead of a single & (change "prepare": "husky & npm
run --ws --if-present prepare" to use &&) so that "eslint --fix" and "husky"
must succeed before the next command runs; keep the "lint" script unchanged.

In `@packages/vscode/package.json`:
- Around line 10-15: Update the incorrect package links in package.json: change
the "homepage" value and the "repository.url" value that currently point to
"clients/vscode" so they point to the correct "packages/vscode" location; edit
the "homepage" field and the "repository" object (the "url" string) to use the
repository path with "packages/vscode" instead of "clients/vscode".
- Line 21: The prepare npm script currently uses POSIX-only commands ("mkdir -p"
and "cp -r") which fail on Windows; replace the shell commands in the "prepare"
script with a cross-platform Node-based solution by creating a small Node script
(e.g., scripts/prepare.js) that uses fs.mkdirSync(..., { recursive: true }) and
fs.cpSync or a recursive copy routine to copy ./modules/* into ./node_modules/,
and update the "prepare" script to run that Node script (invoke node
scripts/prepare.js) so the prepare step works on all platforms.
🪄 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: 5901e2a0-2a0c-4950-83f9-358a6b547296

📥 Commits

Reviewing files that changed from the base of the PR and between 432f824 and 3973fe6.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json and included by **
📒 Files selected for processing (24)
  • .changeset/config.json
  • .github/ISSUE_TEMPLATE/Bug_report.md
  • .github/ISSUE_TEMPLATE/Feature_request.md
  • .github/ISSUE_TEMPLATE/bug-report.yml
  • .github/ISSUE_TEMPLATE/feature-request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/dependabot.yml
  • .github/workflows/ci.yml
  • .gitignore
  • .prettierignore
  • .prettierrc.json
  • cspell.json
  • eslint.config.mjs
  • package.json
  • packages/language-server/build.mts
  • packages/language-server/package.json
  • packages/language-tools/build.mts
  • packages/language-tools/package.json
  • packages/type-check/build.mts
  • packages/type-check/package.json
  • packages/vscode/build.mts
  • packages/vscode/modules/marko-ts-plugin/package.json
  • packages/vscode/package.json
  • packages/vscode/release.mts
💤 Files with no reviewable changes (3)
  • .prettierignore
  • .github/ISSUE_TEMPLATE/Feature_request.md
  • .github/ISSUE_TEMPLATE/Bug_report.md

Comment thread .github/ISSUE_TEMPLATE/bug-report.yml
Comment thread package.json
Comment thread packages/vscode/package.json
Comment thread packages/vscode/package.json
@DylanPiercey DylanPiercey force-pushed the config-file-upgrades branch from 2277202 to f21fa4a Compare April 14, 2026 17:22
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (3)
packages/vscode/package.json (2)

21-21: ⚠️ Potential issue | 🟠 Major

Replace the POSIX-only prepare script.

mkdir -p and cp -r fail under npm's default Windows shells, so this workspace cannot be prepared on Windows. Keep the copy step, but move it into a small Node script.

Suggested direction
-    "prepare": "mkdir -p ./node_modules; cp -r ./modules/* ./node_modules/",
+    "prepare": "node ./scripts/prepare-modules.mjs",

Implement scripts/prepare-modules.mjs with fs.mkdirSync(..., { recursive: true }) and fs.cpSync(...).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/vscode/package.json` at line 21, The prepare script in package.json
uses POSIX-only commands ("prepare": "mkdir -p ./node_modules; cp -r ./modules/*
./node_modules/") which fails on Windows; replace it by creating a Node script
(e.g., scripts/prepare-modules.mjs) and update package.json prepare to run "node
./scripts/prepare-modules.mjs". In the new prepare-modules.mjs use
fs.mkdirSync("./node_modules", { recursive: true }) and fs.cpSync("./modules",
"./node_modules", { recursive: true }) (or copy individual entries) and handle
errors/exit codes so the npm prepare step behaves the same. Ensure
package.json's prepare script specifically references the new script name.

10-15: ⚠️ Potential issue | 🟡 Minor

Fix the package links and use a real repository descriptor.

homepage and repository.url still target clients/vscode, but this workspace lives under packages/vscode. Also, repository.url should point at the repo itself; use directory for the subpath instead of a tree/main/... page.

Suggested fix
-  "homepage": "https://github.com/marko-js/language-server/tree/main/clients/vscode/README.md",
+  "homepage": "https://github.com/marko-js/language-server/blob/main/packages/vscode/README.md",
@@
   "repository": {
     "type": "git",
-    "url": "https://github.com/marko-js/language-server/tree/main/clients/vscode/"
+    "url": "git+https://github.com/marko-js/language-server.git",
+    "directory": "packages/vscode"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@packages/vscode/package.json` around lines 10 - 15, Update the package.json
metadata so links point to the actual workspace: change "homepage" to the README
under packages/vscode (e.g. the README.md path within that package), set
"repository.url" to the git repo root (the canonical git+https URL for the repo,
not a tree/main page), and add a "repository.directory": "packages/vscode" entry
so the repository descriptor references the subpath; update "bugs" only if
necessary to the repo's issues URL format. Use the existing keys "homepage",
"repository.url", and add "repository.directory" to locate the package
correctly.
package.json (1)

16-18: ⚠️ Potential issue | 🟠 Major

Use fail-fast chaining in the root scripts.

format keeps running Prettier after an ESLint failure, and prepare uses single &, which backgrounds husky on POSIX shells instead of waiting for it before workspace prepares start.

Suggested fix
-    "format": "eslint --fix .; prettier . --write --log-level=warn",
+    "format": "eslint --fix . && prettier . --write --log-level=warn",
@@
-    "prepare": "husky & npm run --ws --if-present prepare",
+    "prepare": "husky && npm run --ws --if-present prepare",
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 16 - 18, The root package.json scripts should use
fail-fast chaining: update the "format" script to stop if ESLint fails by
replacing the semicolon chain in the "format" script with an AND chain so
Prettier doesn't run after an ESLint failure (edit the "format" script
definition), and fix the "prepare" script to wait for husky by replacing the
single ampersand (&) with && in the "prepare" script so husky runs to completion
before workspace prepare runs; keep the "lint" script as-is since it already
uses &&.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@package.json`:
- Line 13: The root NPM "build" script uses POSIX-only env syntax and fails on
Windows; update the "build" script to be shell-agnostic by using cross-env (add
"cross-env" to devDependencies and change the "build" script to prefix with
cross-env NODE_ENV=production) or alternatively move the NODE_ENV production
assignment into the Node build step invoked by the script; target the
package.json "build" script entry when making this change.

---

Duplicate comments:
In `@package.json`:
- Around line 16-18: The root package.json scripts should use fail-fast
chaining: update the "format" script to stop if ESLint fails by replacing the
semicolon chain in the "format" script with an AND chain so Prettier doesn't run
after an ESLint failure (edit the "format" script definition), and fix the
"prepare" script to wait for husky by replacing the single ampersand (&) with &&
in the "prepare" script so husky runs to completion before workspace prepare
runs; keep the "lint" script as-is since it already uses &&.

In `@packages/vscode/package.json`:
- Line 21: The prepare script in package.json uses POSIX-only commands
("prepare": "mkdir -p ./node_modules; cp -r ./modules/* ./node_modules/") which
fails on Windows; replace it by creating a Node script (e.g.,
scripts/prepare-modules.mjs) and update package.json prepare to run "node
./scripts/prepare-modules.mjs". In the new prepare-modules.mjs use
fs.mkdirSync("./node_modules", { recursive: true }) and fs.cpSync("./modules",
"./node_modules", { recursive: true }) (or copy individual entries) and handle
errors/exit codes so the npm prepare step behaves the same. Ensure
package.json's prepare script specifically references the new script name.
- Around line 10-15: Update the package.json metadata so links point to the
actual workspace: change "homepage" to the README under packages/vscode (e.g.
the README.md path within that package), set "repository.url" to the git repo
root (the canonical git+https URL for the repo, not a tree/main page), and add a
"repository.directory": "packages/vscode" entry so the repository descriptor
references the subpath; update "bugs" only if necessary to the repo's issues URL
format. Use the existing keys "homepage", "repository.url", and add
"repository.directory" to locate the package correctly.
🪄 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: b56449ef-98ef-4f84-858e-a876a1f837d7

📥 Commits

Reviewing files that changed from the base of the PR and between 2277202 and f21fa4a.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json and included by **
📒 Files selected for processing (24)
  • .changeset/config.json
  • .github/ISSUE_TEMPLATE/Bug_report.md
  • .github/ISSUE_TEMPLATE/Feature_request.md
  • .github/ISSUE_TEMPLATE/bug-report.yml
  • .github/ISSUE_TEMPLATE/feature-request.yml
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/dependabot.yml
  • .github/workflows/ci.yml
  • .gitignore
  • .prettierignore
  • .prettierrc.json
  • cspell.json
  • eslint.config.mjs
  • package.json
  • packages/language-server/build.mts
  • packages/language-server/package.json
  • packages/language-tools/build.mts
  • packages/language-tools/package.json
  • packages/type-check/build.mts
  • packages/type-check/package.json
  • packages/vscode/build.mts
  • packages/vscode/modules/marko-ts-plugin/package.json
  • packages/vscode/package.json
  • packages/vscode/release.mts
💤 Files with no reviewable changes (3)
  • .prettierignore
  • .github/ISSUE_TEMPLATE/Bug_report.md
  • .github/ISSUE_TEMPLATE/Feature_request.md
✅ Files skipped from review due to trivial changes (14)
  • packages/vscode/modules/marko-ts-plugin/package.json
  • .github/ISSUE_TEMPLATE/feature-request.yml
  • .changeset/config.json
  • .prettierrc.json
  • .github/PULL_REQUEST_TEMPLATE.md
  • packages/type-check/build.mts
  • packages/language-tools/build.mts
  • packages/vscode/release.mts
  • .github/ISSUE_TEMPLATE/bug-report.yml
  • packages/language-server/build.mts
  • cspell.json
  • packages/language-tools/package.json
  • packages/vscode/build.mts
  • packages/language-server/package.json
🚧 Files skipped from review as they are similar to previous changes (5)
  • .github/dependabot.yml
  • .gitignore
  • packages/type-check/package.json
  • .github/workflows/ci.yml
  • eslint.config.mjs

Comment thread package.json
@DylanPiercey DylanPiercey force-pushed the config-file-upgrades branch from f21fa4a to fc6834f Compare April 14, 2026 17:32
@DylanPiercey DylanPiercey force-pushed the config-file-upgrades branch from fc6834f to 9be96cb Compare April 14, 2026 17:33
@DylanPiercey DylanPiercey merged commit 73167a4 into main Apr 14, 2026
5 checks passed
@DylanPiercey DylanPiercey deleted the config-file-upgrades branch April 14, 2026 17:35
@github-project-automation github-project-automation bot moved this from Todo to Done in Roadmap Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant