Repository navigation
Releases: LalitMaganti/buildprof
Release list
Buildprof 0.2.8
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Fixed
- Builds no longer run with
SIGPIPEignored. Buildprof passed its own
ignoredSIGPIPEon to the command it recorded, so pipelines such as
sort | head -n 1printed "Broken pipe" errors instead of exiting quietly.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.7
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Fixed
--compiler-tracesno longer hangs when a compiler launcher such as ccache
is onPATH. The launcher works out which compiler to run by looking its
own name up onPATHagain, where it found Buildprof's wrapper, which
handed straight back to the launcher.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.6
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Added
- A GitHub Action that records builds, uploads traces, and adds elapsed time,
exit status, and a download link to the job summary, including failed builds. - A Nix flake with a package and development shell.
- Conformance coverage for npm, Bazel, and Buck2 builds.
Fixed
- Filesystem tracing now records legacy
opensyscalls on x86_64, including
those used by Alpine Linux builds inside containers.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.5
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Added
- Messages are coloured when they go to a terminal: errors red, hints yellow,
and paths, URLs, and commands highlighted.NO_COLORturns colour off and
CLICOLOR_FORCEturns it on for pipes. - The report printed after a recording is set apart from the build's output
and is shorter: a headline, the port forward and URL on their own lines
over SSH, the browser permission note, and the wait.
Fixed
--compiler-tracesnow collects nightly Rust self-profile data whenever
the build runs a nightly compiler, including throughcargo +nightlyor a
rust-toolchainfile. The nightly check used to look only at the default
toolchain at startup, so those recordings had no compiler tracks.
Changed
- The one-request server that hands a trace to the browser is now built on
tiny_http instead of hand-written HTTP parsing. - While the UI waits for a trace from this machine, a dialog explains the
browser prompt to access other apps and services on this device. The CLI,
README, and error dialogs name the site setting that re-allows it: "Apps on
device" in Chrome, "Access this device" in Firefox.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.4
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Changed
- The UI no longer probes localhost for a native Trace Processor when it
starts. Chrome asked for permission to access other apps and services on
the device for that probe before any trace was opened, and blocking it
silently broke loading traces from the CLI. - The CLI explains that Chrome permission prompt while it waits for the
browser to fetch a trace, and how to recover after blocking it. - When the UI fetches a trace from this machine, the loading page says to
allow that prompt. If the fetch fails, the error says whether Chrome is
blocking the site or nothing answered, and how to recover, instead of the
generic download error.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.3
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Added
--no-file-eventsrecords the process timeline without filesystem tracing,
reducing overhead for builds that open many files. Compiler tracing remains
independently selectable.- Recordings carry their collection settings. The UI indicates when file
events were not recorded and explains why file lists and dependency links
are unavailable. Older recordings continue to open.
Changed
- Event names and categories are written once per trace and referenced by id
from each event, instead of being repeated as strings on every event. Traces
are smaller and load faster; nothing changes in what the UI shows.
Install
Recording requires Linux. Existing recordings can be viewed on other
platforms in the web UI without installing Buildprof. Install on your Linux
build machine using whichever method you prefer:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.2
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Changed
- The UI no longer calls out a recorder that differs from it only in the
patch version; patch releases never change the trace format. - Release notes list the same install options as the README, followed by the
version's changelog section.
Fixed
.deband.rpmpackages for aarch64 are built on an arm64 runner instead
of failing the sanity check on x86_64.
Install
Recording requires Linux; the macOS build only opens traces. Use whichever of
these you already have:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.1
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Fixed
- The static musl builds compile again; the ptrace request type differs
between glibc and musl. - Releases are created as drafts titled
Buildprof <version>for review.
Publishing one triggers the UI deploy, the crates.io publish, and the
Linux packages, which a release published by automation never did.
Install
Recording requires Linux; the macOS build only opens traces. Use whichever of
these you already have:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Buildprof 0.2.0
Buildprof records every process a build starts and every file it opens, and shows the whole build on an interactive timeline in your browser.
Changes
Added
buildprof.versionandbuildprof.trace_formattrace attributes, visible
in Trace Processor'smetadatatable, so the UI can tell which recorder
wrote a trace.- SSH sessions print the
ssh -Lport forward to run from your own machine
instead of trying to launch a browser on the build host. --wait <SECONDS>bounds how long Buildprof waits for a browser to fetch a
trace (default 600; 0 waits forever).buildprof examplesandbuildprof open --example <NAME>open recordings
hosted next to the UI.- Clear messages when ptrace or seccomp is unavailable (Docker without
SYS_PTRACE, Yamaptrace_scope3, gVisor), when the command cannot be
executed, and when port 9001 is already taken. - Prebuilt binaries on GitHub Releases for x86_64 and aarch64 Linux (glibc
2.28 or newer, plus static musl builds) and for macOS, with a shell
installer, a Homebrew tap,.deband.rpmpackages, and mise support. - Every released UI is deployed permanently under
https://buildprof.lalitm.com/v<version>/; the CLI opens the UI matching
its own version and the UI links to the matching version when a trace was
recorded by a different release.
Changed
- Traces are now written as a single zstd stream, typically 9 to 20 times
smaller than before. The UI detects the compression from the file's magic
bytes and the.buildprofextension is unchanged. Querying a trace directly
needs a Trace Processor build from July 2026 or later; theperfettoPython
package's bundled build is older, so pass
TraceProcessorConfig(fetch_latest_trace_processor=True)for now. - Building from source now requires Rust 1.91.
Install
Recording requires Linux; the macOS build only opens traces. Use whichever of
these you already have:
Shell script
curl -fsSL https://buildprof.lalitm.com/install.sh | shHomebrew
brew install lalitmaganti/tap/buildprofmise
mise use -g github:LalitMaganti/buildprofDownloads
| File | Platform | Checksum |
|---|---|---|
| buildprof-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| buildprof-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| buildprof-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| buildprof-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
| buildprof-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| buildprof-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |