Skip to content

Releases: LalitMaganti/buildprof

Buildprof 0.2.8

Choose a tag to compare

@github-actions github-actions released this 17 Oct 02:59
98a7aab

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 SIGPIPE ignored. Buildprof passed its own
    ignored SIGPIPE on to the command it recorded, so pipelines such as
    sort | head -n 1 printed "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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 16 Sep 14:42
5a695ed

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-traces no longer hangs when a compiler launcher such as ccache
    is on PATH. The launcher works out which compiler to run by looking its
    own name up on PATH again, 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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 13 Sep 20:42
765da9b

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 open syscalls 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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 11 Sep 15:43

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_COLOR turns colour off and
    CLICOLOR_FORCE turns 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-traces now collects nightly Rust self-profile data whenever
    the build runs a nightly compiler, including through cargo +nightly or a
    rust-toolchain file. 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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 11 Sep 12:34

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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 09 Sep 05:13

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-events records 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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 04 Sep 13:30

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

  • .deb and .rpm packages 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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 04 Sep 13:00

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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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

Choose a tag to compare

@github-actions github-actions released this 04 Sep 12:44

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.version and buildprof.trace_format trace attributes, visible
    in Trace Processor's metadata table, so the UI can tell which recorder
    wrote a trace.
  • SSH sessions print the ssh -L port 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 examples and buildprof open --example <NAME> open recordings
    hosted next to the UI.
  • Clear messages when ptrace or seccomp is unavailable (Docker without
    SYS_PTRACE, Yama ptrace_scope 3, 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, .deb and .rpm packages, 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 .buildprof extension is unchanged. Querying a trace directly
    needs a Trace Processor build from July 2026 or later; the perfetto Python
    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 | sh

Homebrew

brew install lalitmaganti/tap/buildprof

mise

mise use -g github:LalitMaganti/buildprof

Downloads

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