Skip to content

fix: bump railpack to v0.36.4 so Vite server apps deploy - #5

Merged
tjholm merged 3 commits into
mainfrom
jye/nit-1655-bump-railpack
Aug 14, 2026
Merged

fix: bump railpack to v0.36.4 so Vite server apps deploy#5
tjholm merged 3 commits into
mainfrom
jye/nit-1655-bump-railpack

Conversation

@jyecusch

@jyecusch jyecusch commented Aug 14, 2026

Copy link
Copy Markdown
Member

TanStack Start apps failed to deploy with "/app/dist": not found — detection saw Vite, concluded static site, and looked for a dist the app never produces. TanStack Start detection landed upstream in railpack v0.36.0, thirteen minor versions ahead of the v0.23.0 we vendored.

  • railpack v0.23.0 → v0.36.4 (pulls moby/buildkit v0.28.1 → v0.32.2)
  • NewBuildGraph gained a noCache arg, wired to BuildKit's no-cache opt, so --no-cache now reaches the build graph
  • GenerateBuildPlan now returns an error for transient failures only (mise unreachable); those are reported differently from a deterministic planning failure
  • RAILPACK_VERSION is read from build info instead of a constant, so it cannot disagree with go.mod
  • the plan step now states the static-site assumption and how to override it, before the build that would fail on it
  • dependabot gives railpack its own weekly PR rather than burying detection fixes in a grouped bump

Verified locally against TanStack Start fixtures: with a start script → node .output/server/index.mjs; without one (the @tanstack/cli scaffold) → npx srvx --prod -s ../client dist/server/server.js, which v0.23.0 could not do at all. Plain Vite still plans as a static site. Those fixtures aren't committed — framework detection is railpack's to test; the tests here cover our own handling of the plan it produces.

Not verified end-to-end through BuildKit: make dry-run doesn't work on macOS (buildkitd dies with chmod /run/buildkit/buildkitd.sock: invalid argument on the bind-mounted socket, and buildctl isn't installed). Pre-existing and unrelated; worth its own issue. Worth deploying something real against ghcr.io/nitrictech/sugapack:pr-5 before merge.

Closes NIT-1655. Also covers NIT-1230, whose closed #3 hand-rolled the detection upstream now does.

TanStack Start apps failed with `"/app/dist": not found`: detection saw
Vite, concluded static site, and looked for a dist the app never produces.
TanStack Start detection landed upstream in railpack v0.36.0, thirteen
minor versions ahead of the v0.23.0 we vendored.

- railpack v0.23.0 -> v0.36.4 (moby/buildkit v0.28.1 -> v0.32.2 with it)
- NewBuildGraph gained a noCache arg, so --no-cache now reaches the graph
- GenerateBuildPlan now returns an error for transient failures only;
  report those differently from a deterministic planning failure
- RAILPACK_VERSION is read from build info, so it cannot disagree with go.mod
- the plan step now states the static-site assumption and how to override
  it, before the build that would fail on it
- dependabot gives railpack its own weekly PR rather than a grouped bump
- detection tests over TanStack Start (with and without a start script)
  and plain Vite fixtures

Closes NIT-1655. Also covers NIT-1230, whose closed PR #3 hand-rolled the
detection upstream now does.
Framework detection is railpack's to test. Keep the tests covering our own
handling of the plan it produces: the static-site warning, the output dirs
it names, and the version we report.

@tjholm tjholm left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd remove the additional log out from the output and move into a separate change or look at the PR for provenance logging, and update the logging there

Comment thread planner.go Outdated
Per review: the version bump should land on its own, and node-specific
guidance does not belong in the hot path for every build. The warning is
better placed alongside package analysis that can name the framework it
actually found.
@tjholm
tjholm merged commit 0586add into main Aug 14, 2026
3 checks passed
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.

4 participants