Skip to content

Conversation

@CamSoper
Copy link
Contributor

@CamSoper CamSoper commented Dec 15, 2025

Implementation Summary

Runtime Versions Updated

  • Node.js: 18.x → 22.x ✅
  • Go: 1.20.x → 1.25.x ✅
  • Hugo: 0.135.0 → 0.151.0 ✅

Dependencies Modernized

  • TypeScript: 4.9.5 → 5.7.2 (root/infrastructure)
  • markdownlint: 0.17.2 → 0.40.0 (with API updates)
  • http-server: 0.12.1 → 14.1.1
  • ~30+ packages updated to latest

Key Implementation Decisions

  • Left theme/Stencil dependencies untouched - theme is stable, avoiding unnecessary risk
  • ✅ Added transpileOnly: true to ts-loader for TypeScript 3.9 compatibility
  • ✅ Updated PurgeCSS API (purgeCSSPlugin) for v7.x
  • ✅ Updated markdownlint API (require("markdownlint/sync").lint) for v0.40
  • ✅ Set up Dependabot for automated dependency updates going forward

Approach: Conservative modernization - updated what needed updating (runtime versions + root/infra packages), preserved what was working (theme/Stencil).

Fixes #16259
Fixes #16274

Infrastructure updates:
- Upgrade Node.js from v18 to v22 (.nvmrc)
- Update GitHub Actions workflows to use Node 22
- Upgrade major dependencies:
  - AWS SDK: ^3.427.0 → ^3.738.0
  - Octokit: v18/v4 → v21/v8
  - postcss-purgecss: ^4.0.3 → ^7.0.0
- Update TypeScript configurations
- Update build tooling (webpack, etc.)

Markdownlint compatibility fixes:
- Fix markdownlint v0.40.0 API compatibility (markdownlint/sync)
- Implement hierarchical config system for flexible linting
- Permissive base config for blog/marketing/tutorials content
- Strict config for documentation (will be tuned separately)
- Disable rules added in v0.25.0-v0.40.0 to maintain compatibility

Build and lint now working with updated dependencies.

Fixes #16259

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
@claude
Copy link
Contributor

claude bot commented Dec 15, 2025

Documentation Review

I've reviewed this PR which modernizes build dependencies (Node.js 22, Go 1.25, Hugo 0.151.0, TypeScript 5.7) and updates the dependency management structure.

Overall Assessment

✅ The changes are well-structured and consistent across all files. The version updates are applied systematically throughout the repository.

Files Reviewed

  • Configuration files (.nvmrc, devcontainer.json, package.json)
  • GitHub Actions workflows (12 workflow files)
  • README.md
  • Build scripts (scripts/ensure.sh)
  • Markdownlint configuration files
  • Infrastructure package management
  • TypeScript configuration files
  • Static HTML files (wwwroot examples)
  • Theme and build configuration

Specific Findings

README.md (Lines 50-57)

The version requirements are correctly updated and clearly documented:

  • Hugo: >= 0.151.0
  • Node.js: >= 22
  • Go: >= 1.25

The documentation accurately reflects the version policy mentioned in the PR description.

scripts/ensure.sh (Lines 29-30)

Version checks are properly updated to match the new requirements:

check_version "Node.js"  "node"  "node -v | sed 's/v\([0-9\.]\*\).*$/\1/'"  "22"
check_version "Hugo"     "hugo"  "hugo version | sed 's/hugo v\([0-9\.]\*\).*$/\1/'"  "0.151.0"

File Endings

All modified files properly end with a newline character (verified .nvmrc, HTML files, and scripts).

Markdownlint Configuration (.markdownlint-base.json)

The new base configuration file is well-structured and provides a centralized location for markdownlint rules. The content/docs/.markdownlint.json correctly extends the base configuration.

GitHub Actions Workflows

All 12 workflow files are consistently updated with:

  • Go 1.25.x (where applicable)
  • Hugo 0.151.0

DevContainer Configuration

The .devcontainer/devcontainer.json correctly specifies exact versions rather than "latest":

  • Go: 1.25
  • Hugo: 0.151.0

This is a good practice for reproducible development environments.

TypeScript Configuration

TypeScript configuration files (tsconfig.json, infrastructure/tsconfig.json) are updated appropriately for TypeScript 5.7 compatibility.

Infrastructure Package Management

The removal of package-lock.json in the infrastructure directory is intentional and correct, as this project uses Yarn as specified in AGENTS.md.

No Issues Found

All changes follow the repository's style guide and coding standards. The PR successfully achieves its stated goal of modernizing dependencies and standardizing version management.


If you need any fixes or additional reviews, mention @claude and I'll be happy to help!

@pulumi-bot
Copy link
Collaborator

CamSoper and others added 2 commits December 15, 2025 22:22
Fixes peer dependency warnings from @algolia/autocomplete packages.
The search-insights package enables analytics tracking for Algolia
autocomplete features.

Resolves warnings introduced in dependency upgrade commit.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
Add explicit accountName property to satisfy Azure naming requirements.
Storage account names must match ^[a-z0-9]+$ (lowercase alphanumeric
only, no hyphens).

Without explicit accountName, Pulumi auto-generates a name that may
include hyphens from the stack name, causing validation errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
@pulumi-bot
Copy link
Collaborator

@pulumi-bot
Copy link
Collaborator

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.

Fix CSS fingerprinting to happen after PurgeCSS Modernize build dependencies and standardize version management

3 participants