-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathversions.env
More file actions
68 lines (62 loc) · 3.5 KB
/
Copy pathversions.env
File metadata and controls
68 lines (62 loc) · 3.5 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
# =============================================================================
# versions.env - Toolchain and native-dep pins for the VoLCA LCA engine
# =============================================================================
# Sourced by build.sh, build-mumps.sh, docker/Dockerfile and the CI workflows
# in .github/workflows/. Carries the Haskell, MUMPS and OpenBLAS pins this
# package needs to build reproducibly.
#
# Syntax: KEY=VALUE (no spaces around =, no quotes needed)
# Lines starting with # are comments
# =============================================================================
# MUMPS sequential solver (built from source by build-mumps.sh)
MUMPS_VERSION=5.9.0
# Bump this when build-mumps.sh changes (or to force a rebuild without
# changing MUMPS_VERSION). The CI workflow `prebuild-mumps.yml` writes its
# output to a GH Release tagged `mumps-prebuilt-${MUMPS_VERSION}-r${REV}`,
# and `_build-matrix.yml` downloads from that exact tag — so bumping this
# value forces every CI run to use the freshly-built archives.
MUMPS_PREBUILT_REVISION=5
# OpenBLAS (built from source when Linux + musl static linking — Alpine
# ships BLAS/LAPACK as shared libs only, so a static link can't resolve
# -llapack / -lblas. OpenBLAS bundles both into one libopenblas.a, fixing
# this with a single source build. Consumed by setup-haskell-env's Alpine
# branch and by docker/Dockerfile's musl runtime image.
OPENBLAS_VERSION=0.3.33
# Alpine base image — pinned at major.minor so the apk package set
# (musl, gcc, gfortran, …) the Dockerfile installs stays reproducible.
# Consumed by docker/Dockerfile (via --build-arg ALPINE_VERSION) and by
# the Linux matrix rows of prebuild-mumps.yml, prebuild-cabal-store.yml,
# _build-matrix.yml.
ALPINE_VERSION=3.23
# macOS deployment target — minimum macOS version the released binary
# will run on. Threaded into:
# * build.sh / build-mumps.sh / gen-cabal-config.sh as
# -mmacosx-version-min / -optl-mmacosx-version-min
# * the workflow-level MACOSX_DEPLOYMENT_TARGET env, which Homebrew /
# Apple toolchain tools also pick up automatically
# Bumping forces a rebuild of the macOS prebuilts (different target ABI).
MACOSX_DEPLOYMENT_TARGET=13.0
# Python — consumed by actions/setup-python in pyvolca.yml and
# pyvolca-release.yml. Matches the floor of pyvolca's pyproject.toml
# requires-python.
PYTHON_VERSION=3.12
# Build tool versions (exact versions for reproducible builds)
# These are checked at build start - mismatches are warnings, not errors
GHC_VERSION=9.12.4
# Fourmolu formatter — single source of truth for CI (format.yml), the
# .githooks/pre-commit hook, and Claude Code's PostToolUse auto-format.
# Bump in lockstep: fourmolu output changes between versions.
FOURMOLU_VERSION=0.19.0.1
# HLint linter — consumed by the hlint.yml CI gate (installs this exact
# version, then runs `hlint src app test`). Pinned so a new hlint release can't add
# a hint that reddens CI without a deliberate bump. Baselined exceptions
# live in .hlint.yaml.
HLINT_VERSION=3.5
# Bump this to force a cabal-store rebuild without changing volca.cabal /
# mumps-hs.cabal / cabal.project. The CI workflow `prebuild-cabal-store.yml`
# writes its output to a GH Release tagged
# `cabal-store-prebuilt-ghc${GHC_VERSION}-${HASH8}-r${CABAL_PREBUILT_REVISION}`
# (where HASH8 is the first 8 chars of sha256 of those three files, with
# volca.cabal's version/synopsis/description lines stripped so a release bump
# reuses the store), and `_build-matrix.yml` downloads from that exact tag.
CABAL_PREBUILT_REVISION=3