Skip to content

v0.3.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 16 Oct 12:38
· 2 commits to main since this release
2f27591

New Features

  • Add Compose::validate_networks().
    • Ensures that all networks used in each service is defined in the top-level networks field of the Compose file.
  • Add Compose::validate_volumes().
    • Ensures that named volumes used across multiple services are defined in the top-level volumes field of the Compose file.
  • Add Compose::validate_configs().
    • Ensures that all configs used in each service is defined in the top-level configs field of the Compose file.
  • Add Compose::validate_secrets().
    • Ensures that all secrets used in each service is defined in the top-level secrets field of the Compose file.
  • Add Compose::validate_all().
  • Add Compose::options() for setting deserialization options.
  • Add Options::apply_merge(). (#2)
    • Merges << keys into the surrounding mapping.
  • BREAKING (service) Add services[].networks[].driver_opts attribute. (#29)
    • Added the driver_opts field to compose_spec::service::network_config::Network.
  • (service) Add Limit string conversions.
    • Added Display and FromStr implementations to compose_spec::service::Limit.
    • Changed the string deserialization logic of Limit to deserialize "-1" as Limit::Unlimited.
  • BREAKING (service) Support network_mode: container:{name}.
    • Added the compose_spec::service::network_config::NetworkMode::Container enum variant.

Bug Fixes

  • (service) Image registry with port is valid. (#22)
    • Image names with a registry that have a port are now valid.
    • Changed compose_spec::service::image::Name::new() to allow for using compose_spec::service::Image::set_registry() with a registry with a port. The first part of a name is now treated as a registry if it has a dot (.) regardless of whether the name has multiple parts.
    • Added compose_spec::service::image::InvalidNamePart::RegistryPort error variant for when a registry's port is not a valid port number.
    • Refactored image tests to not use unwrap().
  • (service) Support host IP in brackets for ports short syntax. (#24)
  • BREAKING (service) user may have an optional group. (#23)
    • Before this fix values for services[].user that included a GID or group name were rejected. The Compose Specification is unfortunately vague for user (see compose-spec/compose-spec#39). However, both docker run --user and podman run --user accept the {user}[:{group}] syntax.
    • Renamed compose_spec::service::UserOrGroup to IdOrName.
    • Renamed compose_spec::service::user_or_group module to user.
    • Added compose_spec::service::User.
    • Changed the type of the user field in compose_spec::Service to Option<User>.
  • BREAKING (service) Support unlimited ulimits. (#31)
    • Changed soft and hard fields of compose_spec::service::Ulimit to compose_spec::service::Limit<u64>.
    • Changed compose_spec::service::Ulimits type alias (used for ulimits field of compose_spec::Service and compose_spec::service::Build) to IndexMap<Resource, ShortOrLong<Limit<u64>, Ulimit>>.
    • Changed <Ulimit as AsShort>::Short to Limit<u64>.
    • Added impl From<Limit<u64>> for Ulimit.
    • Added impl From<u64> for Limit<u64>.
    • Added impl<T, L> From<Limit<T>> for ShortOrLong<Limit<T>, L> and impl<L> From<u64> for ShortOrLong<Limit<u64>, L>.

Documentation

  • Add fragment documentation.
  • (macros) Add symlink to LICENSE file. (#21)
    • This ensures that the LICENSE file is included when the compose_spec_macros package is published to crates.io via cargo publish.
  • (changelog) Update git-cliff config for v2.6.0.

Miscellaneous

  • (lints) Allow bare URL in compose_spec::service::build::Context::Url docs.
  • (lints) Decrease priority of lint groups.
  • (deps) Update lock file.
  • (ci) Bump typos to v1.26.0.