Skip to content

Latest commit

 

History

History
169 lines (105 loc) · 4.97 KB

CHANGELOG.md

File metadata and controls

169 lines (105 loc) · 4.97 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

Changed

Fixed

0.6.3

Fixed

  • Update dependencies to fix security vulnerabilities affecting the following crates and versions:
    • linked-hash-map < 0.5.3
    • nix < 0.20.2
    • regex < 1.5.5

0.6.2

Added

  • Add --ignore-uncommitted-changes flag to optionally ignore uncommitted changes.

0.6.1

Fixed

  • Fix detection of uncommitted changes on inputs within submodules.

0.6.0

Changed

  • Take uncommitted changes into account when computing which commit last changed a path (technically: the required object in cache::Cache::required_object). This means artifact lookups will now always miss in the cache if one of its inputs has uncommitted changes.

0.5.0

Changed

  • Separate cached outputs not only by the required commit but also by the artifact name. Previously, the outputs of all artifacts were stored under a directory named after the required commit. Thus, if the required commit was identical for two artifacts that had an identical output path, the outputs would collide in the cache, leading to false positive lookups or retrievals or overwrites on insertion. With this change, the outputs of each artifact are stored under a directory named after the artifact within the directory of the required commit, thereby preventing these collisions. A different way of thinking about this change is that the cache is now indexed by the required commit and the artifact name.

0.4.4

Changed

  • cache::Cache: The pattern in Pattern Artifacts now matches three characters (-, ., and +) in addition to word characters (i.e., alphanumerics and underscore _). As the pattern now matches non-greedily, original behavior if a pattern does not contain one of the three characters but the string after the pattern does is preserved.

Fixed

  • cache::Cache:
    • The pattern in Pattern Artifacts now matches non-greedily.
    • Fix documentation of outputs of Pattern Artifacts.

0.4.3

Changed

  • cache::Cache::cached_object now returns None as soon as the intersection set of candidate objects for the outputs is empty. Before, that function computed the candidates of all outputs before computing the intersection.
  • cache::Cache now caches the fact that a path does or does not change between two objects. This drastically reduces the number of git diff invocations.
  • git::Repo now caches ancestry relations among objects. This drastically reduces the number of git rev-list invocations.

0.4.2

Fixed

  • cache::Cache::find_candidates now also includes descendants when the ancestor itself is a candidate.

0.4.1

Fixed

  • fs::copy now also overwrites symlinks.

0.4.0

Changed

  • fs::copy no longer follows and resolves symlinks. As a result, symlinks are now inserted and retrieved verbatim from the build artifact cache. Additionally, it is now possible to cache artifacts with circular or nonexistent symlink targets.

0.3.1

Fixed

  • git::Repo::oldest_common_descendant_on_current_branch: Add missing intersection of descendants.

0.3.0

Added

  • Add support for Pattern Artifacts, which allows one Artifact definition to match many actual artifacts; see the documentation of cache::Artifacts for details.
  • git::Object: Implement PartialOrd.
  • git::Repo:
    • Add oldest_object method as counterpart of youngest_object.
    • Add oldest_common_descendant_on_current_branch method to determine the oldest common descendant of a set of objects on the current branch.

Changed

  • cache::Cache: artifacts field is now private. Get an individual artifact by name using the artifact method. Getting all artifact definitions is no longer possible outside Cache.
  • git::Repo:
    • youngest_object method now returns a Result instead of an Option and no longer panics if any two given objects are incomparable.
    • youngest_object method now takes a HashSet as objects argument, because the objects are unordered.

Fixed

  • cache::Cache::required_object: Fix required object resolution when merges are involved.

0.2.2

Fixed

  • git::Repo::last_commit_on_path: Return None when Git log for given path is empty.
  • cache::Cache::required_object: Return None when required object for at least one input is not known.

0.2.1

Fixed

  • Implicitly add path of manifest to inputs of all artifacts.

0.2.0

Added

  • Add lookup command to determine whether an artifact is cached without copying the outputs.

0.1.1

Fixed

  • README: Add missing 'POSIX advisory record locks' URL.

0.1.0

Initial release.