railpack

Configure and troubleshoot Railpack builds, with emphasis on RAILPACK_* environment variables, railpack.json overlays, build-plan inspection, local CLI installation and usage, and local BuildKit containers. Use for Railpack provider configuration, custom install/build/start commands, Mise or Apt packages, build or runtime variables and secrets, generated-plan debugging, BUILDKIT_HOST errors, or running Railpack from a release or source checkout.

Install
npx skills add 'https://github.com/railwayapp/railpack/tree/main/.'
Incomplete bundle · no download
main · 21a254fScanned 2026-09-17

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

core/generate/mise_step_builder_test.go

core/generate/mise_step_builder_test.goBrowse 1970 files
View on GitHub
← Back to SKILL.md
package generate import (	"os"	"strings"	"testing" 	"github.com/railwayapp/railpack/core/resolver"	"github.com/stretchr/testify/require") func TestGetPackageVersions(t *testing.T) {	tempDir, err := os.MkdirTemp("", "mise-test")	if err != nil {		t.Fatalf("failed to create temp dir: %v", err)	}	defer func() { _ = os.RemoveAll(tempDir) }() 	ctx := CreateTestContext(t, "../../examples/python-uv-tool-versions") 	// Create a resolver	resolver, err := resolver.NewResolver(tempDir)	require.NoError(t, err) 	builder := &MiseStepBuilder{		Resolver: resolver,		app:      ctx.App,		env:      ctx.Env,	} 	packages, err := builder.GetMisePackageVersions(ctx)	require.NoError(t, err) 	// Expected packages from the example	expected := map[string]struct{}{		"python": {},		"uv":     {},	} 	// Ensure ONLY expected packages are present	require.Len(t, packages, len(expected), "unexpected number of packages returned")	for name := range packages {		_, ok := expected[name]		require.True(t, ok, "unexpected package found: %s", name)	} 	// The python-uv-tool-versions example should have python and uv defined	require.Contains(t, packages, "python")	require.Contains(t, packages, "uv") 	// Verify versions are not empty	require.NotEmpty(t, packages["python"].Version)	require.NotEmpty(t, packages["uv"].Version) 	// Verify python version starts with "3.9" (as defined in .tool-versions)	require.True(t, strings.HasPrefix(packages["python"].Version, "3.9")) 	// Verify uv version starts with "0.7" (as defined in .tool-versions)	require.True(t, strings.HasPrefix(packages["uv"].Version, "0.7")) 	// Verify source types are set	require.NotEmpty(t, packages["python"].Source)	require.NotEmpty(t, packages["uv"].Source)} func TestGetPackageVersionsWithNoToolVersions(t *testing.T) {	tempDir, err := os.MkdirTemp("", "mise-test")	if err != nil {		t.Fatalf("failed to create temp dir: %v", err)	}	defer func() { _ = os.RemoveAll(tempDir) }() 	ctx := CreateTestContext(t, "../../examples/node-tanstack-start") 	// Create a resolver	resolver, err := resolver.NewResolver(tempDir)	require.NoError(t, err) 	builder := &MiseStepBuilder{		Resolver: resolver,		app:      ctx.App,		env:      ctx.Env,	} 	packages, err := builder.GetMisePackageVersions(ctx)	require.NoError(t, err) 	// Should return empty map for directory with no .tool-versions	require.Empty(t, packages)}