Skip to content

Commit 675ccbe

Browse files
Dedupe node & pnpm versions; bump pnpm to 10.33.1
Address feedback: make package.json the single source of truth for node and pnpm versions where possible, and bump pnpm to the latest release. - package.json: bump `packageManager` to `pnpm@10.33.1` (pinned with the upstream sha512 integrity hash so corepack/pnpm verify the binary). - package.json: tighten `engines.node` from `>=22` to `22.14.0` so dev's built-in node-version validator catches any drift against dev.yml on every `dev up`. - dev.yml: bump to `package_manager: pnpm@10.33.1` and add a comment noting the versions must stay in lockstep with package.json. - .github/actions/setup: read node from `engines.node` via `node-version-file: package.json`, and let `pnpm/action-setup` read the version from the `packageManager` field (drop the hardcoded `version: 10.28.0` and `node-version: 22.22.1`). dev.yml itself is plain YAML (no ERB/interpolation) and the node task requires an explicit `version:` + `package_manager:`, so full deduplication into a single literal isn't supported upstream. Every other pnpm-using zone in World mirrors the value. The setup we have here — package.json as SoT, dev's validator as the enforcer, CI reading directly from package.json — is the closest equivalent. Requested by Kieran Osgood <kieran.osgood@shopify.com>
1 parent f2501e7 commit 675ccbe

6 files changed

Lines changed: 63 additions & 57 deletions

File tree

.github/actions/setup/action.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,17 @@ description: Setup Node.js and install dependencies
44
runs:
55
using: composite
66
steps:
7+
# Versions are sourced from package.json:
8+
# - pnpm: `packageManager` field (read by pnpm/action-setup)
9+
# - node: `engines.node` field (read by setup-node via node-version-file)
10+
# Keep package.json as the single source of truth.
711
- name: Install pnpm
812
uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.1.0
9-
with:
10-
version: 10.28.0
1113

1214
- name: Setup Node.js
1315
uses: actions/setup-node@1a4442cacd436585916779262731d5b162bc6ec7 # v3.8.2
1416
with:
15-
node-version: 22.22.1
17+
node-version-file: package.json
1618
registry-url: 'https://registry.npmjs.org'
1719
cache: pnpm
1820

.github/workflows/ci.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ jobs:
3232
uses: ./.github/actions/setup
3333

3434
- run: |
35-
yarn module clean
36-
yarn module build
37-
yarn compare-snapshot
35+
pnpm module clean
36+
pnpm module build
37+
pnpm compare-snapshot
3838
3939
lint:
4040
name: Lint module + sample
@@ -52,9 +52,9 @@ jobs:
5252
uses: ./.github/actions/setup
5353

5454
- run: |
55-
yarn module build
56-
yarn module lint
57-
yarn sample lint
55+
pnpm module build
56+
pnpm module lint
57+
pnpm sample lint
5858
5959
test:
6060
name: Run jest tests
@@ -70,7 +70,7 @@ jobs:
7070
uses: ./.github/actions/setup
7171

7272
- run:
73-
yarn test --coverage
73+
pnpm test --coverage
7474
--testPathPatterns="modules/@shopify/checkout-sheet-kit/tests"
7575
--coverageReporters=json-summary
7676

@@ -111,8 +111,8 @@ jobs:
111111
java -version
112112
javac -version
113113
echo "STOREFRONT_DOMAIN=myshopify.com" > sample/.env
114-
yarn module build
115-
yarn sample test:android --no-daemon
114+
pnpm module build
115+
pnpm sample test:android --no-daemon
116116
117117
test-ios:
118118
name: Run Swift Tests
@@ -138,4 +138,4 @@ jobs:
138138

139139
- name: Run Swift tests
140140
run: |
141-
yarn sample test:ios
141+
pnpm sample test:ios

.github/workflows/publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ jobs:
3838
- name: Prepare release
3939
run: |
4040
cp README.md modules/@shopify/checkout-sheet-kit
41-
yarn module clean
42-
yarn module build
41+
pnpm module clean
42+
pnpm module build
4343
cd modules/@shopify/checkout-sheet-kit
4444
npm publish --access public --tag ${{ steps.npm-tag.outputs.tag }}
4545
env:

dev.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ up:
1515
ios:
1616
- version: 23C54 # 26.2
1717
architecture_variant: arm64
18+
# Node / pnpm versions are mirrored from package.json (engines.node,
19+
# packageManager). dev validates engines.node matches the version below on
20+
# every `dev up`, so drift is caught automatically. If you bump one, bump
21+
# both.
1822
- node:
1923
version: v22.14.0
20-
package_manager: pnpm@10.28.0
24+
package_manager: pnpm@10.33.1
2125
- custom:
2226
name: Install NPM dependencies
2327
met?: ls -l | grep node_modules

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
"url": "https://github.com/Shopify/checkout-sheet-kit-react-native/issues"
1111
},
1212
"homepage": "https://github.com/Shopify/checkout-sheet-kit-react-native",
13-
"packageManager": "pnpm@10.28.0",
13+
"packageManager": "pnpm@10.33.1+sha512.05ba3c1d5d1c18f68df06470d74055e62d41fc110a0c660db1b2dfb2785327f04cf0f68345d4609bc52089e7fa0343c31593b2f9594e2c5d5da426230acc9820",
1414
"pnpm": {
1515
"onlyBuiltDependencies": [
1616
"unrs-resolver"
@@ -58,7 +58,7 @@
5858
"typescript": "^5.9.2"
5959
},
6060
"engines": {
61-
"node": ">=22"
61+
"node": "22.14.0"
6262
},
6363
"prettier": {
6464
"arrowParens": "avoid",

sample/ios/Podfile.lock

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ PODS:
88
- hermes-engine (0.80.2):
99
- hermes-engine/Pre-built (= 0.80.2)
1010
- hermes-engine/Pre-built (0.80.2)
11-
- NitroModules (0.33.7):
11+
- NitroModules (0.33.9):
1212
- boost
1313
- DoubleConversion
1414
- fast_float
@@ -38,7 +38,7 @@ PODS:
3838
- ReactCommon/turbomodule/core
3939
- SocketRocket
4040
- Yoga
41-
- QuickCrypto (1.0.9):
41+
- QuickCrypto (1.0.19):
4242
- boost
4343
- DoubleConversion
4444
- fast_float
@@ -1717,7 +1717,7 @@ PODS:
17171717
- React-Core
17181718
- react-native-quick-base64 (2.2.2):
17191719
- React-Core
1720-
- react-native-safe-area-context (5.6.1):
1720+
- react-native-safe-area-context (5.7.0):
17211721
- boost
17221722
- DoubleConversion
17231723
- fast_float
@@ -1736,8 +1736,8 @@ PODS:
17361736
- React-hermes
17371737
- React-ImageManager
17381738
- React-jsi
1739-
- react-native-safe-area-context/common (= 5.6.1)
1740-
- react-native-safe-area-context/fabric (= 5.6.1)
1739+
- react-native-safe-area-context/common (= 5.7.0)
1740+
- react-native-safe-area-context/fabric (= 5.7.0)
17411741
- React-NativeModulesApple
17421742
- React-RCTFabric
17431743
- React-renderercss
@@ -1748,7 +1748,7 @@ PODS:
17481748
- ReactCommon/turbomodule/core
17491749
- SocketRocket
17501750
- Yoga
1751-
- react-native-safe-area-context/common (5.6.1):
1751+
- react-native-safe-area-context/common (5.7.0):
17521752
- boost
17531753
- DoubleConversion
17541754
- fast_float
@@ -1777,7 +1777,7 @@ PODS:
17771777
- ReactCommon/turbomodule/core
17781778
- SocketRocket
17791779
- Yoga
1780-
- react-native-safe-area-context/fabric (5.6.1):
1780+
- react-native-safe-area-context/fabric (5.7.0):
17811781
- boost
17821782
- DoubleConversion
17831783
- fast_float
@@ -1807,7 +1807,7 @@ PODS:
18071807
- ReactCommon/turbomodule/core
18081808
- SocketRocket
18091809
- Yoga
1810-
- react-native-webview (13.16.0):
1810+
- react-native-webview (13.16.1):
18111811
- boost
18121812
- DoubleConversion
18131813
- fast_float
@@ -2517,7 +2517,7 @@ PODS:
25172517
- ReactCommon/turbomodule/core
25182518
- SocketRocket
25192519
- Yoga
2520-
- RNScreens (4.16.0):
2520+
- RNScreens (4.24.0):
25212521
- boost
25222522
- DoubleConversion
25232523
- fast_float
@@ -2545,10 +2545,10 @@ PODS:
25452545
- ReactCodegen
25462546
- ReactCommon/turbomodule/bridging
25472547
- ReactCommon/turbomodule/core
2548-
- RNScreens/common (= 4.16.0)
2548+
- RNScreens/common (= 4.24.0)
25492549
- SocketRocket
25502550
- Yoga
2551-
- RNScreens/common (4.16.0):
2551+
- RNScreens/common (4.24.0):
25522552
- boost
25532553
- DoubleConversion
25542554
- fast_float
@@ -2654,8 +2654,8 @@ DEPENDENCIES:
26542654
- fmt (from `../../node_modules/react-native/third-party-podspecs/fmt.podspec`)
26552655
- glog (from `../../node_modules/react-native/third-party-podspecs/glog.podspec`)
26562656
- hermes-engine (from `../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
2657-
- NitroModules (from `../node_modules/react-native-nitro-modules`)
2658-
- QuickCrypto (from `../node_modules/react-native-quick-crypto`)
2657+
- NitroModules (from `../../node_modules/react-native-nitro-modules`)
2658+
- QuickCrypto (from `../../node_modules/react-native-quick-crypto`)
26592659
- RCT-Folly (from `../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
26602660
- RCTDeprecation (from `../../node_modules/react-native/ReactApple/Libraries/RCTFoundation/RCTDeprecation`)
26612661
- RCTRequired (from `../../node_modules/react-native/Libraries/Required`)
@@ -2690,11 +2690,11 @@ DEPENDENCIES:
26902690
- React-logger (from `../../node_modules/react-native/ReactCommon/logger`)
26912691
- React-Mapbuffer (from `../../node_modules/react-native/ReactCommon`)
26922692
- React-microtasksnativemodule (from `../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks`)
2693-
- react-native-config (from `../node_modules/react-native-config`)
2694-
- react-native-encrypted-storage (from `../node_modules/react-native-encrypted-storage`)
2695-
- react-native-quick-base64 (from `../node_modules/react-native-quick-base64`)
2696-
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
2697-
- react-native-webview (from `../node_modules/react-native-webview`)
2693+
- react-native-config (from `../../node_modules/react-native-config`)
2694+
- react-native-encrypted-storage (from `../../node_modules/react-native-encrypted-storage`)
2695+
- react-native-quick-base64 (from `../../node_modules/react-native-quick-base64`)
2696+
- react-native-safe-area-context (from `../../node_modules/react-native-safe-area-context`)
2697+
- react-native-webview (from `../../node_modules/react-native-webview`)
26982698
- React-NativeModulesApple (from `../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
26992699
- React-oscompat (from `../../node_modules/react-native/ReactCommon/oscompat`)
27002700
- React-perflogger (from `../../node_modules/react-native/ReactCommon/reactperflogger`)
@@ -2726,12 +2726,12 @@ DEPENDENCIES:
27262726
- ReactAppDependencyProvider (from `build/generated/ios`)
27272727
- ReactCodegen (from `build/generated/ios`)
27282728
- ReactCommon/turbomodule/core (from `../../node_modules/react-native/ReactCommon`)
2729-
- "RNCMaskedView (from `../node_modules/@react-native-masked-view/masked-view`)"
2729+
- "RNCMaskedView (from `../../node_modules/@react-native-masked-view/masked-view`)"
27302730
- RNGestureHandler (from `../../node_modules/react-native-gesture-handler`)
2731-
- RNReanimated (from `../node_modules/react-native-reanimated`)
2732-
- RNScreens (from `../node_modules/react-native-screens`)
2731+
- RNReanimated (from `../../node_modules/react-native-reanimated`)
2732+
- RNScreens (from `../../node_modules/react-native-screens`)
27332733
- "RNShopifyCheckoutSheetKit (from `../../modules/@shopify/checkout-sheet-kit`)"
2734-
- RNVectorIcons (from `../node_modules/react-native-vector-icons`)
2734+
- RNVectorIcons (from `../../node_modules/react-native-vector-icons`)
27352735
- SocketRocket (~> 0.7.1)
27362736
- Yoga (from `../../node_modules/react-native/ReactCommon/yoga`)
27372737

@@ -2757,9 +2757,9 @@ EXTERNAL SOURCES:
27572757
:podspec: "../../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
27582758
:tag: hermes-2025-07-24-RNv0.80.2-5c7dbc0a78cb2d2a8bc81c41c617c3abecf209ff
27592759
NitroModules:
2760-
:path: "../node_modules/react-native-nitro-modules"
2760+
:path: "../../node_modules/react-native-nitro-modules"
27612761
QuickCrypto:
2762-
:path: "../node_modules/react-native-quick-crypto"
2762+
:path: "../../node_modules/react-native-quick-crypto"
27632763
RCT-Folly:
27642764
:podspec: "../../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
27652765
RCTDeprecation:
@@ -2827,15 +2827,15 @@ EXTERNAL SOURCES:
28272827
React-microtasksnativemodule:
28282828
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/microtasks"
28292829
react-native-config:
2830-
:path: "../node_modules/react-native-config"
2830+
:path: "../../node_modules/react-native-config"
28312831
react-native-encrypted-storage:
2832-
:path: "../node_modules/react-native-encrypted-storage"
2832+
:path: "../../node_modules/react-native-encrypted-storage"
28332833
react-native-quick-base64:
2834-
:path: "../node_modules/react-native-quick-base64"
2834+
:path: "../../node_modules/react-native-quick-base64"
28352835
react-native-safe-area-context:
2836-
:path: "../node_modules/react-native-safe-area-context"
2836+
:path: "../../node_modules/react-native-safe-area-context"
28372837
react-native-webview:
2838-
:path: "../node_modules/react-native-webview"
2838+
:path: "../../node_modules/react-native-webview"
28392839
React-NativeModulesApple:
28402840
:path: "../../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
28412841
React-oscompat:
@@ -2899,17 +2899,17 @@ EXTERNAL SOURCES:
28992899
ReactCommon:
29002900
:path: "../../node_modules/react-native/ReactCommon"
29012901
RNCMaskedView:
2902-
:path: "../node_modules/@react-native-masked-view/masked-view"
2902+
:path: "../../node_modules/@react-native-masked-view/masked-view"
29032903
RNGestureHandler:
29042904
:path: "../../node_modules/react-native-gesture-handler"
29052905
RNReanimated:
2906-
:path: "../node_modules/react-native-reanimated"
2906+
:path: "../../node_modules/react-native-reanimated"
29072907
RNScreens:
2908-
:path: "../node_modules/react-native-screens"
2908+
:path: "../../node_modules/react-native-screens"
29092909
RNShopifyCheckoutSheetKit:
29102910
:path: "../../modules/@shopify/checkout-sheet-kit"
29112911
RNVectorIcons:
2912-
:path: "../node_modules/react-native-vector-icons"
2912+
:path: "../../node_modules/react-native-vector-icons"
29132913
Yoga:
29142914
:path: "../../node_modules/react-native/ReactCommon/yoga"
29152915

@@ -2921,8 +2921,8 @@ SPEC CHECKSUMS:
29212921
fmt: a40bb5bd0294ea969aaaba240a927bd33d878cdd
29222922
glog: 5683914934d5b6e4240e497e0f4a3b42d1854183
29232923
hermes-engine: bbc1152da7d2d40f9e59c28acc6576fcf5d28e2a
2924-
NitroModules: 8935a8a663e760521ce52adf38038a8481ec2b8f
2925-
QuickCrypto: be031b34e1004b427bdaca1be5283a3288bf6ce4
2924+
NitroModules: 30c376f96874896e2ebf2ef16c5d84019c06d93b
2925+
QuickCrypto: b16c61795b9025ecb154671d5a08e386ed119a69
29262926
RCT-Folly: 846fda9475e61ec7bcbf8a3fe81edfcaeb090669
29272927
RCTDeprecation: 300c5eb91114d4339b0bb39505d0f4824d7299b7
29282928
RCTRequired: e0446b01093475b7082fbeee5d1ef4ad1fe20ac4
@@ -2959,8 +2959,8 @@ SPEC CHECKSUMS:
29592959
react-native-config: f1dde39f8468ad922fc7e8bd4308c8e6223d5ee8
29602960
react-native-encrypted-storage: 569d114e329b1c2c2d9f8c84bcdbe4478dda2258
29612961
react-native-quick-base64: 6568199bb2ac8e72ecdfdc73a230fbc5c1d3aac4
2962-
react-native-safe-area-context: 8ed800930eb7d0b6651218f69656e823d37b6ef7
2963-
react-native-webview: 38b7d49cbe748b6fa02381be0a097d3922caf94a
2962+
react-native-safe-area-context: 1792c367881ef3be64cc01df775c19c6d217a015
2963+
react-native-webview: a5f4076e4e0c1c84d8fe1ffe4ff720df685bbbcd
29642964
React-NativeModulesApple: 37c08c3c54db55854de816b0df0f3683832be35a
29652965
React-oscompat: 56d6de59f9ae95cd006a1c40be2cde83bc06a4e1
29662966
React-perflogger: 4008bd05a8b6c157b06608c0ea0b8bd5d9c5e6c9
@@ -2994,8 +2994,8 @@ SPEC CHECKSUMS:
29942994
ReactCommon: 592ef441605638b95e533653259254b4bd35ff4f
29952995
RNCMaskedView: 7e0ce15656772a939ff0d269100bca3a182163c8
29962996
RNGestureHandler: eeb622199ef1fb3a076243131095df1c797072f0
2997-
RNReanimated: 288616f9c66ff4b0911f3862ffcf4104482a2adc
2998-
RNScreens: 3fc29af06302e1f1c18a7829fe57cbc2c0259912
2997+
RNReanimated: 237d420b7bb4378ef1dacc7d7a5c674fddb4b5d2
2998+
RNScreens: 7769b3511c8c7245694295a8e9d8ebb93cb4975c
29992999
RNShopifyCheckoutSheetKit: 5587e0fc360607d832f7f10f8436883d1db4b5ef
30003000
RNVectorIcons: be4d047a76ad307ffe54732208fb0498fcb8477f
30013001
ShopifyCheckoutSheetKit: 5253ca4da4c4f31069286509693930d02b4150d8

0 commit comments

Comments
 (0)