Skip to content

Conversation

@kingston
Copy link
Collaborator

@kingston kingston commented Sep 16, 2025

Summary by CodeRabbit

  • Chores
    • Upgraded PNPM to 10.16.1 across the workspace, examples, tooling, and generators.
    • Added minimumReleaseAge=1440 (24 hours) to npm configs and project templates to delay installation of newly published dependencies and improve supply-chain safety. New projects inherit this setting.
    • No changes to app runtime or APIs.
  • Tests
    • Updated unit tests to reflect the new PNPM version requirements.

@vercel
Copy link

vercel bot commented Sep 16, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
baseplate-project-builder-web Ready Ready Preview Comment Sep 16, 2025 3:44pm

@changeset-bot
Copy link

changeset-bot bot commented Sep 16, 2025

🦋 Changeset detected

Latest commit: 2bf76f6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 18 packages
Name Type
@baseplate-dev/create-project Patch
@baseplate-dev/code-morph Patch
@baseplate-dev/core-generators Patch
@baseplate-dev/fastify-generators Patch
@baseplate-dev/project-builder-cli Patch
@baseplate-dev/project-builder-common Patch
@baseplate-dev/project-builder-lib Patch
@baseplate-dev/project-builder-server Patch
@baseplate-dev/project-builder-test Patch
@baseplate-dev/project-builder-web Patch
@baseplate-dev/react-generators Patch
@baseplate-dev/sync Patch
@baseplate-dev/tools Patch
@baseplate-dev/ui-components Patch
@baseplate-dev/utils Patch
@baseplate-dev/plugin-auth Patch
@baseplate-dev/plugin-queue Patch
@baseplate-dev/plugin-storage Patch

Not sure what this means? Click here to learn what changesets are.

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

@coderabbitai
Copy link

coderabbitai bot commented Sep 16, 2025

Walkthrough

PNPM is bumped from 10.15.0 to 10.16.1 across root, examples, and generators. A new npm config minimumReleaseAge=1440 is added to .npmrc files and templates. Generator constants, project creator outputs, tests, and mise.toml are aligned to the new PNPM version. No runtime logic changes.

Changes

Cohort / File(s) Summary of changes
Root config and tooling
package.json, .npmrc, mise.toml
Bump PNPM to 10.16.1 in packageManager and engines; add minimumReleaseAge=1440 to .npmrc; update mise.toml pnpm tool to 10.16.1.
Examples: npmrc security setting
examples/blog-with-auth/.npmrc, examples/todo-with-auth0/.npmrc
Add minimumReleaseAge=1440 with explanatory comments; no other changes.
Examples: PNPM engine/packageManager bumps
examples/blog-with-auth/package.json, examples/blog-with-auth/packages/admin/package.json, examples/blog-with-auth/packages/backend/package.json, examples/todo-with-auth0/package.json, examples/todo-with-auth0/packages/admin/package.json, examples/todo-with-auth0/packages/backend/package.json, examples/todo-with-auth0/packages/web/package.json
Update engines.pnpm to ^10.16.x and, where present, packageManager to [email protected]; no dependency or script changes.
Generator constants
packages/core-generators/src/constants/node.ts
Update exported PNPM_VERSION from '10.15.0' to '10.16.1'.
Project creator outputs and tests
packages/create-project/src/project-creator.ts, packages/create-project/src/project-creator.unit.test.ts, packages/create-project/templates/.template.npmrc
Generated project packageManager and engines.pnpm updated to 10.16.1; template .npmrc gains minimumReleaseAge=1440; tests updated to expect new values.
Changeset note
.changeset/upgrade-pnpm-and-add-minimum-release-age.md
Documents PNPM bump and addition of minimumReleaseAge=1440.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title succinctly and accurately summarizes the primary changes in the PR by stating the PNPM version upgrade to 10.16.1 and the addition of a 24-hour minimum release age; this matches the package.json, constants, template, and .npmrc updates in the diff. It is concise, specific, and free of noise, so a reviewer scanning history will understand the main intent.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch kingston/eng-880-upgrade-pnpm-to-10161-and-set-minimumreleaseage

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

@kingston kingston merged commit b208178 into main Sep 16, 2025
16 of 17 checks passed
@kingston kingston deleted the kingston/eng-880-upgrade-pnpm-to-10161-and-set-minimumreleaseage branch September 16, 2025 15:49
@github-actions github-actions bot mentioned this pull request Sep 16, 2025
Copy link

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
packages/create-project/src/project-creator.unit.test.ts (2)

61-62: Add an assertion for minimumReleaseAge=1440 in .npmrc.

This PR’s headline change isn’t verified by tests. The test stubs the template to a generic string, so regressions to minimumReleaseAge would go unnoticed.

Apply this diff to assert the required setting is propagated:

-    vol.writeFileSync(`${templateDir}.template.npmrc`, 'npmrc content');
+    vol.writeFileSync(
+      `${templateDir}.template.npmrc`,
+      'minimumReleaseAge=1440\n',
+    );
@@
-    expect(vol.readFileSync(`${directory}/.npmrc`, 'utf8')).toBe(
-      'npmrc content',
-    );
+    const npmrc = vol.readFileSync(`${directory}/.npmrc`, 'utf8');
+    expect(npmrc).toContain('minimumReleaseAge=1440');

Also applies to: 124-127


181-203: Restore process.cwd spy to avoid cross‑test leakage.

The spy is re-mocked to the original string value but never restored to the real function, which can taint later tests.

Apply this diff:

-    vi.spyOn(process, 'cwd').mockReturnValue('/current');
+    const cwdSpy = vi.spyOn(process, 'cwd').mockReturnValue('/current');
@@
-    vi.spyOn(process, 'cwd').mockReturnValue(originalCwd);
+    cwdSpy.mockRestore();

And ensure global restoration after each test:

   afterEach(() => {
     vol.reset();
     consoleInfoSpy.mockRestore();
+    vi.restoreAllMocks();
   });
🧹 Nitpick comments (10)
examples/blog-with-auth/packages/admin/package.json (1)

92-95: Bump engines.pnpm to ^10.16.1.

Keeps example packages consistent with root/package templates and the PR’s stated target.

   "engines": {
     "node": "^22.18.0",
-    "pnpm": "^10.16.0"
+    "pnpm": "^10.16.1"
   },
examples/todo-with-auth0/packages/admin/package.json (1)

96-99: Use ^10.16.1 for pnpm engine.

Same consistency tweak as other packages.

   "engines": {
     "node": "^22.18.0",
-    "pnpm": "^10.16.0"
+    "pnpm": "^10.16.1"
   },
examples/todo-with-auth0/packages/backend/package.json (1)

109-112: Raise pnpm engine to ^10.16.1.

Align with root and changeset; avoid permitting 10.16.0 here.

   "engines": {
     "node": "^22.18.0",
-    "pnpm": "^10.16.0"
+    "pnpm": "^10.16.1"
   },
examples/blog-with-auth/packages/backend/package.json (1)

91-94: Update pnpm engine to ^10.16.1.

Brings this backend package in line with the rest of the upgrade.

   "engines": {
     "node": "^22.18.0",
-    "pnpm": "^10.16.0"
+    "pnpm": "^10.16.1"
   },
examples/todo-with-auth0/packages/web/package.json (1)

92-95: Align pnpm engine to ^10.16.1 across example packages.

Multiple example package.json files still use "^10.16.0" — bump them to "^10.16.1" to match the repo root.

  • examples/blog-with-auth/packages/admin/package.json
  • examples/blog-with-auth/packages/backend/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • examples/todo-with-auth0/packages/web/package.json
  "engines": {
    "node": "^22.18.0",
-    "pnpm": "^10.16.0"
+    "pnpm": "^10.16.1"
  },
examples/blog-with-auth/.npmrc (1)

9-14: Use kebab-case key in .npmrc for PNPM settings.

In .npmrc, PNPM options are kebab-case; switch to minimum-release-age=1440 to ensure the setting is applied. Feature exists since pnpm v10.16.0. (pnpm.io)

Apply this diff:

- minimumReleaseAge=1440
+ minimum-release-age=1440
.npmrc (1)

7-12: Correct the config key casing for PNPM.

Change to kebab-case: minimum-release-age=1440. This setting is supported starting in pnpm 10.16.0. (pnpm.io)

- minimumReleaseAge=1440
+ minimum-release-age=1440
packages/create-project/templates/.template.npmrc (1)

9-14: Kebab-case the PNPM key in the template.

Use minimum-release-age=1440 so generated projects get an effective setting. (pnpm.io)

- minimumReleaseAge=1440
+ minimum-release-age=1440
examples/todo-with-auth0/.npmrc (1)

9-14: Normalize .npmrc key casing.

Replace with minimum-release-age=1440. Keeps consistency and ensures pnpm reads it. (pnpm.io)

- minimumReleaseAge=1440
+ minimum-release-age=1440
packages/create-project/src/project-creator.unit.test.ts (1)

232-232: Use numeric file mode for chmod to match Node’s API.

Pass an octal number, not a string, for portability with memfs/Node.

-    vol.chmodSync(directory, '444');
+    vol.chmodSync(directory, 0o444);
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 4fc5f8b and 2bf76f6.

⛔ Files ignored due to path filters (18)
  • examples/blog-with-auth/packages/admin/baseplate/generated/package.json is excluded by !**/generated/**, !**/generated/**
  • examples/blog-with-auth/packages/backend/baseplate/generated/package.json is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-auth0/packages/admin/baseplate/generated/package.json is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-auth0/packages/backend/baseplate/generated/package.json is excluded by !**/generated/**, !**/generated/**
  • examples/todo-with-auth0/packages/web/baseplate/generated/package.json is excluded by !**/generated/**, !**/generated/**
  • tests/simple/.npmrc is excluded by !tests/**
  • tests/simple/package.json is excluded by !tests/**
  • tests/simple/packages/backend/baseplate/generated/eslint.config.mjs is excluded by !**/generated/**, !tests/**, !**/generated/**
  • tests/simple/packages/backend/baseplate/generated/package.json is excluded by !**/generated/**, !tests/**, !**/generated/**
  • tests/simple/packages/backend/eslint.config.mjs is excluded by !tests/**
  • tests/simple/packages/backend/package.json is excluded by !tests/**
  • tests/simple/packages/web/baseplate/generated/eslint.config.js is excluded by !**/generated/**, !tests/**, !**/generated/**
  • tests/simple/packages/web/baseplate/generated/package.json is excluded by !**/generated/**, !tests/**, !**/generated/**
  • tests/simple/packages/web/baseplate/generated/src/components/ui/sidebar.tsx is excluded by !**/generated/**, !tests/**, !**/generated/**
  • tests/simple/packages/web/eslint.config.js is excluded by !tests/**
  • tests/simple/packages/web/package.json is excluded by !tests/**
  • tests/simple/packages/web/src/components/ui/sidebar.tsx is excluded by !tests/**
  • tests/simple/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml, !tests/**
📒 Files selected for processing (17)
  • .changeset/upgrade-pnpm-and-add-minimum-release-age.md (1 hunks)
  • .npmrc (1 hunks)
  • examples/blog-with-auth/.npmrc (1 hunks)
  • examples/blog-with-auth/package.json (1 hunks)
  • examples/blog-with-auth/packages/admin/package.json (1 hunks)
  • examples/blog-with-auth/packages/backend/package.json (1 hunks)
  • examples/todo-with-auth0/.npmrc (1 hunks)
  • examples/todo-with-auth0/package.json (1 hunks)
  • examples/todo-with-auth0/packages/admin/package.json (1 hunks)
  • examples/todo-with-auth0/packages/backend/package.json (1 hunks)
  • examples/todo-with-auth0/packages/web/package.json (1 hunks)
  • mise.toml (1 hunks)
  • package.json (1 hunks)
  • packages/core-generators/src/constants/node.ts (1 hunks)
  • packages/create-project/src/project-creator.ts (1 hunks)
  • packages/create-project/src/project-creator.unit.test.ts (1 hunks)
  • packages/create-project/templates/.template.npmrc (1 hunks)
🧰 Additional context used
📓 Path-based instructions (12)
**/*

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

Use kebab-case for file names

Files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • packages/create-project/src/project-creator.unit.test.ts
  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • packages/create-project/src/project-creator.ts
  • examples/blog-with-auth/packages/backend/package.json
  • package.json
  • packages/core-generators/src/constants/node.ts
  • mise.toml
examples/blog-with-auth/{package.json,packages/**/package.json}

📄 CodeRabbit inference engine (examples/blog-with-auth/CLAUDE.md)

Use ESM only by setting "type": "module" in package.json

Files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • examples/blog-with-auth/packages/backend/package.json
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

**/*.{ts,tsx}: TypeScript with strict type checking
Always include return types on top-level functions including React components (React.ReactElement)
Include absolute paths in import statements via tsconfig paths (@src/ is the alias for src/)
If a particular interface or type is not exported, change the file so it is exported

If a particular interface or type is not exported in a TypeScript file, modify the file to export it

Files:

  • packages/create-project/src/project-creator.unit.test.ts
  • packages/create-project/src/project-creator.ts
  • packages/core-generators/src/constants/node.ts
**/*.{unit,int}.test.ts

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

Unit tests use .unit.test.ts suffix, integration tests use .int.test.ts

Files:

  • packages/create-project/src/project-creator.unit.test.ts
**/*.{js,ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

Node 16 module resolution - include file extensions in imports (.js)

Files:

  • packages/create-project/src/project-creator.unit.test.ts
  • packages/create-project/src/project-creator.ts
  • packages/core-generators/src/constants/node.ts
**/*.test.ts

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

Always import vitest globals explicitly (describe, it, expect)

Files:

  • packages/create-project/src/project-creator.unit.test.ts
**/*.{ts,tsx,js}

📄 CodeRabbit inference engine (.cursor/rules/code-style.mdc)

**/*.{ts,tsx,js}: Sort imports by group: external libs first, then local imports
Use camelCase for variables/functions, PascalCase for types/classes
Order functions such that functions are placed below the variables/functions they use
We use the prefer using nullish coalescing operator (??) ESLint rule instead of a logical or (||), as it is a safer operator
Use console.info/warn/error instead of console.log

Files:

  • packages/create-project/src/project-creator.unit.test.ts
  • packages/create-project/src/project-creator.ts
  • packages/core-generators/src/constants/node.ts
**/*.test.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/testing.mdc)

**/*.test.{ts,tsx}: Use descriptive test names that explain what is being tested
Structure tests with clear setup, execution, and verification phases (Arrange-Act-Assert)
Always mock external API calls and file system operations in tests
Each test should be independent and not rely on others
Leverage TypeScript for type-safe mocking in tests
Focus on testing public methods and behaviors, not implementation details
Each test should verify one specific behavior to keep tests simple
For file system operations in tests, use memfs and mock 'node:fs' and 'node:fs/promises'
When using globby in tests, pass the mocked fs adapter

Files:

  • packages/create-project/src/project-creator.unit.test.ts
**/*.{test,test-helper}.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/testing.mdc)

Extract repeated logic into reusable helper functions

Files:

  • packages/create-project/src/project-creator.unit.test.ts
**/*.unit.test.ts

📄 CodeRabbit inference engine (.cursor/rules/testing.mdc)

Unit tests are colocated with source files using .unit.test.ts suffix

Files:

  • packages/create-project/src/project-creator.unit.test.ts
examples/todo-with-auth0/{package.json,packages/**/package.json}

📄 CodeRabbit inference engine (examples/todo-with-auth0/CLAUDE.md)

examples/todo-with-auth0/{package.json,packages/**/package.json}: Module system must be ESM only ("type": "module" in package.json)
Package manager is pnpm 10+ (enforce via packageManager field)
Node version 22+ with Volta pinned to 22.18.0

Files:

  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
.changeset/*.md

📄 CodeRabbit inference engine (AGENTS.md)

When adding or changing a feature, add a new Changeset in .changeset/ with patch bump frontmatter and a description

Files:

  • .changeset/upgrade-pnpm-and-add-minimum-release-age.md
🧠 Learnings (14)
📓 Common learnings
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/blog-with-auth/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:02:31.412Z
Learning: Use pnpm 10+ and Node 20+ (Volta pinned)
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/{package.json,packages/**/package.json} : Package manager is pnpm 10+ (enforce via `packageManager` field)
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From a package, build using `pnpm build`
📚 Learning: 2025-09-03T17:03:33.250Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/{package.json,packages/**/package.json} : Package manager is pnpm 10+ (enforce via `packageManager` field)

Applied to files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • packages/create-project/src/project-creator.unit.test.ts
  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/.npmrc
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • packages/create-project/src/project-creator.ts
  • examples/blog-with-auth/packages/backend/package.json
  • package.json
  • examples/blog-with-auth/.npmrc
  • packages/core-generators/src/constants/node.ts
  • mise.toml
  • .changeset/upgrade-pnpm-and-add-minimum-release-age.md
📚 Learning: 2025-09-03T17:03:52.726Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From a package, build using `pnpm build`

Applied to files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • packages/create-project/src/project-creator.unit.test.ts
  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • packages/create-project/src/project-creator.ts
  • examples/blog-with-auth/packages/backend/package.json
  • package.json
  • packages/core-generators/src/constants/node.ts
  • mise.toml
📚 Learning: 2025-09-03T17:02:31.412Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/blog-with-auth/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:02:31.412Z
Learning: Use pnpm 10+ and Node 20+ (Volta pinned)

Applied to files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • packages/create-project/src/project-creator.unit.test.ts
  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • packages/create-project/src/project-creator.ts
  • examples/blog-with-auth/packages/backend/package.json
  • package.json
  • packages/core-generators/src/constants/node.ts
  • mise.toml
  • .changeset/upgrade-pnpm-and-add-minimum-release-age.md
📚 Learning: 2025-09-03T17:03:33.250Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/{package.json,packages/**/package.json} : Node version 22+ with Volta pinned to 22.18.0

Applied to files:

  • examples/blog-with-auth/package.json
  • examples/blog-with-auth/packages/admin/package.json
  • packages/create-project/src/project-creator.unit.test.ts
  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/.npmrc
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
  • packages/create-project/src/project-creator.ts
  • examples/blog-with-auth/packages/backend/package.json
  • package.json
  • packages/core-generators/src/constants/node.ts
  • mise.toml
📚 Learning: 2025-09-03T17:03:52.726Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From a package, lint with auto-fixing using `pnpm lint --fix`

Applied to files:

  • examples/blog-with-auth/package.json
  • examples/todo-with-auth0/package.json
  • mise.toml
📚 Learning: 2025-09-03T17:02:31.412Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/blog-with-auth/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:02:31.412Z
Learning: Applies to examples/blog-with-auth/{package.json,packages/**/package.json} : Use ESM only by setting `"type": "module"` in package.json

Applied to files:

  • examples/blog-with-auth/packages/admin/package.json
📚 Learning: 2025-09-03T17:03:33.250Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/**/pnpm-workspace.yaml : Use pnpm workspaces with packages located under `packages/`

Applied to files:

  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
📚 Learning: 2025-09-03T17:03:33.250Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/{package.json,packages/**/package.json} : Module system must be ESM only (`"type": "module"` in package.json)

Applied to files:

  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
📚 Learning: 2025-09-03T17:03:33.250Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: examples/todo-with-auth0/CLAUDE.md:0-0
Timestamp: 2025-09-03T17:03:33.250Z
Learning: Applies to examples/todo-with-auth0/packages/**/tsconfig*.json : Use TypeScript moduleResolution set to `NodeNext` (ESM)

Applied to files:

  • examples/todo-with-auth0/package.json
  • examples/todo-with-auth0/packages/admin/package.json
  • examples/todo-with-auth0/packages/web/package.json
  • examples/todo-with-auth0/packages/backend/package.json
📚 Learning: 2025-05-08T12:56:59.222Z
Learnt from: kingston
PR: halfdomelabs/baseplate#539
File: scripts/check-changesets.ts:10-13
Timestamp: 2025-05-08T12:56:59.222Z
Learning: Node.js 20.12.0 and above include `globSync` in the core `node:fs` module, so `import { promises as fs, globSync } from 'node:fs';` is valid syntax in projects using these Node.js versions.

Applied to files:

  • packages/core-generators/src/constants/node.ts
📚 Learning: 2025-09-03T17:03:52.726Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From repository root, build using `pnpm build`

Applied to files:

  • mise.toml
📚 Learning: 2025-09-03T17:03:52.726Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From a package, check types using `pnpm typecheck`

Applied to files:

  • mise.toml
📚 Learning: 2025-09-03T17:03:52.726Z
Learnt from: CR
PR: halfdomelabs/baseplate#0
File: .cursor/rules/dev-commands.mdc:0-0
Timestamp: 2025-09-03T17:03:52.726Z
Learning: From repository root, check types using `pnpm typecheck`

Applied to files:

  • mise.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: Verify Sync (blog-with-auth)
  • GitHub Check: Verify Sync (todo-with-auth0)
  • GitHub Check: Lint Examples (todo-with-auth0)
  • GitHub Check: Socket Security: Pull Request Alerts
  • GitHub Check: Test E2E
  • GitHub Check: test
  • GitHub Check: Lint
🔇 Additional comments (7)
examples/todo-with-auth0/package.json (1)

33-36: LGTM: engines.pnpm and packageManager updated to 10.16.1.

Matches mise, generators, and templates.

Also applies to: 43-44

examples/blog-with-auth/package.json (1)

31-34: LGTM: example root pinned to pnpm 10.16.1.

Consistent with repo-wide upgrade and generator constants.

Also applies to: 41-42

mise.toml (1)

3-6: LGTM: pnpm tool set to 10.16.1.

Matches packageManager/engines updates.

packages/core-generators/src/constants/node.ts (1)

2-2: Version constant updated correctly.

Matches the root pin and generator output. No action needed.

.changeset/upgrade-pnpm-and-add-minimum-release-age.md (1)

1-10: Changeset reads well.

Scope and rationale are clear; patch bump for create-project makes sense.

packages/create-project/src/project-creator.ts (1)

65-69: Generator output matches the new PNPM version.

packageManager: '[email protected]' and engines.pnpm: '^10.16.1' are consistent with the repo pin.

packages/create-project/src/project-creator.unit.test.ts (1)

108-112: PNPM 10.16.1 expectations — verification required

Assertions for packageManager and engines.pnpm look correct; verification is inconclusive because ripgrep returned "No files were searched" (filters skipped all files). Re-run the checks without the restrictive -g filter or run rg with --debug and share the output so I can confirm packageManager, engines.pnpm, and minimumReleaseAge across the repo.

Comment on lines +72 to 76
"packageManager": "pnpm@10.16.1",
"engines": {
"node": "^22.0.0",
"pnpm": "^10.15.0"
"pnpm": "^10.16.1"
},
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

🧩 Analysis chain

Aligns PNPM pin and engines; add a quick repo-wide verification.

LGTM on bumping packageManager and engines.pnpm. To avoid drift, verify all workspaces/templates reflect 10.16.x.


🏁 Script executed:

#!/bin/bash
# Show any .npmrc lines using camelCase vs. kebab-case for minimum release age
rg -n --glob '**/.npmrc' -e 'minimumReleaseAge=|minimum-release-age=' -S

# Check packageManager pins
rg -n --glob '**/package.json' -e '"packageManager":\s*"pnpm@10\.16\.1"' -S

# Check engines.pnpm constraints (10.16.x)
rg -n --glob '**/package.json' -e '"pnpm":\s*"\^10\.16\.\d+"' -S

Length of output: 912


LGTM — repo pin ok; two small follow-ups

  • Engines: packageManager is pinned to [email protected] (root + examples) and engines ranges already allow 10.16.x; some subpackages still list "^10.16.0" — optional: standardize to "^10.16.1" for consistency. Affected files: examples/todo-with-auth0/packages/{backend,web,admin}/package.json and examples/blog-with-auth/packages/{backend,admin}/package.json.

  • .npmrc: root and example .npmrc files contain minimumReleaseAge=1440 (camelCase). minimumReleaseAge is a Renovate config option (not a pnpm .npmrc key) — move this setting into your Renovate config (renovate.json / .github/renovate.json or package.json "renovate") or set RENOVATE_MINIMUM_RELEASE_AGE / CLI --minimum-release-age, and remove it from .npmrc. (docs.renovatebot.com)

🤖 Prompt for AI Agents
In package.json around lines 72-76, update consistency and config placement:
standardize pnpm engine ranges across the repo by changing any subpackage engine
entries that list "^10.16.0" to "^10.16.1"
(examples/todo-with-auth0/packages/{backend,web,admin}/package.json and
examples/blog-with-auth/packages/{backend,admin}/package.json) so they match the
root packageManager pin, and remove the non-pnpm key minimumReleaseAge from any
.npmrc files (root and examples); instead add that setting to your Renovate
configuration (renovate.json, .github/renovate.json, or package.json "renovate")
or set RENOVATE_MINIMUM_RELEASE_AGE / pass --minimum-release-age to Renovate
CLI.

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