Skip to content
Open
Show file tree
Hide file tree
Changes from 69 commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
951daa7
[WIP] yarn -> pnpm
koji Jun 9, 2025
7a9cdcf
Merge branch 'edge' into chore_change-package-manager
koji Jun 12, 2025
3cfbf6d
Merge branch 'edge' into chore_change-package-manager
koji Jul 4, 2025
6ccdd6b
fix app dev and build
koji Jul 4, 2025
aa96280
Merge branch 'edge' into chore_change-package-manager
koji Aug 11, 2025
78d8b4c
Update pnpm-lock.yaml
koji Aug 11, 2025
a6a5d84
switch yarn to pnpm
koji Aug 11, 2025
89a0ff6
update configs for pnpm
koji Aug 11, 2025
c948735
install packages for storybook
koji Aug 11, 2025
0351c06
Merge branch 'edge' into chore_change-package-manager
koji Nov 8, 2025
fa1a517
run make setup-js
koji Nov 8, 2025
5129679
install packages for odd mode
koji Nov 9, 2025
15273e1
install pacakges to root
koji Nov 9, 2025
23702b5
remove yarn.lock
koji Nov 10, 2025
0852448
Merge branch 'edge' into chore_change-package-manager
koji Nov 28, 2025
dc00834
modfify lock file
koji Nov 29, 2025
f115ede
build odd
koji Nov 29, 2025
522fae7
fix import statement issues
koji Nov 29, 2025
4d60861
fix package import issue
koji Nov 29, 2025
1bb2bcc
fix check-js errors
koji Nov 29, 2025
36a17ae
fix check-js errors
koji Nov 29, 2025
1171a5d
fix protocol-designer tsbuild
koji Nov 29, 2025
c07f67a
fix clean command
koji Nov 29, 2025
be2cbbb
fix check-js errors
koji Nov 29, 2025
345410e
fix check-js errors
koji Nov 29, 2025
abfc3d2
fix check-js errors
koji Nov 29, 2025
cb16fa0
fix lint-js error
koji Nov 29, 2025
bf2b164
fix test errors
koji Nov 30, 2025
098e1a5
skip unit tests: styled-components
koji Nov 30, 2025
3cb584d
fix lint-js
koji Nov 30, 2025
94a44e7
fix lint-js errors
koji Nov 30, 2025
437c4ef
remove yarn.lock from yaml
koji Dec 1, 2025
35e3d5a
add install pnpm
koji Dec 1, 2025
88439b2
align the version of pnpm
koji Dec 1, 2025
eab3fd7
modify cypress part
koji Dec 1, 2025
0ebbf14
fix pnpm install error
koji Dec 1, 2025
92e62df
use version 10 on ci
koji Dec 1, 2025
a26deef
use the same version as component-test
koji Dec 1, 2025
b6c91e9
Merge branch 'edge' into chore_change-package-manager
koji Dec 1, 2025
cef95a3
modify js-check
koji Dec 1, 2025
b985413
modify ai-client workflow
koji Dec 1, 2025
bccdb50
modify api-client workflow
koji Dec 1, 2025
41d6975
modify shared-data workflow
koji Dec 1, 2025
e740ff9
replace yarn with pnpm
koji Dec 1, 2025
0821d81
update opentrons-ai document
koji Dec 1, 2025
f655b77
Update pnpm-lock.yaml
koji Dec 1, 2025
95e5aa5
modify g-code workflow
koji Dec 1, 2025
743dcb4
Merge branch 'edge' into chore_change-package-manager
koji Dec 2, 2025
3666c80
Update ResourceMonitor.test.ts
koji Dec 2, 2025
2cb8064
Update ResourceMonitor.test.ts
koji Dec 2, 2025
acb651b
avoid electron issue
koji Dec 2, 2025
ab01be3
avoid electron issue
koji Dec 2, 2025
a0b0815
fix check-js errors
koji Dec 2, 2025
5efe7a4
used fixed version of types for mixpanel
koji Dec 2, 2025
3ba27ce
fix lint errors
koji Dec 2, 2025
0a21dad
Merge branch 'edge' into chore_change-package-manager
koji Dec 2, 2025
78bc9a2
fix electron mock errors
koji Dec 2, 2025
f63d6a8
fix electron mock issue
koji Dec 2, 2025
d479046
fix electron mock issue
koji Dec 2, 2025
d53ef8f
fix lint error
koji Dec 3, 2025
8fa6730
align storybook plugin version
koji Dec 3, 2025
26627da
update lock file
koji Dec 3, 2025
486c794
update ll workflow
koji Dec 3, 2025
c38b5d1
fix component-test workflow
koji Dec 3, 2025
6801ca0
update Makefile for pnpm build
koji Dec 3, 2025
cc3c590
fix pnpm command
koji Dec 3, 2025
ae878d9
add cypress install for ci
koji Dec 3, 2025
29a4dca
Merge branch 'edge' into chore_change-package-manager
koji Dec 3, 2025
126f53a
update docs: yarn -> pnpm
koji Dec 3, 2025
48198c3
remove unsed lines
koji Dec 3, 2025
cb8b2c2
move storybook plugin to root
koji Dec 3, 2025
cbd1a83
trying to debug why test failing locally
alexjoel42 Dec 3, 2025
8fdc2ed
temp fix for pd e2e test
koji Dec 3, 2025
a766645
fix(components): fix primarybutton and alt primarybutton styling issue
koji Dec 6, 2025
60f9838
Merge branch 'edge' into chore_change-package-manager
koji Dec 6, 2025
9a8edad
Chore update storybook 7 to 8 (#20314)
koji Dec 8, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ Example prompt template:
This monorepo uses Stylelint. The configuration file is located at the root as .stylelintrc.js.
To run linting on a specific file, use the following command:
```shell
yarn stylelint opentrons-ai-client/src/file_path
pnpm stylelint opentrons-ai-client/src/file_path
```

## TypeScript Best Practices
Expand Down Expand Up @@ -330,13 +330,13 @@ it('should handle empty data', () => {
To run tests for a specific file (assuming the current directory is the project root), use:

```shell
yarn vitest opentrons-ai-client/src/file_path
pnpm vitest opentrons-ai-client/src/file_path
```

To run multiple tests within a folder, use:

```shell
yarn vitest opentrons-ai-client/src/folder_path
pnpm vitest opentrons-ai-client/src/folder_path
```

1. **Props Pattern:**
Expand Down
27 changes: 22 additions & 5 deletions .github/actions/js/setup/action.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: 'Setup JS Environment'
description: >
Composite action to fix tag handling in checkout,
setup Node.js, install udev for USB detection, cache Yarn/NPM caches,
setup Node.js, install udev for USB detection, cache PNPM/NPM caches,
and perform JS setup.

inputs: {}
Expand All @@ -11,11 +11,19 @@ runs:
steps:
- uses: ./.github/actions/git/resolve-tag
- uses: ./.github/actions/environment/complex-variables

# 1. Install pnpm explicitly (Must be BEFORE Setup Node)
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10.22.0

# 2. Setup Node with pnpm caching enabled
- name: 'Setup Node'
uses: actions/setup-node@v4
with:
node-version: '22.12.0'
cache: 'yarn'
cache: 'pnpm' # This works now because pnpm is installed

- name: 'Setup Python'
uses: actions/setup-python@v4
Expand All @@ -27,7 +35,7 @@ runs:
uses: actions/cache@v4
with:
path: ~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
key: cypress-${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}

- name: 'Install udev for USB-detection'
if: runner.os == 'Linux'
Expand All @@ -37,15 +45,24 @@ runs:
- name: 'Setup JS'
shell: bash
run: |
# Set up Cypress to download from package-mirror
CYPRESS_VERSION=$(grep '"cypress"' package.json | sed 's/.*"cypress": *"\([^"]*\)".*/\1/' | tr -d ' \n\r\t')
# 3. Use Node to safely parse package.json (better than grep)
CYPRESS_VERSION=$(node -p "try { require('./package.json').devDependencies.cypress } catch(e) { require('./package.json').dependencies.cypress }")

# Verify version was found
if [ -z "$CYPRESS_VERSION" ] || [ "$CYPRESS_VERSION" == "undefined" ]; then
echo "Error: Could not detect Cypress version from package.json"
exit 1
fi

if [[ "$RUNNER_OS" == "Linux" ]]; then
PLATFORM="linux-x64"
elif [[ "$RUNNER_OS" == "macOS" ]]; then
PLATFORM="darwin-x64"
else
PLATFORM="win32-x64"
fi

export CYPRESS_INSTALL_BINARY="https://github.com/Opentrons/package-mirror/releases/download/cypress-${CYPRESS_VERSION}/cypress-${CYPRESS_VERSION}-${PLATFORM}.zip"

# 4. Run the make target (Ensure this runs 'pnpm install' in your Makefile)
make setup-js
2 changes: 1 addition & 1 deletion .github/actions/odd-resource-analysis/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,6 @@
},
"devDependencies": {
"@vercel/ncc": "0.38.3",
"prettier": "2.7.1"
"prettier": "3.6.2"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ Add this label to a PR to automatically:

- **Python 3.10+**
- **uv** package manager (https://github.com/astral-sh/uv)
- **Node.js/yarn** (for prettier formatting)
- **Node.js/pnpm** (for prettier formatting)

### Initial Setup

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/app-test-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:
- '*.js'
- 'scripts/**'
- '*.json'
- 'yarn.lock'
- 'pnpm-lock.yaml'
- '.github/workflows/app-test-build-deploy.yaml'
- '.github/workflows/utils.js'
- 'vitest.config.*'
Expand All @@ -35,7 +35,7 @@ on:
- 'discovery-client/**'
- '*.js'
- '*.json'
- 'yarn.lock'
- 'pnpm-lock.yaml'
- 'scripts/**'
- '.vitest.config.*'
workflow_dispatch: {}
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/g-code-testing-lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,18 +66,16 @@ jobs:
- uses: './.github/actions/python/setup'
with:
project: 'g-code-testing'
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.npm-cache/_prebuild
${{ github.workspace }}/.yarn-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
${{ github.workspace }}/.pnpm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
make setup-js
id: 'setup-js'
uses: ./.github/actions/js/setup
- name: Lint
run: make -C g-code-testing lint
- name: Test
Expand Down
21 changes: 11 additions & 10 deletions .github/workflows/js-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,24 @@ jobs:
# WORKAROUND: Remove microsoft debian repo due to https://github.com/microsoft/linux-package-repositories/issues/130. Remove line below after it is resolved
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && sudo apt-get install libudev-dev
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.yarn-cache
${{ github.workspace }}/.pnpm-cache
${{ github.workspace }}/.npm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-
- name: 'setup-js'
id: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
make setup-js
uses: ./.github/actions/js/setup
# run: |
# npm config set cache ${{ github.workspace }}/.npm-cache
# pnpm config set cache ${{ github.workspace }}/.pnpm-cache
# make setup-js
# Use the if to run all the lint checks even of some fail
shell: bash
# shell: bash
Comment on lines 78 to 79
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these meant to be commented out, still?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

i will remove them

- name: 'typechecks'
if: always() && steps.setup-js.outcome == 'success'
run: make check-js
Expand All @@ -97,4 +98,4 @@ jobs:
if: always() && steps.setup-js.outcome == 'success'
run: make lint-css
- name: 'test scripts'
run: yarn vitest scripts
run: pnpm vitest scripts
2 changes: 1 addition & 1 deletion .github/workflows/ll-test-build-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -222,4 +222,4 @@ jobs:
with:
status: 'cancelled'
workflow_name: 'Labware Library test, build, and deploy'
webhook_url: ${{ secrets.OT_APP_RELEASE_SLACK_NOTIFICATION_WEBHOOK_URL }}
webhook_url: ${{ secrets.OT_APP_RELEASE_SLACK_NOTIFICATION_WEBHOOK_URL }}
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,17 @@ jobs:
script: |
const { buildComplexEnvVars } = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/utils.js`)
buildComplexEnvVars(core, context)
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.npm-cache/_prebuild
${{ github.workspace }}/.yarn-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
${{ github.workspace }}/.pnpm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
pnpm config set cache ${{ github.workspace }}/.pnpm-cache
make setup-js
- name: 'build'
env:
Expand Down
13 changes: 6 additions & 7 deletions .github/workflows/opentrons-ai-client-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,17 @@ jobs:
script: |
const { buildComplexEnvVars } = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/utils.js`)
buildComplexEnvVars(core, context)
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.npm-cache/_prebuild
${{ github.workspace }}/.yarn-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
${{ github.workspace }}/.pnpm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
make setup-js
id: 'setup-js'
uses: ./.github/actions/js/setup

- name: 'test frontend packages'
run: |
make -C opentrons-ai-client test-cov
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/opentrons-ai-production-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ jobs:
script: |
const { buildComplexEnvVars } = require(`${process.env.GITHUB_WORKSPACE}/.github/workflows/utils.js`)
buildComplexEnvVars(core, context)
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.npm-cache/_prebuild
${{ github.workspace }}/.yarn-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
${{ github.workspace }}/.pnpm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
- name: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
pnpm config set cache ${{ github.workspace }}/.pnpm-cache
make setup-js
- name: 'build'
env:
Expand Down
14 changes: 6 additions & 8 deletions .github/workflows/react-api-client-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,20 +47,18 @@ jobs:
# WORKAROUND: Remove microsoft debian repo due to https://github.com/microsoft/linux-package-repositories/issues/130. Remove line below after it is resolved
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && sudo apt-get install libudev-dev
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.yarn-cache
${{ github.workspace }}/.pnpm-cache
${{ github.workspace }}/.npm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-
- name: 'setup-js'
run: |
npm config set cache ./.npm-cache
yarn config set cache-folder ./.yarn-cache
make setup-js
id: 'setup-js'
uses: ./.github/actions/js/setup
- name: 'run api-client and react-api-client unit tests'
run: make -C api-client test-cov
- name: 'Upload coverage report'
Expand Down
30 changes: 13 additions & 17 deletions .github/workflows/shared-data-test-lint-deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,20 +126,18 @@ jobs:
# WORKAROUND: Remove microsoft debian repo due to https://github.com/microsoft/linux-package-repositories/issues/130. Remove line below after it is resolved
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && sudo apt-get install libudev-dev
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.yarn-cache
${{ github.workspace }}/.pnpm-cache
${{ github.workspace }}/.npm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-
- name: 'js deps'
run: |
npm config set cache ./.npm-cache
yarn config set cache-folder ./.yarn-cache
make setup-js
id: 'setup-js'
uses: ./.github/actions/js/setup
- name: 'run shared-data JS unit tests'
run: make -C shared-data test-cov
- name: 'Upload coverage report'
Expand Down Expand Up @@ -220,7 +218,7 @@ jobs:
elif [ "${{ format('{0}', startsWith(github.ref, 'refs/tags/components')) }}" = "true" ] ; then
echo "Publishing builds for components@ tags"
echo 'should_publish=true' >> $GITHUB_OUTPUT
else
else
echo "No publish for ref ${{github.ref}} and event ${{github.event_type}}"
echo 'should_publish=false' >> $GITHUB_OUTPUT
fi
Expand All @@ -247,20 +245,18 @@ jobs:
# WORKAROUND: Remove microsoft debian repo due to https://github.com/microsoft/linux-package-repositories/issues/130. Remove line below after it is resolved
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && sudo apt-get install libudev-dev
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.yarn-cache
${{ github.workspace }}/.pnpm-cache
${{ github.workspace }}/.npm-cache
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
key: js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-yarn-
js-${{ secrets.GH_CACHE_VERSION }}-${{ runner.os }}-pnpm-
- name: 'js deps'
run: |
npm config set cache ./.npm-cache
yarn config set cache-folder ./.yarn-cache
make setup-js
id: 'setup-js'
uses: ./.github/actions/js/setup
- name: 'build typescript'
run: make build-ts
- name: 'build library'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/tag-releases.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,18 @@ jobs:
- uses: 'actions/setup-node@v6'
with:
node-version: '22.12.0'
- name: 'cache yarn cache'
- name: 'cache pnpm cache'
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/.npm-cache/_prebuild
${{ github.workspace }}/.yarn-cache
key: js-${{ hashFiles('yarn.lock') }}
${{ github.workspace }}/.pnpm-cache
key: js-${{ hashFiles('pnpm-lock.yaml') }}
- name: 'setup-js'
run: |
npm config set cache ${{ github.workspace }}/.npm-cache
yarn config set cache-folder ${{ github.workspace }}/.yarn-cache
yarn install
pnpm config set cache ${{ github.workspace }}/.pnpm-cache
pnpm install

- name: 'create release'
run: |
Expand Down
Loading
Loading