Skip to content

Releases: railwayapp/railpack

railpack v0.37.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 16:01
Immutable release. Only release title and notes can be modified.
ee7025b

Breaking Changes

  • Debian 13 base images: New builds now use Debian 13 (Trixie), requiring custom Apt package lists and pinned base images to be compatible with Debian 13. (#698)
  • GCC 14 native builds: Native gem and extension compilation now uses GCC 14, treating incompatible pointer types as errors and potentially requiring dependency updates or compiler flags. (#705)

CLI

New

  • Debian 13: Builder and runtime base images are now upgraded to Debian 13 (Trixie). Configure custom Apt packages with Debian 13 package names using RAILPACK_DEPLOY_APT_PACKAGES or deploy.aptPackages. by @iloveitaly in #698

Fixed

  • Debian 13: Builder images now include libicu-dev to ensure .NET restore and native gem compilation succeed on Debian 13, and Railpack warns during build planning when custom Apt packages are detected. by @iloveitaly in #705

Mise Upgrades

Updated mise from v2026.8.4 to v2026.8.6.

  • Resumable downloads: Interrupted artifact downloads now resume via HTTP Range requests, and transient network errors such as HTTP/2 stream refusals are automatically retried. (v2026.8.6)
  • Precompiled PyPy: PyPy can now be installed via precompiled binaries when compilation is disabled. (v2026.8.5)
  • Node source patching: Node source builds can now apply local or remote patches before configuration using node.apply_patches. (v2026.8.5)
  • Rust nightly toolchains: The rolling nightly channel resolves to concrete date-based toolchains for reproducible lockfiles and caching. (v2026.8.6)

Full Changelog: v0.36.4...v0.37.0


Internal improvements to documentation and dependency maintenance by @iloveitaly.

railpack v0.36.4

Choose a tag to compare

@github-actions github-actions released this 12 Aug 13:04
Immutable release. Only release title and notes can be modified.
bbbfdd1

What's Changed

  • chore: mise update 2026.8.4 by @github-actions[bot] in #689
  • fix: exit 75 for transient failures by @edganiukov in #690

New Contributors

Full Changelog: v0.36.3...v0.36.4

railpack v0.36.3

Choose a tag to compare

@github-actions github-actions released this 11 Aug 19:47
Immutable release. Only release title and notes can be modified.
2f38527

What's Changed

  • Revert "fix: support multiline environment values and inheritance" by @coffee-cup in #687
  • fix: drop empty env entries instead of keeping explicit empty values by @coffee-cup in #688

Full Changelog: v0.36.1...v0.36.3

railpack v0.36.2

Choose a tag to compare

@github-actions github-actions released this 11 Aug 19:21
Immutable release. Only release title and notes can be modified.

Full Changelog: v0.36.1...v0.36.2

railpack v0.36.1

Choose a tag to compare

@github-actions github-actions released this 11 Aug 17:33
Immutable release. Only release title and notes can be modified.
2c24c1a

What's Changed

  • feat(build): add RAILPACK_BUILT_AT runtime variable by @iloveitaly in #669
  • feat(cli): add show-plan flag to info command by @iloveitaly in #684
  • fix: support multiline environment values and inheritance by @iloveitaly in #685
  • fix(mise): enable safe mode when reading app config by @coffee-cup in #686

Full Changelog: v0.36.0...v0.36.1

railpack v0.36.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 20:13
Immutable release. Only release title and notes can be modified.
05ced98

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.

railpack v0.35.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 15:11
Immutable release. Only release title and notes can be modified.
03fddea

Providers

New

  • Node & Python: Playwright browser installation is now opt-in, preventing unexpected image-size increases. Set RAILPACK_NODE_PLAYWRIGHT_INSTALL=1 or RAILPACK_PYTHON_PLAYWRIGHT_INSTALL=1 when Playwright is a production dependency; see the Node and Python documentation. by @iloveitaly in #653

CLI

New

  • Mise: Updated mise version from v2026.7.14 to v2026.7.15.

Full Changelog: v0.34.0...v0.35.0


Internal improvements to documentation, dependencies, and refactoring by @iloveitaly.

railpack v0.34.0

Choose a tag to compare

@github-actions github-actions released this 27 Jul 17:01
Immutable release. Only release title and notes can be modified.
ce105ea

Providers

New

  • Node.js: npm projects now use npm install by default, preventing builds from failing when package-lock.json is missing or out of sync. Set RAILPACK_NODE_NPM_INSTALL="npm ci" to opt into deterministic installs; Railpack also suggests committing missing npm and pnpm lockfiles, as described in the dependency recommendations. by @iloveitaly in #643

CLI

New

  • Mise: Updated mise version from v2026.7.11 to v2026.7.14.

Full Changelog: v0.33.0...v0.34.0


Internal improvements to tests, snapshots, and dependency maintenance.

railpack v0.33.0

Choose a tag to compare

@github-actions github-actions released this 23 Jul 20:37
Immutable release. Only release title and notes can be modified.
11dc441

Providers

New

  • SvelteKit: Projects using @sveltejs/adapter-auto now automatically produce and run a Node server without manual adapter configuration. Keep @sveltejs/adapter-auto in your dependencies, and Railpack will select adapter-node during the build and start it with node build. by @iloveitaly in #641

Fixed

  • React Router: React Router SPA projects with ssr: false are now correctly detected and served as static sites, even when the default react-router-serve ./build/server/index.js start script is present. by @iloveitaly in #604

CLI

New

  • Apt Packages: Custom Apt package lists can now use the ... spread operator to retain packages generated by Railpack. Follow the package installation guide and configure "buildAptPackages": ["...", "build-essential"] or "deploy": { "aptPackages": ["...", "ffmpeg"] }; omit ... when you intentionally want to replace the generated list. by @iloveitaly in #645

Fixed

  • Mise: Railpack now uses musl-compatible mise binaries on Linux, fixing execution on Alpine and other musl-based hosts. by @iloveitaly in #642

Full Changelog: v0.32.0...v0.33.0


Internal improvements to integration testing, example coverage, logging, and documentation by @iloveitaly.

railpack v0.32.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 18:33
Immutable release. Only release title and notes can be modified.
01f9af7

Providers

New

  • Node: Railpack now supports Next.js applications in Nx workspaces, including projects that use inferred tasks instead of root build and start scripts. Single-app workspaces are selected automatically; for multi-app workspaces, select an app with RAILPACK_NX_APP=web railpack build .. by @iloveitaly in #606

Fixed

  • Node: Railpack now displays a build-plan warning when no package manager is detected and npm is selected by default. by @iloveitaly in #638

CLI

New

  • Mise: Updated mise version from v2026.7.7 to v2026.7.11.
  • Build Cache: The build command now supports --no-cache for rebuilding without cached layers while preserving package-manager cache mounts. Run railpack build --no-cache . to perform a fresh build. by @iloveitaly in #516
  • Build Output: Build progress and completion output is now easier to scan, with a distinct start header and a formatted summary containing the build duration and next command. by @iloveitaly in #640
  • Runtime Images: Runtime images now expose RAILPACK_VERSION, allowing applications and diagnostics to identify the Railpack version that produced the image. Access it through the RAILPACK_VERSION environment variable inside the running container. by @iloveitaly in #633

Full Changelog: v0.31.2...v0.32.0


Internal improvements to frontend integration testing, CI, documentation, and local development tooling by @iloveitaly.