Skip to content

Releases: heroku/libcnb.rs

v0.24.0

17 Oct 12:23
de993a4
Compare
Choose a tag to compare

Added

  • libherokubuildpack:
    • Added inventory module. (#861)

v0.23.0

28 Aug 07:49
8d4d3f6
Compare
Choose a tag to compare

Changed

  • libcnb-test:
    • pack build is now run with --trust-extra-buildpacks to force the builder to be trusted after upstream changes in Pack CLI. Pack CLI v0.35.1+ is now required to use libcnb-test. (#855)

v0.22.0

18 Jun 12:05
8f74590
Compare
Choose a tag to compare

Added

  • libcnb:
    • A new API for working with layers has been added. See the BuildContext::cached_layer and BuildContext::uncached_layer docs for examples of how to use this API. (#814)

Changed

  • libcnb:
    • The Layer trait and related types and functions have been deprecated. Please migrate to the new API. (#814)
    • Errors related to layers have been restructured. While this is technically a breaking change, buildpacks usually don't have to be modified in practice. (#814)

Fixed

  • libcnb-data:
    • The working directory for launch processes specifying a WorkingDirectory::Directory value is now respected. (#831)

v0.21.0

30 Apr 15:27
a4e48fd
Compare
Choose a tag to compare

Added

  • libcnb:
    • Target now implements Clone and Debug. (#821)

Changed

  • libcnb:
    • Changed the type of Target's distro_name and distro_version fields from Option<String> to String. (#821)
    • The libcnb runtime now enforces that the CNB_TARGET_DISTRO_NAME and CNB_TARGET_DISTRO_VERSION env vars have been set by lifecycle. (#821)

v0.20.0

12 Apr 10:34
78d218e
Compare
Choose a tag to compare

Added

  • libcnb:
    • Made Target (the type of DetectContext::target and BuildContext::target) public. (#815)

Changed

  • libcnb:
    • WriteLayerError changed to contain more specific error enums instead of generic ones. (#786)
  • libcnb-data:
    • Renamed Target to BuildpackTarget to disambiguate it from the new libcnb::Target. (#815)

v0.19.0

23 Feb 16:54
b538cd3
Compare
Choose a tag to compare

Added

  • libcnb-data:
    • Reintroduced support for deserializing [[stacks]] in buildpack.toml.
      (#789)
  • libherokubuildpack:
    • Added buildpack_output module. This will help buildpack authors provide consistent and delightful output to their buildpack users (#721)

v0.18.0

12 Feb 14:08
f959dd1
Compare
Choose a tag to compare

Changed

  • Now targets Buildpack API 0.10. Buildpacks need to upgrade the api key to 0.10 in their buildpack.toml. (#773)
  • Improved the consistency of cross-compilation assistance provided across all supported target_triple and host OS/architecture combinations. #769
  • Added cross-compilation assistance for aarch64-unknown-linux-musl (on macOS and ARM64 Linux) and x86_64-unknown-linux-musl (on ARM64 Linux). #769
  • Raised Minimum Supported Rust Version (MSRV) to 1.76. (#774)
  • libcnb:
    • Changed Layer interface from &self to &mut self. (#669)

Added

  • libherokubuildpack:
    • MappedWrite::unwrap for getting the wrapped Write back out. (#765)

Removed

  • Types, errors, macros and functions related to stacks. The concept of stacks has been removed from the CNB spec. Use Target instead. (#773)

v0.17.0

06 Dec 17:53
24a10fd
Compare
Choose a tag to compare

Added

  • libcnb:
    • An optional trace feature has been added that emits OpenTelemetry tracing
      data to a File Export. (#723)

v0.16.0

17 Nov 15:24
6cd51ce
Compare
Choose a tag to compare

Changed

  • Raised Minimum Supported Rust Version (MSRV) to 1.74. (#747)
  • Improved the consistency of all user-facing libcnb.rs error message wordings. (#722)
  • The assistance error message shown when the necessary cross-compilation tools are not found now also includes the rustup target add step. (#729)
  • Updated the documentation for TestRunner::build and TestContext::start_container to mention when Docker resource teardown occurs. (#743)

Fixed

  • libcnb-test:
    • Fixed incorrect error messages being shown for buildpack compilation/packaging failures. (#720)
    • The Docker volumes created by Pack for the build and launch layer caches are now cleaned up after each test. (#741)
    • The Docker image cleanup process no longer makes duplicate attempts to remove images when using TestContext::rebuild. (#741)
    • Test failures due to the Docker daemon not being installed or started no longer cause a non-unwinding panic abort with noisy traceback. (#741)
    • Containers created by TestContext::start_container are now correctly cleaned up if the container failed to start. (#742)

v0.15.0

25 Sep 13:09
56b4f4e
Compare
Choose a tag to compare

Added

  • libcnb:
    • LayerTypes now implements Copy and Clone. (#670).
  • libcnb-data:
    • ExecDProgramOutputKey, ProcessType, LayerName, BuildpackId and StackId now implement Ord and PartialOrd. (#658)
    • Added generic::GenericMetadata as a generic metadata type. Also makes it the default for BuildpackDescriptor, SingleBuildpackDescriptor, CompositeBuildpackDescriptor and LayerContentMetadata. (#664)
  • libcnb-test:
    • Added the BuildpackReference::WorkspaceBuildpack enum variant. This allows for the testing of any libcnb.rs or composite buildpack in the Cargo workspace, instead of only the buildpack of the current crate. Note: The testing of composite buildpacks requires pack CLI version >=0.30. (#666)

Changed

  • libcnb-data:
    • Renamed the buildpackage module to package_descriptor, and the Buildpackage* types within it to PackageDescriptor*. (#656)
    • Renamed multiple types to match the new composite vs component buildpack upstream terminology. Renamed SingleBuildpackDescriptor to ComponentBuildpackDescriptor, MetaBuildpackDescriptor to CompositeBuildpackDescriptor and BuildpackDescriptor::{Single,Meta} to BuildpackDescriptor::{Component,Composite}. (#682)
  • libcnb-cargo:
    • No longer outputs paths for non-libcnb.rs and non-meta buildpacks. (#657)
    • Build output for humans changed slightly, output intended for machines/scripting didn't change. (#657)
    • When performing buildpack detection, standard ignore files (.ignore and .gitignore) will be respected. (#673)
  • libcnb-test:
    • Renamed BuildpackReference::Crate to BuildpackReference::CurrentCrate. (#666)