Skip to content

Release 1.6.6

Latest

Choose a tag to compare

@aehlig aehlig released this 25 Jul 10:12

Bug fixes on top of 1.6.5.

Fixes

  • Explicit TREE targets now correctly provide the empty
    map (before they used to have none which was not a map
    as required, preventing use in contexts where provided values
    are accessed).
  • Archive extraction now correctly rebases hardlink target paths onto
    the destination directory. Before, only the entry's own path was
    rebased, so hardlink entries still pointed at the original path from
    the archive, causing extraction to fail whenever the destination
    differed from the archive's own root.

Release notes for 1.6.5 (2026-04-08)

Bug fixes on top of 1.6.4.

Fixes

  • just execute now allows, as demanded by the protocol, instance
    names having an arbitrary number of segments, possibly none.
  • just execute now adds at startup the empty blob to CAS thus
    fulfilling the assumption by some build tools that the empty blob
    can always be referenced without ever uploading it.
  • The value of the instance_name for the remote-execution endpoint
    can be set now using the option --remote-instance-name, instead
    of using the hard-coded value "remote-execution". Also, the
    default value has been set to "" which is the more common
    default; use said option to restore previous behaviour.

Release notes for 1.6.4 (2026-02-14)

Bug fixes on top of 1.6.3.

Fixes

  • Overlaying the empty list of trees now returns the empty tree
    instead of causing a segmentation fault.
  • just-mr no longer crashes if the empty string is specified as
    path for a "file" repository; instead it treats it as ".".
  • Improved documentation.

Release notes for 1.6.3 (2025-08-11)

Bug fixes on top of 1.6.2.

Fixes

  • In compatible mode, just now properly handles symbolic links that
    occur in output directories or as explicit outputs. The problem was
    that the default remote-execution protocol (which is used in
    compatible mode) does not require the remote endpoint to store
    symbolic links explicitly as blobs in CAS, while just internally
    does exactly that and is assuming symbolic links being available in
    CAS. This fix now uploads any symbolic link that is received over the
    network (e.g., as part of a Directory message) in compatible mode as
    separate blob to the remote CAS.

Release notes for 1.6.2 (2025-07-30)

Bug fixes on top of 1.6.1.

Fixes

  • just serve can now also work with a compatible remote-execution
    service that relies on the length field of digests being set
    correctly (as requested by the protocol). Previously, some blobs
    were requested by correct hash but with size set to 0. To keep
    everything backwards compatible (both, when only serve or only
    just gets updated), the ServeTargetRequest of the internal
    serve protocol was extended by a new field where the client can
    send a list of full blob digests asking the server to download
    those before handling the request.
  • If serve reports an error, the full digest of the error-log
    blob (including size) is shown to the user and not only the
    hash. This allows inspection of the error log, even if a strict
    compatible remote execution is used.

Release notes for 1.6.1 (2025-07-16)

Bug fixes on top of 1.6.0.

Fixes

  • just now follows the protocol for blob splitting/splicing that was
    standardized in bazelbuild/remote-apis#282
    Before, this used to be just-specific extension.
  • Fixed missing mandatory locking point of the Git cache in a
    just serve service.
  • just-mr now correctly maintains also the Git cache lock when
    calling just if repository configuration was involved,
    preventing any unwanted intermediary repository garbage collection.
  • The invocation server now correctly reports the total number of
    uncached actions.
  • Allow colons present in remote execution properties.
  • Improvements to the documentation.

Note for package maintainers

The dependency on the remote-execution API has been changed to
require a newer version. As this is often provided as a separate
source archive, this might require additional changes.

Release notes for 1.6.0 (2025-06-27)

A feature release on top of 1.5.0, backwards compatible.

New features

  • just-mr now supports logging of each invocation by setting
    an appropriate configuration in the rc-file. Together with
    the newly-added option --profile of just this can be used
    to gather statistics on build times, cache hit rates, as well as
    their evolution over time.
  • Computing a tree as overlays of other trees was added as a new
    in-memory action.
  • The expression language has been extended to contain new
    built-in functions "zip_with", "zip_map".

Other changes

  • The exit code 1 now strictly refers to build failure due to a
    failing build action. Syntactical errors invoking the tool, as
    well as errors during analysis now return separate exit codes.

Fixes

  • just execute and just serve now create their pid and info
    files atomically; so waiting processes can assume the content
    to be available as soon as the requested file appears on the
    file system.
  • just serve now fetches trees from remote execution in parallel
    and through its local CAS; this fixes a performance issue.
  • A bug was fixed that could cause the number of threads being
    the square of what was specified during backing up artifacts of
    export targets after build.
  • just-mr now also considers computed roots (as no-op) when
    reporting progress.
  • The "generic" rule now properly detects staging conflicts, taking
    the full inputs into account (and not only the runfiles).
  • Illegitimate symlinks in explicit source-tree references are now
    rejected reliably.
  • An incorrect error handling in the evaluation of computed roots was fixed.
  • just execute: Symlinks to directories and files are properly
    distinguished as requested by the remote-execution protocol.
  • Various improvements of the documentation.

Note for package maintainers

Any patching that used to patch etc/repos.json should now patch
etc/repos.in.json. Background: to allow linting with well-defined
dependencies, for the newly-added "lint" repository additional
dependencies are pulled in via just-lock to bootstrap the correct
versions of those tools; the local, manually-edited repository
configuration etc/repos.in.json still contains everything needed
for building and testing. So, to avoid accidentally trying to fetch
more than is absolutely needed, bin/bootstrap.py was changed to
use the original, manually-maintained etc/repos.in.json.