oxidecomputer / omicron

Omicron: Oxide control plane
Mozilla Public License 2.0
252 stars 40 forks source link

Build tooling/automation to analyze openapi and jsonschema specs for breaking changes #3703

Open sunshowers opened 1 year ago

sunshowers commented 1 year ago

We could either use a pre-existing tool or do our own implementation.

Pre-existing tools: (Note, openapi and JSONSchema are different formats that are related):

Building our own:

smklein commented 1 year ago

https://github.com/oxidecomputer/omicron/issues/3407 is a related issue we'd like to suss out with these tools

ahl commented 1 year ago

After looking at the tools @sunshowers linked, I'm going to do a time-bounded exploration into what building our own would look like. It seems possible to me that we may want to customize this tool for our purposes in the future so if it's easy enough to build our own, that may pay dividends.

obi1kenobi commented 9 months ago

👋 cargo-semver-checks and Trustfall author here. I just stumbled across this issue.

may want to customize this tool for our purposes in the future

I'd really love to hear more about this, if you're open to chatting about it. I've started building some more tooling that uses the same query-based architecture and applying it to other domains: querying over GitHub data, linting Python APIs for breaking changes, etc. I've also looked into writing linters for OpenAPI and JSONSchema since people keep asking for those.

I realize this issue is pretty old so maybe it's not that important anymore. But if custom linting / monitoring / querying over arbitrary APIs and formats is still interesting for your use cases, I'd love to chat!