Skip to content

Releases: oxidecomputer/dropshot-api-manager

dropshot-api-manager 0.3.0

19 Dec 01:25

Choose a tag to compare

Added

  • For versioned APIs, the latest blessed version is now checked for bytewise equality, not just wire compatibility. This prevents trivial changes (such as documentation changes or type renames) from accumulating invisibly.

    The previous behavior can be restored with the allow_trivial_changes_for_latest function.

  • Validation functions can now be Fn closures, not just function pointers.

Changed

  • The optional extra_validation argument no longer needs to be specified on ManagedApiConfig. Instead, first convert the ManagedApiConfig to a ManagedApi, then call extra_validation on the resulting ManagedApi.

  • ManagedApis::new is changed to accept an iterator over any kind of type that can be converted to ManagedApi, including ManagedApiConfig.

dropshot-api-manager 0.2.4

13 Nov 05:07

Choose a tag to compare

Added

  • ValidationContext::is_latest() returns true if this is the latest version of a versioned API, or if it is a lockstep API.
  • ValidationContext::is_blessed() returns Some(true) if a version is blessed, Some(false) if not, or None for non-versioned APIs.

Changed

  • extra_validation is now compatible with versioned APIs. Use the ValidationContext::is_blessed to filter out validation checks for blessed APIs as appropriate (since those APIs are immutable), and is_latest to only write out extra files for the latest version of the API.

dropshot-api-manager 0.2.3

08 Oct 23:57

Choose a tag to compare

Fixed

Updated drift to 0.1.1 to enable proper handling of OpenAPI type graph cycles.

dropshot-api-manager 0.2.2

01 Oct 23:57

Choose a tag to compare

Added

  • The api_versions! macro now generates a latest_version function.
  • The README has a new note about how to create versioned Dropshot servers using the latest_version function.

dropshot-api-manager 0.2.1

30 Sep 19:32

Choose a tag to compare

Added

  • For versioned APIs, comparisons between blessed and generated documents now use the drift crate rather than simple string comparisons. This means that trivial/wire-compatible changes between blessed and generated documents (such as adding or removing newtypes) are now allowed.

Fixed

  • Git commands are now run in the repository root instead of the current directory.
  • Changed some error output to use stderr instead of stdout.

dropshot-api-manager 0.2.0

26 Sep 23:16

Choose a tag to compare

Added

  • Add a way to specify an allowlist of unmanaged APIs within a local directory. See ManagedApis::with_unknown_apis for more.

Changed

  • Environment now accepts impl Into<String> and impl Into<Utf8PathBuf> for ease of use.
  • Hide private types and methods.
  • Update documentation.

dropshot-api-manager 0.1.1

24 Sep 23:22

Choose a tag to compare

  • README updates.
  • Windows path fixes.