Michael BiancoandGitHub f99b48a960 feat(node): support package.json5 manifests (#566)
* feat(node): add support for package.json5

- introduce findPackageManifest to prioritize package.json over package.json5
- update dependency detection and installation logic to include package.json5
- ensure local file detection and workspace parsing support the new manifest format

Generated-by: aiautocommit

* feat(example): add node-pnpm-json5 project

* Add a new example project to demonstrate native pnpm support for package.json5 manifests.
* Include a test configuration to verify environment detection and CLI version reporting.

Generated-by: aiautocommit

* chore: bump node and pnpm versions in json5 example

Generated-by: aiautocommit

* test: add build plan snapshot for pnpm-json5 project

Generated-by: aiautocommit

* test: update snapshots

* chore(examples): update engine versions and test expectations

Generated-by: aiautocommit

* chore(deps): update pnpm-lock.yaml

Generated-by: aiautocommit

* docs: update mise configuration documentation and add package resolution notes

* Update the `install_before` setting name to `minimum_release_age` to match current configuration.
* Add clarification on how Railpack handles semver constraints from manifest files by simplifying ranges to major versions.

Generated-by: aiautocommit

* feat(example): log pnpm version in pnpm workspaces example

- Add checks for pnpm version via npm_config_user_agent and the pnpm CLI.
- Update test expectations to verify pnpm version reporting.

Generated-by: aiautocommit

* feat(node): support more pnpm lockfile version mapping

- Add support for pnpm lockfile versions 6.1 and 9.0 to ensure correct tool version detection.
- Refactor the lockfile version check into a switch statement to improve readability and maintainability.
- Add logging for cases where the pnpm lockfile version cannot be identified.

Generated-by: aiautocommit

* test(node): add tests for pnpm version resolution logic

- Verify that pnpm versions are correctly derived from pnpm-lock.yaml versioning.
- Ensure proper precedence hierarchy between lockfile, engines, and packageManager fields.

Generated-by: aiautocommit

* docs: move mise installation instruction to workflow section

Generated-by: aiautocommit

* fix(node): ensure engines.pnpm overrides lockfile version inference

- Reprioritize pnpm version resolution to prefer `engines` over lockfile-based inference.
- Lockfile version parsing can be ambiguous across major versions, whereas `engines` provides an explicit developer intent.

Generated-by: aiautocommit
2026-05-30 13:12:36 +02:00
2026-05-29 14:40:00 +02:00
2026-05-29 14:40:00 +02:00
2026-05-29 14:40:00 +02:00
2025-02-10 13:26:33 -07:00
2026-03-16 20:26:16 -06:00
2026-05-29 14:40:00 +02:00
2026-05-29 14:40:00 +02:00
2026-03-13 08:47:35 -06:00

Railpack

CI Run Tests

Railpack is a tool for building images from source code with minimal configuration. It is the successor to Nixpacks and incorporates many of the learnings from running Nixpacks in production at Railway for several years.

Getting Started

# Install mise & railpack
curl -sSL https://mise.run | sh
mise install github:railwayapp/railpack@latest

# start BuildKit container & let railpack know about it
docker run --rm --privileged -d --name buildkit moby/buildkit
export BUILDKIT_HOST='docker-container://buildkit'

# create a Next.js app
npm create next-app@latest my-app
cd my-app

# build and run the app!
railpack build .
docker run -p 3000:3000 -it my-app

Railpack automatically detects the project type (Next.js, in this case, but many languages & frameworks are supported!) and generates an optimized container image.

Note: The above steps are for running Railpack locally to experiment and test. If you deploy on Railway, Railpack runs automatically when you push changes to your repository.

Documentation

Full documentation for both operators (platforms, like Railway) and users (developers using Railpack to build their applications) is available at railpack.com.

Contributing

Railpack is open source and open to contributions. See the CONTRIBUTING.md file for more information.

S
Description
Zero-config BuildKit gateway frontend for the Hanzo build fabric
Readme MIT
24 MiB
Languages
Go 90.8%
Shell 6.5%
Python 1.4%
Dockerfile 0.7%
TypeScript 0.6%