-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathmise.toml
More file actions
98 lines (83 loc) · 4.16 KB
/
Copy pathmise.toml
File metadata and controls
98 lines (83 loc) · 4.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Mise configuration for Estuary Flow development tasks
# See https://mise.jdx.dev for documentation
# Tool versions
[tools]
go = { version = "1.25" }
# `rust` is required, but installation via mise is incompatible with Swatim/rust-cache
"github:wasm-bindgen/wasm-pack" = { version = "0.13.1" }
"github:etcd-io/etcd" = { version = "3.5.24" }
"github:getsops/sops" = { version = "3.11.0", bin = "sops" }
"github:jdx/usage" = { version = "3.5.4" }
"github:mozilla/sccache" = { version = "0.12.0", platforms = { linux-arm64 = { asset_pattern = "sccache-v*-aarch64-unknown-linux-musl.tar.gz" }, linux-x64 = { asset_pattern = "sccache-v*-x86_64-unknown-linux-musl.tar.gz" }, macos-arm64 = { asset_pattern = "sccache-v*-aarch64-apple-darwin.tar.gz" } } }
"github:nextest-rs/nextest" = { version = "cargo-nextest-0.9.114" }
"github:rui314/mold" = { version = "2.40.4" }
"github:supabase/cli" = { version = "2.54.11" }
"go:github.com/gogo/protobuf/protoc-gen-gogo" = { version = "1.3.2" }
[settings]
auto_install = false
# Environment variables. Two [[env]] tables, resolved serially: the second
# table's templates can reference variables produced by the first — including
# those exported by `_.source` — which a single [env] table cannot do.
[[env]]
# Treat all warnings as errors, and link using the `mold` linker (faster).
RUSTFLAGS = "-D warnings -C link-arg=-fuse-ld=mold"
# Install RocksDB under .build/, and set environment vars so that
# crate librocksdb-sys links our pre-built version.
ROCKSDB_VERSION = "9.10.0"
ROCKSDB_LIB_DIR = "{{ env.HOME }}/rocksdb-{{ env.ROCKSDB_VERSION }}/lib"
ROCKSDB_INCLUDE_DIR = "{{ env.HOME }}/rocksdb-{{ env.ROCKSDB_VERSION }}/include"
# Snappy is required by RocksDB and must be statically linked.
# Map mise arch() values (x64, arm64) to Debian multiarch triplets (x86_64, aarch64).
SNAPPY_LIB_DIR = """
{% if os() == 'linux' %}\
{% if arch() == 'x64' %}/usr/lib/x86_64-linux-gnu\
{% elif arch() == 'arm64' %}/usr/lib/aarch64-linux-gnu\
{% endif %}\
{% elif os() == 'macos' %}/opt/homebrew/lib\
{% endif %}"""
SNAPPY_STATIC = "1"
# Allow the `jemallocator` crate to link against the system jemalloc library.
JEMALLOC_OVERRIDE = """
{% if os() == 'linux' %}\
{% if arch() == 'x64' %}/usr/lib/x86_64-linux-gnu\
{% elif arch() == 'arm64' %}/usr/lib/aarch64-linux-gnu\
{% endif %}\
{% elif os() == 'macos' %}/opt/homebrew/lib\
{% endif %}\
/libjemalloc.a\
"""
# CGO flags for Go code that uses our `bindings` crate via cgo,
# and must include & link against RocksDB and other dependents.
CGO_CFLAGS = """
-I {{ env.ROCKSDB_INCLUDE_DIR }} \
"""
CGO_CPPFLAGS = """
-I {{ env.ROCKSDB_INCLUDE_DIR }} \
"""
RUSTC_WRAPPER = "sccache"
# Place the Go build cache under ~/cargo-target so that inside VMs it lands on
# the compressed, deduplicated btrfs filesystem (see
# mise/tasks/bootstrap/cargo-target-fs). Go stores this cache uncompressed, so
# btrfs's single compression pass does real work on it.
#
# SCCACHE_DIR is deliberately NOT moved here. sccache already zstd-compresses
# every cache entry itself.
GOCACHE = "{{ env.HOME }}/cargo-target/.go-build"
# Resolve this checkout's local-stack identity (index, name, ports, paths) and
# make its FLOW_* / CARGO_TARGET_DIR / GOBIN / CGO_LDFLAGS variables ambient for
# everything run inside the checkout: mise tasks, CI, and bare `cargo build`,
# `supabase db reset`, and `psql` one-liners. CARGO_TARGET_DIR and CGO_LDFLAGS
# are deliberately NOT set as static [env] above — stack-env owns them so each
# worktree gets its own per-stack build target directory.
#
# `_.source` is placed last in this table so the sourced script observes the
# static values set above (ROCKSDB_LIB_DIR, etc.), and its exports take
# precedence. See mise/tasks/local/stack-env for the full contract.
_.source = "./mise/tasks/local/stack-env"
# Put this stack's built binaries (flowctl, gazette, flowctl-go, ...) on PATH,
# as the docs and stack card advertise. mise does not propagate PATH changes
# made by a sourced script, so this must be a `_.path` directive — and it must
# live in a second [[env]] table, where CARGO_TARGET_DIR / GOBIN (exported by
# `_.source` above) are visible to its templates.
[[env]]
_.path = ["{{ env.CARGO_TARGET_DIR }}/debug", "{{ env.GOBIN }}"]