Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/actions/setup-ci/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Setup CI dependencies
description: Install workspace dependencies and Playwright browsers for CI jobs.

runs:
using: composite
steps:
- uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d
with:
version: 11.0.8
run_install: false
- uses: actions/setup-node@v6
with:
node-version-file: './.nvmrc'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- name: Install dependencies
shell: bash
run: pnpm install --frozen-lockfile
- name: Cache Vale
uses: actions/cache@v5
with:
path: |
config/vale/bin
config/vale/styles/Google
config/vale/styles/write-good
key: ${{ runner.os }}-${{ runner.arch }}-vale-${{ hashFiles('.vale.ini', 'config/vale/install.mjs') }}-v1
- name: Install Vale
shell: bash
run: node config/vale/install.mjs
- name: Resolve Playwright version
id: playwright-version
shell: bash
run: echo "version=$(node -p 'require("./node_modules/playwright/package.json").version')" >> "$GITHUB_OUTPUT"
- name: Cache Playwright browsers
id: cache-playwright
uses: actions/cache@v5
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-${{ runner.arch }}-playwright-chromium-shell-${{ steps.playwright-version.outputs.version }}-v1
- uses: actions/setup-node@v6
with:
node-version: 24
- name: Install Playwright system dependencies
shell: bash
run: node ./node_modules/playwright/cli.js install-deps chromium
- name: Install Playwright Chromium
if: steps.cache-playwright.outputs.cache-hit != 'true'
shell: bash
run: node ./node_modules/playwright/cli.js install --only-shell chromium
- uses: actions/setup-node@v6
with:
node-version-file: './.nvmrc'
registry-url: 'https://registry.npmjs.org'
25 changes: 4 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,8 @@ jobs:
with:
fetch-depth: 0
lfs: true
- uses: pnpm/action-setup@v4
with:
run_install: false
- uses: actions/setup-node@v6
with:
node-version-file: './.nvmrc'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- uses: ./.github/actions/setup-ci
# - uses: google/wireit@setup-github-actions-caching/v2
- run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps chromium
- name: Run CI checks
env:
ELEMENTS_PAGES_BASE_URL: ${{vars.ELEMENTS_PAGES_BASE_URL}}
Expand Down Expand Up @@ -78,17 +69,8 @@ jobs:
with:
fetch-depth: 0
lfs: true
- uses: pnpm/action-setup@v4
with:
run_install: false
- uses: actions/setup-node@v6
with:
node-version-file: './.nvmrc'
registry-url: 'https://registry.npmjs.org'
cache: 'pnpm'
- uses: ./.github/actions/setup-ci
# - uses: google/wireit@setup-github-actions-caching/v2
- run: pnpm install --frozen-lockfile
- run: pnpm exec playwright install --with-deps chromium
- name: Run Lighthouse tests
run: WIREIT_FAILURES=kill pnpm run lighthouse && node ./projects/internals/ci/cache-validate.js lighthouse && node ./projects/internals/ci/metrics.lighthouse.js
- name: Write lighthouse job summary
Expand All @@ -115,8 +97,9 @@ jobs:
# semantic-release pushes with — otherwise the default GITHUB_TOKEN's
# http.extraheader overrides @semantic-release/git's push auth.
token: ${{secrets.RELEASE_TOKEN}}
- uses: pnpm/action-setup@v4
- uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d
with:
version: 11.0.8
run_install: false
- uses: actions/setup-node@v6
with:
Expand Down
2 changes: 1 addition & 1 deletion .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[ -n "$CI" ] && exit 0

npx --no -- commitlint --edit ${1}
pnpm exec commitlint --edit "$1"
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24.12.0
26.1.0
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ Elements is a design language for AI/ML factories built as a monorepo containing
## Environment Requirements

- **nvm**: Node Version Manager for managing Node.js versions
- **Node.js**: 24.12.0 (enforced via `.nvmrc` and `package.json` engines)
- **pnpm**: 10.27.0 (managed via Corepack 0.34.5)
- **Node.js**: 26.1.0 (enforced via `.nvmrc` and `package.json` engines)
- **pnpm**: 11.0.8 (managed via Corepack 0.34.7)
- **Git LFS**: Required for visual test screenshots and videos (`.gitattributes` defines tracked files)
- **Playwright**: Browser-based testing uses Chromium (installed via prepare script)
- **Vale**: Prose linter for documentation and JSDoc (installed via prepare script)
Expand All @@ -47,7 +47,7 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# Install dependencies
nvm install
npm install -g corepack@0.34.5
npm install -g corepack@0.34.7
corepack enable
corepack prepare --activate
pnpm i --frozen-lockfile --prefer-offline
Expand Down
32 changes: 16 additions & 16 deletions NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Copyright 2024-2026 NVIDIA Corporation

This product includes the following bundled third-party software:

- @eslint/css v1.1.0 [Apache-2.0] (used by: @nvidia-elements/lint)
- @eslint/css v1.2.0 [Apache-2.0] (used by: @nvidia-elements/lint)
Copyright: Nicholas C. Zakas

- @eslint/js v10.0.1 [MIT] (used by: @nvidia-elements/lint)
Expand All @@ -14,13 +14,13 @@ This product includes the following bundled third-party software:
- @eslint/json v1.2.0 [Apache-2.0] (used by: @nvidia-elements/lint)
Copyright: Nicholas C. Zakas

- @html-eslint/eslint-plugin v0.59.0 [MIT] (used by: @nvidia-elements/lint)
- @html-eslint/eslint-plugin v0.60.0 [MIT] (used by: @nvidia-elements/lint)
Copyright: yeonjuan (https://github.com/yeonjuan)

- @html-eslint/parser v0.59.0 [MIT] (used by: @nvidia-elements/lint)
- @html-eslint/parser v0.60.0 [MIT] (used by: @nvidia-elements/lint)
Copyright: yeonjuan (https://github.com/yeonjuan)

- @inquirer/prompts v8.4.1 [MIT] (used by: @nvidia-elements/cli)
- @inquirer/prompts v8.4.2 [MIT] (used by: @nvidia-elements/cli)
Copyright: Simon Boudrias <admin@simonboudrias.com>

- @modelcontextprotocol/sdk v1.29.0 [MIT] (used by: @nvidia-elements/cli)
Expand All @@ -44,7 +44,7 @@ This product includes the following bundled third-party software:
- markdown-it v14.1.1 [MIT] (used by: @nvidia-elements/markdown)
Copyright: Unknown

- marked v18.0.0 [MIT] (used by: @nvidia-elements/cli)
- marked v18.0.3 [MIT] (used by: @nvidia-elements/cli)
Copyright: Christopher Jeffrey

- marked-terminal v7.3.0 [MIT] (used by: @nvidia-elements/cli)
Expand All @@ -59,16 +59,16 @@ This product includes the following bundled third-party software:
- open v11.0.0 [MIT] (used by: @nvidia-elements/cli)
Copyright: Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

- ora v9.3.0 [MIT] (used by: @nvidia-elements/cli)
- ora v9.4.0 [MIT] (used by: @nvidia-elements/cli)
Copyright: Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)

- publint v0.3.18 [MIT] (used by: @nvidia-elements/cli)
- publint v0.3.20 [MIT] (used by: @nvidia-elements/cli)
Copyright: Bjorn Lu

- yargs v18.0.0 [MIT] (used by: @nvidia-elements/cli)
Copyright: Unknown

- zod v4.3.6 [MIT] (used by: @nvidia-elements/cli)
- zod v4.4.3 [MIT] (used by: @nvidia-elements/cli)
Copyright: Colin McDonnell <zod@colinhacks.com>

==============================================================================
Expand All @@ -77,7 +77,7 @@ Apache-2.0

The following bundled components are provided under the Apache-2.0 license:

@eslint/css v1.1.0 - Copyright Nicholas C. Zakas
@eslint/css v1.2.0 - Copyright Nicholas C. Zakas
@eslint/json v1.2.0 - Copyright Nicholas C. Zakas

Apache License
Expand Down Expand Up @@ -299,22 +299,22 @@ MIT
The following bundled components are provided under the MIT license:

@eslint/js v10.0.1 - Copyright Unknown
@html-eslint/eslint-plugin v0.59.0 - Copyright yeonjuan (https://github.com/yeonjuan)
@html-eslint/parser v0.59.0 - Copyright yeonjuan (https://github.com/yeonjuan)
@inquirer/prompts v8.4.1 - Copyright Simon Boudrias <admin@simonboudrias.com>
@html-eslint/eslint-plugin v0.60.0 - Copyright yeonjuan (https://github.com/yeonjuan)
@html-eslint/parser v0.60.0 - Copyright yeonjuan (https://github.com/yeonjuan)
@inquirer/prompts v8.4.2 - Copyright Simon Boudrias <admin@simonboudrias.com>
@modelcontextprotocol/sdk v1.29.0 - Copyright Anthropic, PBC (https://anthropic.com)
adm-zip v0.5.17 - Copyright Nasca Iacob <sy@another-d-mention.ro> (https://github.com/cthackers)
archiver v7.0.1 - Copyright Chris Talkington (http://christalkington.com/)
markdown-it v14.1.1 - Copyright Unknown
marked v18.0.0 - Copyright Christopher Jeffrey
marked v18.0.3 - Copyright Christopher Jeffrey
marked-terminal v7.3.0 - Copyright Mikael Brevik
minisearch v7.2.0 - Copyright Luca Ongaro
monaco-editor v0.55.1 - Copyright Microsoft Corporation
open v11.0.0 - Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
ora v9.3.0 - Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
publint v0.3.18 - Copyright Bjorn Lu
ora v9.4.0 - Copyright Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
publint v0.3.20 - Copyright Bjorn Lu
yargs v18.0.0 - Copyright Unknown
zod v4.3.6 - Copyright Colin McDonnell <zod@colinhacks.com>
zod v4.4.3 - Copyright Colin McDonnell <zod@colinhacks.com>

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ To setup repository dependencies and run the full build, run the following comma
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
. ~/.nvm/nvm.sh
nvm install
npm install -g corepack@0.34.5
npm install -g corepack@0.34.7
corepack enable
corepack prepare --activate
pnpm i --frozen-lockfile --prefer-offline
Expand Down
8 changes: 4 additions & 4 deletions config/docker/ci.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.d
# install common dependencies
apt-get install -y git-lfs yq && \
# https://github.com/nodejs/corepack/issues/612
npm install -g corepack@0.34.5 && \
# install pnpm from our package.json `packageManager` definition
npm install -g corepack@0.34.7 && \
# install pnpm from our package.json `devEngines.packageManager` definition
corepack enable && \
corepack prepare --activate && \
PNPM_VERSION="$(node -p "require('./package.json').devEngines.packageManager.version")" && \
corepack prepare "pnpm@${PNPM_VERSION}" --activate && \
# ensure our pnpm dlx commands story the cache in a known location so we can cleanup
pnpm config set store-dir /var/cache/pnpm-store && \
PLAYWRIGHT_VERSION="$(cat pnpm-lock.yaml| yq -r '.importers["."].devDependencies.playwright.version')" && \
Expand All @@ -28,4 +29,3 @@ RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.d
# install vale
RUN curl -sfL https://github.com/errata-ai/vale/releases/download/v3.13.0/vale_3.13.0_Linux_64-bit.tar.gz | tar xz -C /usr/local/bin vale


34 changes: 12 additions & 22 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,16 @@
"version": "0.0.0",
"type": "module",
"description": "",
"packageManager": "pnpm@10.27.0",
"engines": {
"node": "24.12.0"
"node": "26.1.0"
},
"packageManager": "pnpm@11.0.8",
"devEngines": {
"packageManager": {
"name": "pnpm",
"version": "11.0.8",
"onFail": "download"
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
},
"scripts": {
"ci": "wireit",
Expand Down Expand Up @@ -280,6 +287,7 @@
"./projects/**/*.{js,ts,tsx,json,mjs,cjs,vue,svelte}",
"!**/node_modules/**",
"!**/dist/**",
"!**/.visual/**",
"!**/.11ty-vite/**",
"!**/.eslintcache/**",
"!**/.wireit/**",
Expand Down Expand Up @@ -314,28 +322,10 @@
"packageLocks": []
},
"playwright": {
"command": "pnpm exec playwright install chromium --with-deps chromium"
"command": "pnpm exec playwright install --with-deps --only-shell chromium"
},
"prepare": {
"command": "test -n \"$CI\" || (pnpm run playwright & node .husky/install.mjs) ; node config/vale/install.mjs"
"command": "test -n \"$CI\" || (pnpm run playwright & node .husky/install.mjs ; node config/vale/install.mjs)"
}
},
"pnpm": {
"overrides": {
"archiver>glob": "catalog:",
"eslint": "catalog:"
},
"onlyBuiltDependencies": [
"@bundled-es-modules/glob",
"@parcel/watcher",
"bun",
"esbuild",
"hugo-bin",
"lmdb",
"msgpackr-extract",
"rs-module-lexer",
"sharp",
"style-dictionary"
]
}
}
Loading
Loading