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
14 changes: 12 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:24
FROM mcr.microsoft.com/devcontainers/base:ubuntu

RUN npm install -g pnpm
# Install mise for toolchain management (node, pnpm, etc.)
RUN curl https://mise.run | MISE_INSTALL_PATH=/usr/local/bin/mise sh \
&& echo 'eval "$(/usr/local/bin/mise activate bash)"' >> /home/vscode/.bashrc \
&& echo 'eval "$(/usr/local/bin/mise activate zsh)"' >> /home/vscode/.zshrc

# Pre-install all toolchain versions pinned in mise.toml/mise.lock into the image
COPY mise.toml mise.lock /tmp/mise-setup/
RUN chown -R vscode:vscode /tmp/mise-setup
USER vscode
RUN cd /tmp/mise-setup && mise trust && mise install
USER root
4 changes: 3 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{
"name": "Standard",
"build": {
"dockerfile": "Dockerfile"
"dockerfile": "Dockerfile",
"context": ".."
},
"postCreateCommand": "mise trust && pnpm install",
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
Expand Down
28 changes: 26 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,37 @@ This section goes over the setup of the repo for development.

## Repo setup

- Install [Node.js](https://nodejs.org/) 24 LTS
- Install [pnpm](https://pnpm.io/)
You need [Node.js](https://nodejs.org/) and [pnpm](https://pnpm.io/). Pick
whichever of the following options you prefer to install them.

### Option 1: Use mise (recommended)

[mise](https://mise.jdx.dev/getting-started.html) installs the repository's
development tools consistently across platforms. Install mise and
[activate it for your shell](https://mise.jdx.dev/getting-started.html#activate-mise),
then, from the repository root, run:

```bash
mise install
```

This installs the exact tool versions recorded in `mise.toml` and `mise.lock`
(Node.js and pnpm).

### Option 2: Install the tools yourself

If you prefer to manage tools yourself (or use another version manager), just
install [Node.js](https://nodejs.org/). We support all active
[Node.js LTS](https://nodejs.org/en/about/previous-releases) versions, so any of
them works. pnpm self-manages its version from the `packageManager` field in
`package.json`, so you only need to install pnpm itself:

```bash
npm install -g pnpm
```

### Install and build

- Install dependencies

```bash
Expand Down
73 changes: 73 additions & 0 deletions mise.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[tools]
node = "26"

[settings]
idiomatic_version_file_enable_tools = ["pnpm"]
Loading