Skip to content

Releases: heroku/libcnb.rs

v0.11.5

07 Feb 17:17
07585c5
Compare
Choose a tag to compare

Changed

  • Update toml to 0.7.1. If your buildpack interacts with TOML data directly, you probably want to bump
    the toml version in your buildpack as well. (#556)

v0.11.4

11 Jan 17:10
8766563
Compare
Choose a tag to compare

Added

  • libcnb-data: Store struct now supports clone() and default(). (#547)

v0.11.3

09 Jan 15:20
fa679ea
Compare
Choose a tag to compare

Added

  • libcnb: Add store field to BuildContext, exposing the contents of store.toml if present. (#543)

v0.11.2

15 Dec 11:27
47daf61
Compare
Choose a tag to compare

Fixed

  • libcnb-test: TestContext::download_sbom_files now checks the exit code of the pack sbom download command it runs. (#520)

Changed

  • libcnb: Drop the use of the stacker crate when recursively removing layer directories. (#517)
  • libcnb-cargo: Updated to Clap v4. (#511)

Added

  • libherokubuildpack: Add command and write modules for working with std::process::Command output streams. (#535)

v0.11.1

29 Sep 09:49
d3e1d07
Compare
Choose a tag to compare

Fixed

  • All crates now properly include the LICENSE file. (#506)
  • Fix libcnb readme file metadata which prevented vendoring libcnb via cargo vendor. (#506)

Changed

  • Improve the libherokubuildpack root module rustdocs. (#503)

v0.11.0

23 Sep 12:30
4bc237c
Compare
Choose a tag to compare

Changed

  • Bump Minimum Supported Rust Version (MSRV) to 1.64. (#500)
  • Bump minimum external dependency versions. (#502)

Added

  • Add new crate libherokubuildpack with common code that can be useful when implementing buildpacks with libcnb. Originally hosted in a separate, private, repository. Code from libherokubuildpack might eventually find its way into libcnb.rs proper. At this point, consider it an incubator. (#495)

v0.10.0

31 Aug 13:12
3a82376
Compare
Choose a tag to compare

Highlight of this release is the bump to Buildpack API 0.8 which brings support for SBOM to libcnb.rs. This is also the first release where all libcnb.rs crates are released at the same time and with the same version number. See the changelog below for other changes.

Changed

  • libcnb.rs now targets Buildpack API 0.8. Buildpacks need to upgrade the api key to 0.8 in their buildpack.toml. (#489)
  • In accordance to the CNB specification >=0.7, BuildpackId no longer permits sbom as a buildpack id. (#489)
  • Replace builder style functions from Launch with a dedicated LaunchBuilder to be more consistent with other builders in the library. Additionally, all fields of Launch can now be modified via the builder pattern. (#487)
  • Rename paths field in launch::Slice to path_globs and add docs to make it clearer that these strings are Go standard library globs. (#487)
  • Add explicit DeleteLayerError to provide more context when debugging layer handling problems. (#488)

Fixed

  • Fix BuildpackApi to use u64 instead of u32 for major and minor version parts. (#489)
  • Fix permission issues during layer handling when the layer contains read-only directories. (#488)

Added

  • Add BuildResultBuilder::build_sbom, BuildResultBuilder::launch_sbom and LayerResultBuilder::sbom to enable buildpack authors to attach SBOM data for layers and launch. (#489)
  • Add sbom::SbomFormat, describing supported SBOM formats. (#489)
  • Add Buildpack::sbom_formats field. (#489)
  • Add support for setting a working directory for launch processes. (#489)
  • Add TestContext::download_sbom_files to allow testing of SBOM logic. (#489)

Removed

  • Remove support for legacy BOM. Remove Launch::bom, Build::bom, bom::Bom, bom::Entry. (#489)

libcnb-test v0.6.0

21 Jul 18:38
d650452
Compare
Choose a tag to compare
  • Overhaul the crate README/docs, to improve the learning/onboarding UX. (#478)
  • Rename TestRunner::run_test to TestRunner::build, TestConfig to BuildConfig and TestContext::run_test to TestContext::rebuild. (#470)
  • Add TestContext::start_container, TestContext::run_shell_command and ContainerConfig. (#469)
  • Remove TestContext::prepare_container and PrepareContainerContext. To start a container use TestContext::start_container combined with ContainerConfig (or else the convenience function TestContext::run_shell_command) instead. (#469)
  • Fix missing logs when using ContainerContext::logs_now. (#471)

libcnb v0.9.0

14 Jul 10:41
d396d29
Compare
Choose a tag to compare
  • Use the crate's README.md as the root module's rustdocs, so that all of the crate's documentation can be seen in one place on docs.rs. (#460)
  • Increase minimum supported Rust version from 1.58 to 1.59. (#445)
  • Update libcnb-data (which provides the types in the data module) from 0.7.0 to 0.8.0 - see the libcnb-data changelog. (#465)
  • Update libcnb-proc-macros from 0.2.2 to 0.3.0 - see the libcnb-proc-macros changelog. (#465)

libcnb-test v0.5.0

14 Jul 10:40
3c9637e
Compare
Choose a tag to compare
  • Add an assert_empty! macro, for improved UX over using assert! with str::is_empty. (#451)
  • Add TestConfig::cargo_profile and CargoProfile to support compilation of buildpacks in release mode. (#456)
  • Improve the error message shown when Pack CLI is not installed. (#455)
  • Check that TestConfig::app_dir is a valid directory before applying TestConfig::app_dir_preprocessor or invoking Pack, so that a clearer error message can be displayed. (#452)
  • PrepareContainerContext::start_with_shell_command and ContainerContext::shell_exec now use bash instead of /bin/sh. (#464)
  • Use the crate's README.md as the root module's rustdocs, so that all of the crate's documentation can be seen in one place on docs.rs. (#460)
  • Add rustdocs with code examples for all public APIs. (#441)
  • Fix rustdocs for LogOutput. (#440)
  • Increase minimum supported Rust version from 1.58 to 1.59. (#445)
  • Update libcnb-package from 0.1.2 to 0.2.0. Of note, buildpack binaries are now stripped when packaging to reduce buildpack size, which also speeds up integration tests. See the libcnb-package changelog. (#465)