]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
chore: replace volta with mise for toolchain management (#2143)
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 7 Oct 2026 15:50:13 +0000 (17:50 +0200)
committerGitHub <noreply@github.com>
Wed, 7 Oct 2026 15:50:13 +0000 (17:50 +0200)
* chore: replace volta with mise for toolchain management

Volta is unmaintained and its maintainers recommend mise. Declare node and
pnpm in .mise.toml, drop the per-package volta blocks, point the sea script at
mise which node and update the README setup instructions.

CI is unchanged: it already provisions node and pnpm through
actions/setup-node and pnpm/action-setup, and its node matrix must keep testing
several versions.

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
* chore: read mise toolchain versions from package.json

Follow poolifier#3334 without duplicating Node.js or pnpm pins. Keep explicitly selected runtimes through onFail ignore, and require a mise version verified to install the current pnpm release assets. Correct the Corepack setup instructions and ignore personal mise overrides and lockfiles.

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
* docs: keep development setup instructions focused on the project

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
---------

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
.gitignore
.mise.toml [new file with mode: 0644]
README.md
package.json
ui/cli/package.json
ui/common/package.json
ui/web/package.json

index 32df8163199dd9164972a3efab96b4fcf7893e13..b3319278c4b77d7f3a61db7ce9526e0a8b1460f2 100644 (file)
@@ -114,6 +114,16 @@ Thumbs.db
 *.mta
 mta_archives/
 
+# mise local overrides
+mise.local.toml
+mise.*.local.toml
+.mise.local.toml
+.mise.*.local.toml
+mise.local.lock
+mise.*.local.lock
+.mise.local.lock
+.mise.*.local.lock
+
 # pnpm
 package-lock.json
 
diff --git a/.mise.toml b/.mise.toml
new file mode 100644 (file)
index 0000000..4ec1d0f
--- /dev/null
@@ -0,0 +1,5 @@
+min_version = "2026.9.18"
+
+[settings]
+# Read development tool versions from package.json.
+idiomatic_version_file_enable_tools = ["node", "pnpm"]
index d2e7af126607f551e1463211a6a28cb5136a98fe..99182f474c688cbedfeafbaeee43448087652560 100644 (file)
--- a/README.md
+++ b/README.md
@@ -80,21 +80,21 @@ brew install node
 
 ### Development prerequisites (optional)
 
-Install [volta](https://volta.sh/) for managing automatically the node.js runtime and package manager version:
+Install [mise](https://mise.jdx.dev/) for managing automatically the node.js runtime and package manager version:
 
 #### Unix
 
 ```shell
-curl https://get.volta.sh | bash
+curl -fsSL https://mise.run | sh
 ```
 
 #### Windows
 
 ```powershell
-choco install -y volta
+winget install jdx.mise
 ```
 
-Setup [volta](https://volta.sh/) with [pnpm](https://github.com/pnpm/pnpm) package manager support: https://docs.volta.sh/advanced/pnpm
+Then [activate mise](https://mise.jdx.dev/getting-started.html#activate-mise) in your shell and run `mise install` from the repository root to install the development tools.
 
 ### Branching model
 
@@ -104,11 +104,11 @@ The `vX.Y` branches are the maintenance branches for the corresponding major and
 
 ### Dependencies
 
-Enable corepack, if [volta](https://volta.sh/) is not installed and configured, and install latest pnpm version:
+From the repository root, enable Corepack and install the pnpm version declared in `package.json` if [mise](https://mise.jdx.dev/) is not installed and configured. If Corepack is not available, install it with `npm install --global corepack` first.
 
 ```shell
 corepack enable
-corepack prepare pnpm@latest --activate
+corepack install
 ```
 
 In the repository root, run the following command:
index b84919e294c607bf7bf338c4aadbf53132a082a4..e6bdd71fcbbcc3d30beb29f7d4b52a8627ff56c6 100644 (file)
@@ -6,9 +6,12 @@
     "node": ">=22.0.0",
     "pnpm": ">=10.9.0"
   },
-  "volta": {
-    "node": "24.21.0",
-    "pnpm": "12.9.0"
+  "devEngines": {
+    "runtime": {
+      "name": "node",
+      "version": "24.21.0",
+      "onFail": "ignore"
+    }
   },
   "packageManager": "pnpm@12.9.0",
   "repository": {
@@ -69,7 +72,7 @@
     "test": "cross-env NODE_ENV=test node --import tsx --test --test-force-exit 'tests/**/*.test.ts'",
     "test:debug": "cross-env NODE_ENV=test node --import tsx --test --inspect 'tests/**/*.test.ts'",
     "test:coverage": "mkdir -p coverage && cross-env NODE_ENV=test node --import tsx --test --test-force-exit --experimental-test-coverage --test-coverage-include='src/**/*.ts' --test-reporter=lcov --test-reporter-destination=coverage/lcov.info 'tests/**/*.test.ts'",
-    "sea": "pnpm exec rimraf ./dist/evse-simulator ./dist/evse-simulator.blob && node --experimental-sea-config sea-config.json && pnpm dlx ncp $(volta which node || n which lts || nvm which node || command -v node) ./dist/evse-simulator && pnpm dlx postject ./dist/evse-simulator NODE_SEA_BLOB ./dist/evse-simulator.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 && pnpm exec rimraf ./dist/evse-simulator.blob"
+    "sea": "pnpm exec rimraf ./dist/evse-simulator ./dist/evse-simulator.blob && node --experimental-sea-config sea-config.json && pnpm dlx ncp $(mise which node || n which lts || nvm which node || command -v node) ./dist/evse-simulator && pnpm dlx postject ./dist/evse-simulator NODE_SEA_BLOB ./dist/evse-simulator.blob --sentinel-fuse NODE_SEA_FUSE_fce680ab2cc467b6e072b8b5df1996b2 && pnpm exec rimraf ./dist/evse-simulator.blob"
   },
   "dependencies": {
     "@mikro-orm/better-sqlite": "^6.6.14",
index d84807f73ba163fd4f414d771379486d4c3d4e84..0ee38d9407cc6cd13c41a1dd06575e84d38ff088 100644 (file)
@@ -6,10 +6,6 @@
     "node": ">=22.0.0",
     "pnpm": ">=10.9.0"
   },
-  "volta": {
-    "node": "24.21.0",
-    "pnpm": "12.9.0"
-  },
   "packageManager": "pnpm@12.9.0",
   "type": "module",
   "bin": {
index b6d8062695bb349a82e3f8e50e284799e074cfec..5c87a60888cd138716c1c5f012d9d16fc53a174f 100644 (file)
@@ -6,10 +6,6 @@
     "node": ">=22.0.0",
     "pnpm": ">=10.9.0"
   },
-  "volta": {
-    "node": "24.21.0",
-    "pnpm": "12.9.0"
-  },
   "packageManager": "pnpm@12.9.0",
   "type": "module",
   "exports": "./src/index.ts",
index 984ad487fbd336e24a04f892c705c0f87aa775cf..590084a9611a94c19e7e00b71325d0891a043c99 100644 (file)
@@ -7,10 +7,6 @@
     "node": ">=22.0.0",
     "pnpm": ">=10.9.0"
   },
-  "volta": {
-    "node": "24.21.0",
-    "pnpm": "12.9.0"
-  },
   "packageManager": "pnpm@12.9.0",
   "type": "module",
   "scripts": {