Skip to content

v0.14.0

Compare
Choose a tag to compare
@edmorley edmorley released this 18 Aug 15:26
· 157 commits to main since this release
b700ea0

Added

  • libcnb-package: Added cross-compilation assistance for Linux aarch64-unknown-linux-musl. (#577)
  • libcnb-cargo: Added --package-dir command line option to control where packaged buildpacks are written. (#583)
  • libcnb-test:
    • LogOutput now implements std::fmt::Display. (#635)
    • ContainerConfig now implements Clone. (#636)

Changed

  • libcnb-cargo: Moved the default location for packaged buildpacks from Cargo's target/ directory to packaged/ in the Cargo workspace root. This simplifies the path and stops modification of the target/ directory which previously might have caching implications when other tools didn't expect non-Cargo output in that directory. Users that implicitly rely on the output directory need to adapt. The output of cargo libcnb package will refer to the new locations. (#583)
  • libcnb-package:
    • buildpack target directory now contains the target triple. Users that implicitly rely on the output directory need to adapt. The output of cargo libcnb package will refer to the new locations. (#580)
    • get_buildpack_target_dir was renamed to get_buildpack_package_dir (#583)
  • libcnb-test:
    • ContainerContext::address_for_port will now panic for all failure modes rather than just some, and so now returns SocketAddr directly instead of Option<SocketAddr>. This reduces test boilerplate due to the caller no longer needing to .unwrap() and improves debugging UX when containers crash after startup. (#605 and #636)
    • Docker commands are now run using the Docker CLI instead of Bollard and the Docker daemon API. (#620)
    • ContainerConfig::entrypoint now accepts a String rather than a vector of strings. Any arguments to the entrypoint should be moved to ContainerConfig::command. (#620)
    • Removed TestRunner::new since its only purpose was for advanced configuration that's no longer applicable. Use TestRunner::default instead. (#620)
    • Removed stdout_raw and stderr_raw from LogOutput. (#607)
    • Improved wording of panic error messages. (#619 and #620)
  • libherokubuildpack: Changed the flate2 decompression backend from miniz_oxide to zlib. (#593)

Fixed

  • libcnb-test:
    • TestContext::run_shell_command and ContainerContext::shell_exec now validate the exit code of the spawned commands and panic if they are non-zero. (#620)
    • ContainerContext::expose_port now only exposes the port to localhost. (#610)
    • If a test with an expected result of PackResult::Failure unexpectedly succeeds, the built app image is now correctly cleaned up. (#625)