Skip to content

Releases: oxidecomputer/dropshot-api-manager

dropshot-api-manager 0.7.2

20 May 05:03

Choose a tag to compare

Changed

For incompatible changes to blessed API documents, the output is now significantly improved. It now shows all the endpoints and paths from which the change is reachable, and also deduplicates identical changes across different API versions.

dropshot-api-manager 0.7.1

15 Apr 21:14

Choose a tag to compare

Added

Normalize WebSocket response JSON schema changes between Dropshot 0.16 and 0.17. (The changes are wire-compatible but the JSON schema is different.)

dropshot-api-manager 0.7.0

17 Mar 02:51

Choose a tag to compare

Changed

  • Dropshot updated to 0.17.0.

dropshot-api-manager 0.6.0

10 Mar 20:33

Choose a tag to compare

Added

The Dropshot API manager now works in non-colocated Jujutsu repositories, for example Jujutsu workspaces.

Changed

  • The --blessed-from-git command-line option has been renamed to --blessed-from-vcs, and in Jujutsu repos it now accepts Jujutsu revsets. (The old name, as well as the old OPENAPI_MGR_BLESSED_FROM_GIT environment variable, are still supported for backwards compatibility.)
  • The --blessed-from-vcs command-line argument's REVISION:PATH format has been split into --blessed-from-vcs and --blessed-from-vcs-path. This change was made so REVISION could be a Jujutsu revset. Revsets often have embedded colons.

dropshot-api-manager 0.5.2

28 Feb 23:07

Choose a tag to compare

Changed

API manager structures are now dropped in parallel, leading to measured performance gains of up to 15%.

dropshot-api-manager 0.5.1

28 Feb 04:43

Choose a tag to compare

Fixed

Handle scenarios where the blessed version was missing from local disk. This was previously unusual and indicated a user deleting the file from disk, but the semantic compatibility support added in version 0.2.1 makes this more likely to happen in normal workflows.

dropshot-api-manager 0.5.0

28 Feb 00:12

Choose a tag to compare

Changed

  • API processing and validation is now done in parallel using rayon. We've measured up to 6x performance improvements as a result.
  • The validation function is now called in parallel. As a result, if the validation function is a closure, it must be Sync on top of the existing requirement to be Send. (Most validation functions are just function pointers, which are already Sync.)

dropshot-api-manager 0.4.0

26 Feb 22:57

Choose a tag to compare

Added

  • Support for Git stubs for versioned APIs, which enable Git's rename detection to work on blessed versions. For more information, see oxidecomputer/git-stub and RFD 634.

  • The API manager now handles unparseable files (e.g., those with merge conflict markers) properly. This is a fix for a pre-existing issue: in some situations, merge conflicts could have occurred with generated files. However, the issue is exacerbated by Git stub support since that causes rename detection to trigger more often.

    As of this version of dropshot-api-manager, all merge conflict situations can be addressed by running cargo xtask openapi generate or equivalent.

Fixed

  • For blessed versions, merge base detection now recognizes Git's MERGE_HEAD. It'll use whichever of HEAD or MERGE_HEAD is a descendant of the other (so it works with both first-parent and second-parent merges).
  • Fixes for several bugs found while building out a more robust test suite.

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.