Skip to content

chore: repin toolchain and fix asset setup on fresh machines - #107

Merged
aalvaropc merged 1 commit into
mainfrom
chore/repin-toolchain
Aug 13, 2026
Merged

chore: repin toolchain and fix asset setup on fresh machines#107
aalvaropc merged 1 commit into
mainfrom
chore/repin-toolchain

Conversation

@aalvaropc

Copy link
Copy Markdown
Owner

What changed

  • Repin .tool-versions to erlang 27.1.2 and nodejs 22.23.2 (latest Node 22 LTS patch), keeping elixir 1.17.3-otp-27.
  • Align the Dockerfile builder image (hexpm/elixir:1.17.3-erlang-27.1.2-...) and CI OTP_VERSION with the same Erlang patch release.
  • Add npm ci to the assets.setup mix alias so mix setup installs the JS dependencies (CodeMirror, Chart.js, SortableJS) needed by assets.build.
  • Remove assets/tsconfig.json, an orphan config with no TypeScript sources in the project.

Why

The exact pins erlang 27.1 and nodejs 22.20.0 are no longer installable via asdf, so mix did not even run on a freshly provisioned machine. While reviving the project, make setup also failed on a fresh clone because nothing ever ran npm ci locally (only the Dockerfile did), breaking esbuild bundling with unresolved @codemirror/* imports. This PR makes local, CI, and release builds converge on one toolchain and makes make setup work end to end from a clean checkout.

How to test

asdf install        # picks up the new pins
make setup          # Docker DBs + deps + migrations + assets, from clean
mix precommit       # compile --warnings-as-errors + format + credo --strict + tests
make test.integration
docker build -t onesqlx:test .

All green locally: 638 tests + 10 properties (0 failures), integration suite against both Postgres containers, and the production image builds successfully.

Pin erlang 27.1.2 and nodejs 22.23.2 in .tool-versions (the previous
exact pins 27.1 / 22.20.0 are no longer installable via asdf), and
align the Dockerfile builder image and CI OTP_VERSION with the same
Erlang patch release so local, CI, and release builds use one toolchain.

Add `npm ci` to the assets.setup alias: mix setup only installed the
tailwind/esbuild binaries, so a fresh clone failed at assets.build with
unresolved CodeMirror imports.

Remove assets/tsconfig.json, orphan config with no TypeScript sources.
@aalvaropc
aalvaropc merged commit df456a5 into main Aug 13, 2026
2 checks passed
@aalvaropc
aalvaropc deleted the chore/repin-toolchain branch August 13, 2026 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant