github railwayapp/railpack v0.36.0
railpack v0.36.0

3 hours ago

Providers

New

  • Node: TanStack Start apps are detected via @tanstack/react-start and are no longer treated as static Vite SPAs. If no start script is defined, Railpack installs srvx and starts with srvx --prod -s ../client dist/server/server.js; for production Node deploys, configure Nitro per TanStack's hosting guidance. by @iloveitaly in #672
  • Node: the default Node version is now lts instead of a fixed major, and non-semver aliases such as lts resolve correctly through mise. Pin a version with RAILPACK_NODE_VERSION, engines.node, or a version file as described in the Node versions docs. by @iloveitaly in #650
  • Node: projects with a package-lock.json are detected as npm when no other package manager is configured. Prefer pinning Node and package manager versions for reproducible builds; see the dependency recommendations. by @iloveitaly in #677
  • Rust: rust-toolchain.toml is honored as an idiomatic version file (including channel, profile, components, and targets). Add a root rust-toolchain.toml such as channel = "1.85.0" and Railpack will install that toolchain via mise. by @iloveitaly in #676
  • .NET: global.json is honored as an idiomatic version file so sdk.version selects the .NET SDK. Add a root global.json such as { "sdk": { "version": "8.0.100" } } to pin the SDK. by @iloveitaly in #675

CLI

New

  • Build context: .dockerignore patterns (and top-level exclude in railpack.json) are applied when the local source is first loaded into BuildKit, so large ignored directories like node_modules are no longer transferred during local builds. Configure exclusions in .dockerignore or via top-level exclude in railpack.json. by @iloveitaly in #373

Fixed

  • Config: explicit deploy.inputs with include filters are no longer overridden by an implicit full-step deploy output, preserving selections such as Next.js standalone output. by @radiantjade in #562
  • Secrets: CLI --env secrets are preserved when a config file also defines secrets, instead of being dropped. by @cadeljones in #460

Mise Upgrades

Updated mise from v2026.7.15 to v2026.8.3.

  • Precompiled Ruby: when ruby.compile is unset, mise installs precompiled Ruby binaries by default and falls back to source builds only when no binary is available. (v2026.8.0)
  • Release-age filters: minimum_release_age and related filters use GitHub's published_at timestamp so newly published releases of older commits no longer bypass age gates across Aqua, GitHub, Ubi, and related backends. (v2026.8.3)
  • npm lockfile installs: packages pinned in mise.lock are trusted through the low-download popularity gate, so locked npm tool installs no longer require allow_low_downloads. (v2026.7.16)
  • Idiomatic version files: disable individual idiomatic files per tool with idiomatic_version_file_disable_files (for example node:package.json) while keeping others active. (v2026.7.17)

Full Changelog: v0.35.0...v0.36.0


Internal improvements to testing, documentation, CI, and maintenance by @iloveitaly.

Don't miss a new railpack release

NewReleases is sending notifications on new releases.