mirror of
https://github.com/coder/coder.git
synced 2026-09-01 14:53:15 +08:00
116 lines
5.2 KiB
TOML
116 lines
5.2 KiB
TOML
# Keep in lockstep with .github/actions/setup-mise/action.yml,
|
|
# .github/actions/setup-mise/checksums.toml, flake.nix,
|
|
# dogfood/coder/ubuntu-*/Dockerfile.base, and scripts/dogfood/mise-oci-wrapper.sh.
|
|
min_version = "2026.5.12"
|
|
|
|
[settings]
|
|
lockfile = true
|
|
|
|
[tools]
|
|
# Languages and runtimes.
|
|
bun = "1.2.15"
|
|
go = "1.26.5"
|
|
node = "22.19.0"
|
|
pnpm = "10.33.2"
|
|
|
|
# Codegen and proto toolchain.
|
|
"go:go.uber.org/mock/mockgen" = "v0.6.0"
|
|
"go:storj.io/drpc/cmd/protoc-gen-go-drpc" = "v0.0.34"
|
|
protoc = "23.4"
|
|
protoc-gen-go = "1.30.0"
|
|
|
|
# Go development tools.
|
|
"go:github.com/coder/paralleltestctx/cmd/paralleltestctx" = "v0.0.2"
|
|
"go:github.com/coder/whichtests" = "377b8dbf1cccae3b04b48bc8cfc2410813491414"
|
|
# Keep golangci-lint on the Go backend until we upgrade to a more recent
|
|
# version. The upstream precompiled binaries may be built with older Go versions
|
|
# (and older included versions of packages like go/ast) that can result in them
|
|
# being unable to lint code for our Go version. Upgrading to a new enough
|
|
# version should let us use the native mise backend and GitHub release binaries.
|
|
"go:github.com/golangci/golangci-lint/v2/cmd/golangci-lint" = "v2.0.2"
|
|
"go:github.com/golang-migrate/migrate/v4/cmd/migrate" = "v4.19.0"
|
|
"go:github.com/goreleaser/nfpm/v2/cmd/nfpm" = "v2.35.1"
|
|
"go:github.com/slsyy/mtimehash/cmd/mtimehash" = "v1.0.0"
|
|
"go:github.com/tc-hib/go-winres" = "v0.3.3"
|
|
"go:github.com/mikefarah/yq/v4" = "v4.44.3"
|
|
"go:github.com/quasilyte/go-ruleguard/cmd/ruleguard" = "v0.3.13"
|
|
"go:github.com/swaggo/swag/cmd/swag" = "v1.16.2"
|
|
"go:golang.org/x/tools/cmd/goimports" = "v0.41.0"
|
|
"go:golang.org/x/tools/gopls" = "v0.21.0"
|
|
"go:gotest.tools/gotestsum" = "v1.9.0"
|
|
"go:mvdan.cc/sh/v3/cmd/shfmt" = "v3.12.0"
|
|
|
|
# Infrastructure, release, and lint CLIs.
|
|
# Source build: no release (latest v1.7.12) carries rhysd/actionlint#651, which
|
|
# fixes a shellcheck-integration deadlock that hangs pre-commit hooks. Switch
|
|
# back to a released `actionlint = "1.7.x"` pin once the fix ships.
|
|
# A `[tool_alias]` would keep the short `actionlint` name, but `mise install
|
|
# --locked actionlint` then fails with "No lockfile URL found": go-backend tools
|
|
# record no URL in the lockfile, and aliasing makes `--locked` require one. Keep
|
|
# the full backend key here and at call sites. Consequence: `mise exec
|
|
# actionlint` resolves to the aqua release, so always use the full key.
|
|
"go:github.com/rhysd/actionlint/cmd/actionlint" = "011a6d15e749bb3f2d771eed9c7aa0e7e3e10ee7"
|
|
"aqua:ahmetb/kubectx/kubens" = "0.9.4"
|
|
cosign = "2.4.3"
|
|
# crane is the registry client `mise oci push` shells out to. Sourced
|
|
# here so it travels with the rest of the mise toolset (one source of
|
|
# truth, deterministic version, no apt drift across CI / wrapper).
|
|
crane = "0.21.6"
|
|
helm = "3.21.0"
|
|
kubectx = "0.9.4"
|
|
syft = "1.26.1"
|
|
terraform = "1.15.5"
|
|
zizmor = "1.11.0"
|
|
|
|
# Developer-environment niceties for the dogfood image. Non-dogfood
|
|
# users who run `mise install` here will pull these too; they are
|
|
# small, optional conveniences, and mise does nothing without the
|
|
# user's explicit `mise install` invocation.
|
|
#
|
|
# `gh` is intentionally absent from this manifest: the dogfood
|
|
# image ships a wrapper at /usr/local/bin/gh that bridges
|
|
# `coder external-auth` into `gh`, and a mise shim earlier in
|
|
# PATH would bypass it.
|
|
"aqua:crate-ci/typos" = "1.46.1"
|
|
"aqua:errata-ai/vale" = "3.7.1"
|
|
"aqua:jj-vcs/jj" = "0.41.0"
|
|
"aqua:watchexec/watchexec" = "2.5.1"
|
|
doctl = "1.158.0"
|
|
lazygit = "0.61.1"
|
|
|
|
# Pre-installs the binary so the upstream devcontainers-cli coder
|
|
# module's `command -v devcontainer` short-circuit fires
|
|
"npm:@devcontainers/cli" = "0.87.0"
|
|
# Vercel CLI for deploying/previewing projects from dogfood workspaces.
|
|
# Restricted to Linux/macOS because mise installs this through `npm:vercel`,
|
|
# which spawns `node install.js` from cmd.exe on Windows. mise's `node` lives
|
|
# only in the shim dir at install time, so `node` is not on PATH and the
|
|
# install fails with `'node' is not recognized` (coder/internal#1596). The
|
|
# CLI is only needed in dogfood workspaces, which are Linux.
|
|
vercel = { version = "54.14.0", os = ["linux", "macos"] }
|
|
# weekly-docs uses this pinned Puppeteer browser installer to install Chrome for
|
|
# action-linkspector without resolving mutable npm metadata at runtime.
|
|
"npm:@puppeteer/browsers" = "2.13.0"
|
|
|
|
# sqlc (coder fork) bundles sqlite via cgo, so the `go install` build
|
|
# needs CGO_ENABLED=1. Scope it with `install_env` so it only applies
|
|
# during install. A top-level `[env]` would re-export CGO_ENABLED=1
|
|
# through every mise shim at runtime and break cross-compilation of
|
|
# coderd (scripts/build_go.sh expects cgo=0 for slim builds).
|
|
[tools."go:github.com/coder/sqlc/cmd/sqlc"]
|
|
version = "337309bfb9524f38466a5090e310040fc7af0203"
|
|
install_env = { CGO_ENABLED = "1" }
|
|
|
|
# Consumed by `mise oci build` to produce the dogfood image on top of
|
|
# ghcr.io/coder/oss-dogfood-base. The `from` and `--tag` fields are
|
|
# overridden by CLI args at build time per distro; `mount_point`,
|
|
# `user`, and `workdir` always apply.
|
|
#
|
|
# mount_point MUST match the path the base image reserves and exposes
|
|
# via `MISE_SHARED_INSTALL_DIRS`. Both Dockerfile.base files hardcode
|
|
# /opt/mise/data in their `install --directory`, ENV, and PATH lines.
|
|
[oci]
|
|
mount_point = "/opt/mise/data"
|
|
user = "coder"
|
|
workdir = "/home/coder"
|