Skip to content

Conversation

@oschwald
Copy link
Member

Summary

  • Migrate from npm to pnpm for faster, more efficient package management
  • Introduce mise as the unified version manager for Node.js, Hugo, pnpm, precious, and Dart Sass
  • Fix Hugo version mismatch between CI and Cloudflare Pages (both now use 0.153.1)
  • Remove redundant prettier.yml workflow (already covered by precious.yml)

Changes

Tool Management (mise.toml)

  • node: 22.21.1
  • hugo: 0.153.1 (matches wrangler.toml)
  • pnpm: 10.28.1 (via aqua backend)
  • precious: 0.10.1 (via GitHub releases)
  • dart-sass: 1.97.3 (via GitHub releases)

Package Manager Migration

  • Replaced npm with pnpm throughout
  • Updated .precious.toml commands (npm/npx → pnpm/pnpm exec)
  • Updated build.sh (npm run → pnpm run)
  • Removed .nvmrc and bin/install-precious (replaced by mise)

CI Workflows

  • Both workflows now use jdx/mise-action@v2 for consistent tooling
  • Hugo workflow includes version check against wrangler.toml
  • Removed redundant prettier.yml (covered by precious.yml)

Test plan

  • Local: mise trust && mise install && pnpm install succeeds
  • Local: pnpm run lint runs (cspell issue unrelated to this PR)
  • Local: ./build.sh completes successfully
  • Local: Hugo version matches wrangler.toml (0.153.1)
  • CI: Hugo workflow passes
  • CI: Precious workflow passes
  • Cloudflare: Preview deployment builds correctly

🤖 Generated with Claude Code

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jan 23, 2026

Deploying dev-site with  Cloudflare Pages  Cloudflare Pages

Latest commit: 24de34b
Status: ✅  Deploy successful!
Preview URL: https://4e2273e9.dev-site-4ua.pages.dev
Branch Preview URL: https://greg-eng-3951-dev-site-lint.dev-site-4ua.pages.dev

View logs

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @oschwald, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly modernizes the project's development environment by overhauling its dependency and tool management. The core change involves transitioning from npm to pnpm for package management and adopting mise as a centralized tool for version control of various development dependencies. These updates aim to enhance build performance, ensure consistent tool versions across different development and deployment stages, and simplify the project's CI/CD pipeline by removing unnecessary configurations.

Highlights

  • Package Manager Migration: The project has migrated from npm to pnpm for package management, aiming for faster and more efficient dependency handling. This involved updating configuration files and scripts to use pnpm commands.
  • Unified Version Management with mise: mise has been introduced as a unified version manager to consistently manage Node.js, Hugo, pnpm, precious, and Dart Sass across all environments. This replaces previous manual version management and .nvmrc.
  • Consistent Hugo Version: The Hugo version has been standardized to 0.153.1, ensuring consistency between CI workflows and Cloudflare Pages deployments, resolving potential version mismatch issues.
  • CI Workflow Optimization: A redundant prettier.yml workflow has been removed, as its functionality is now covered by the precious.yml workflow, streamlining the CI process.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/hugo.yml
    • .github/workflows/precious.yml
    • .github/workflows/prettier.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This is a great pull request that modernizes the project's dependency and tool management by migrating to pnpm and mise. This will significantly improve the developer experience by ensuring consistent tooling and faster dependency installation. The changes are well-structured, and the README.md update is clear and helpful for new contributors. My main feedback is to ensure the migration from npm is complete. I've noticed that some scripts in package.json still use npm and npx. I've left a specific comment on how to address this. Once that's fixed, this PR will be in excellent shape.

"engines": {
"node": ">=22.21.1",
"npm": ">=9"
"pnpm": ">=10"
Copy link
Contributor

Choose a reason for hiding this comment

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

high

While you've correctly updated the engines to require pnpm, several scripts in this file still use npm and npx. To complete the migration and ensure all commands use the intended package manager, these scripts should be updated.

The following scripts need to be changed:

  • fix:scripts: should use pnpm run instead of npm run.
  • fix:styles: should use pnpm run instead of npm run.
  • lint:scripts: should use pnpm exec instead of npx.
  • format:rawhtml: should use pnpm exec instead of npx.

Updating these will make the project's tooling fully consistent and avoid potential issues where the wrong package manager or package version is used.

Introduce mise as the unified version manager for the project, replacing
.nvmrc and the manual install-precious script. This ensures consistent
tool versions across local development and CI.

Tools configured:
- node: 22.21.1 (matches existing .nvmrc)
- hugo: 0.153.1 (matches wrangler.toml for Cloudflare Pages)
- pnpm: 10.28.1 (via aqua backend)
- precious: 0.10.1 (via GitHub releases)
- dart-sass: 1.97.3 (via GitHub releases, replaces snap install)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@oschwald oschwald force-pushed the greg/eng-3951-dev-site-lint-build-is-fixed branch from 348ec71 to becda17 Compare January 23, 2026 17:34
oschwald and others added 5 commits January 23, 2026 09:42
Migrate the package manager from npm to pnpm for faster installs and
better disk efficiency through content-addressable storage.

Changes:
- package.json: Update engines field (npm -> pnpm)
- .npmrc: Replace legacy-peer-deps with auto-install-peers
- .precious.toml: Replace npm/npx with pnpm/pnpm exec
- build.sh: Replace npm run with pnpm run
- .gitignore: Add .pnpm-store/

Files removed (replaced by mise):
- .nvmrc: Node version now in mise.toml
- bin/install-precious: Precious now installed via mise
- package-lock.json: Replaced by pnpm-lock.yaml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace individual tool setup actions with jdx/mise-action for unified
tool management. This ensures CI uses the exact same tool versions as
local development.

Changes:
- Remove peaceiris/actions-hugo (Hugo now from mise)
- Remove actions/setup-node (Node now from mise)
- Remove snap install dart-sass (Dart Sass now from mise)
- Add jdx/mise-action@v2 for all tool installation
- Add version consistency check between mise and wrangler.toml
- Replace npm ci with pnpm install --frozen-lockfile

The version check fails CI if mise.toml Hugo version differs from
wrangler.toml, ensuring Cloudflare Pages builds use the same version.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace individual tool setup with jdx/mise-action for unified tool
management. Precious is now installed via mise instead of the custom
install script.

Changes:
- Remove actions/setup-node (Node now from mise)
- Remove ./bin/install-precious step (Precious now from mise)
- Remove jq package-lock.json validation (lockfile is now pnpm format)
- Add jdx/mise-action@v2 for all tool installation
- Add pnpm lockfile validation via --frozen-lockfile --dry-run
- Replace npm ci with pnpm install --frozen-lockfile

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The Precious workflow already runs prettier checks via .precious.toml:
- prettier-scripts: covers assets/js/** and bin/**/*.ts
- prettier-markdown: covers assets/**/*.md and content/**/*.md

This workflow duplicates the prettier-scripts check on assets/js/**,
so it can be safely removed.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace manual tool installation instructions with mise-based setup.
All tools (Node.js, Hugo, pnpm, precious, Dart Sass) are now managed
through mise.toml for consistent versions across all environments.

Changes:
- Replace NVM/Homebrew/apt instructions with mise install
- Update npm references to pnpm
- Simplify installation to three commands: trust, install, pnpm install

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@oschwald oschwald force-pushed the greg/eng-3951-dev-site-lint-build-is-fixed branch from becda17 to 243fd33 Compare January 23, 2026 17:42
NTT DOCOMO is a Japanese mobile carrier mentioned in the GeoIP
release notes.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comment on lines +8 to +9
"github:houseabsolute/precious" = "0.10.1"
"github:sass/dart-sass" = "1.97.3"
Copy link
Contributor

Choose a reason for hiding this comment

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

🔥

@mm-kevcenteno
Copy link
Contributor

Blog links were fixed in: #1545

@oschwald oschwald merged commit dbbc958 into main Jan 23, 2026
9 of 10 checks passed
@oschwald oschwald deleted the greg/eng-3951-dev-site-lint-build-is-fixed branch January 23, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants