mirror of
https://github.com/ComposioHQ/composio.git
synced 2026-09-22 11:46:35 +08:00
07160d14fa
## Summary This PR starts Phase 1 of PLEN-1368 by adding `mise.toml` as the repo-owned source for the primary toolchain versions: - Node `20.20.2` - Bun `1.3.10` - Deno `2.6.7` - Python `3.12` - uv `0.8.19` It also keeps pnpm corepack-driven through `package.json#packageManager`, adds `devEngines` for Node/pnpm visibility, documents the new `mise install && corepack enable && pnpm install` bootstrap path, ignores `.mise.local.toml`, and fixes stale release-doc prerequisites. ## Why The repo already has real toolchain drift, not just duplicated version strings. The internal release docs had stale Node/Bun/pnpm versions, Deno is repeated across workflows, Dockerfiles, docs, and e2e helpers, and Python local setup still has a separate `3.11` venv path while the repo pins `3.12`. A composite-action cleanup would improve CI, but it would not solve local development. `mise.toml` gives us one file that declares the versions and lets contributors install or switch them with one command. That is the main value proposition here: make the repo declare its own toolchain, then let CI consume the same declaration in the next phase. ## Rollout This is deliberately additive. It does not remove `.nvmrc`, `.bun-version`, `.python-version`, or `.dvmrc`, and it does not change CI behavior yet. Contributors who do not use mise can keep working as before; contributors who do use mise get managed Node/Bun/Deno/Python/uv immediately. Phase 2 can migrate the existing composite actions to `jdx/mise-action@v4`. Phase 3 can remove the legacy version files and add the lockfile once the transition is complete. ## Out of Scope - Migrating CI to `jdx/mise-action@v4` - Removing legacy version files - Adding `mise.lock` - Updating nested TS package/example `packageManager` fields that still say `pnpm@10.28.0`; that is pre-existing metadata drift and should be handled separately to avoid broadening Phase 1 ## Verification - `git diff --check origin/next...HEAD` - `mise install && mise current` - `pnpm --version` -> `10.28.2` - `pnpm dlx prettier@3.8.1 --check package.json` Refs: PLEN-1368
31 lines
1.2 KiB
TOML
31 lines
1.2 KiB
TOML
# Single source of truth for Node, Bun, Deno, Python, and uv versions.
|
|
#
|
|
# Local dev: `mise install` (after `brew install mise` / `winget install jdx.mise` / `curl https://mise.run | sh`)
|
|
# CI: driven by `jdx/mise-action@v4` in the composite actions under `.github/actions/`
|
|
#
|
|
# pnpm is intentionally NOT pinned here. Pattern A (corepack-driven) is in effect:
|
|
# the version comes from `packageManager` in `package.json` and corepack shims it.
|
|
# See https://github.com/jdx/mise/discussions/7622 for why pinning pnpm in [tools] can shadow corepack.
|
|
|
|
min_version = "2026.1.0"
|
|
|
|
[tools]
|
|
node = "20.20.2"
|
|
bun = "1.3.10"
|
|
deno = "2.6.7"
|
|
python = "3.12"
|
|
uv = "0.8.19"
|
|
|
|
[env]
|
|
_.path = ["{{config_root}}/node_modules/.bin"]
|
|
|
|
[settings]
|
|
# Read .nvmrc / .python-version / .bun-version during the transition window.
|
|
# Removed in Phase 3 once the legacy files are deleted.
|
|
idiomatic_version_file_enable_tools = ["node", "python", "bun"]
|
|
|
|
# uv integration: mise installs Python, uv owns the venv.
|
|
# "source" activates an existing .venv when entering the repo;
|
|
# use "create|source" if you want mise to also create the venv automatically.
|
|
python.uv_venv_auto = "source"
|