Repository navigation
burnup, the Burn version manager, written in Burn - #2
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
burnup is now a rustup-style version manager, written in Burn, that compiles to a ~700 KB native binary.
Versions
burnup install [version...]accepts a release (26.1means the newest 26.1.x;v26.1.0and^26.1also work),latest, a branch likemaster, or a commit.scripts/package.sh, reusing one cached clone so later builds are incremental.burnup default,burnup list,burnup list --remote,burnup uninstall.burnup updaterebuilds branch versions whose commit moved, points out a newer release, and updates ash.burnup link <name> <dir>adds a local build as a version.Shims and projects
~/.burn/bin/{burn,burni,burnc,burnfmt,burn-lsp,bvm}are small shims that runburnup proxy <tool>, which picks the active version. Each command costs about 2–3 ms extra.BURN_TOOLCHAIN, then the nearestburn.tomlwithburn = "…"in[package]or a.burn-versionfile, then the default. A pinned version that isn't installed yet is installed on first use.burnup pin <version>writes the pin intoburn.toml, or.burn-versionoutside a project.burnup showandburnup whichreport which version applies.burnup run <version> <cmd…>runs one command with another version.Setup
install.shis now a small bootstrap. It downloads a prebuilt burnup; otherwise it builds Burn once intotoolchains/<ref>and compiles burnup with it (falling back to the interpreter when native compilation isn't available). Then it runsburnup setup.burnup setup: picks or installs a default, writes the shims, builds ash into~/.burn/tools/github.com/burnlang/ash(the same placeash install -guses), and addsPATHlines to the shell profiles. It also replaces an installation made by the old installer.burnup self updatefetches a prebuilt burnup, or rebuilds it with the default Burn.burnup self uninstallremoves everything, including thePATHlines. It deletes all of~/.burnonly if burnup created it.Tests and CI
tests/main.bn.tests/e2e.shbuilds a local Burn git repo with tagsv1.0.0,v1.1.0andv2.0.0-beta, plusfile://release archives made from the real toolchain. It covers:latestresolving to the newest stable release, and prefix matching;which;burn.tomland in.burn-version, including subfolders;BURN_TOOLCHAIN,run, and auto-install of a pinned version that was uninstalled;list --remote,link, andself uninstall.ash initandash buildran, andself uninstallleft the home directory clean.burnup-linux-x86_64andburnup-macos-x86_64onv*tags.🤖 Generated with Claude Code
https://claude.ai/code/session_01PCXUjgpGnka9y7AHKfnN3w
Generated by Claude Code