fix(deps): update module github.com/oasdiff/oasdiff to v1.18.1#12
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update module github.com/oasdiff/oasdiff to v1.18.1#12renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
ℹ Artifact update noticeFile name: cli/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
fa14068 to
429778b
Compare
429778b to
e657ac2
Compare
Contributor
Author
ℹ️ Artifact update noticeFile name: cli/go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
e657ac2 to
e60394b
Compare
e60394b to
8ad9a28
Compare
8ad9a28 to
3f67c2f
Compare
3f67c2f to
b5cb677
Compare
b5cb677 to
f436469
Compare
f436469 to
60cedf7
Compare
60cedf7 to
0554f19
Compare
0554f19 to
5b1337f
Compare
5b1337f to
006c101
Compare
006c101 to
7a99d1d
Compare
7a99d1d to
a2e1da6
Compare
a2e1da6 to
83ab242
Compare
83ab242 to
ddd579c
Compare
ddd579c to
069e946
Compare
069e946 to
1414819
Compare
1414819 to
1e14029
Compare
1e14029 to
64bf42a
Compare
64bf42a to
8694b95
Compare
8694b95 to
d0b70f6
Compare
d0b70f6 to
e83123e
Compare
e83123e to
46130a2
Compare
46130a2 to
0f811e8
Compare
0f811e8 to
8118ce5
Compare
8118ce5 to
c6d4c08
Compare
c6d4c08 to
c71394c
Compare
c71394c to
3bb59b1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.11.4→v1.18.1Release Notes
oasdiff/oasdiff (github.com/oasdiff/oasdiff)
v1.18.1Compare Source
What's changed
Patch release focused on
--allow-external-refshandling.--allow-external-refs=falseis now honored on the git-revision input path (#974). Previously the setting was enforced when loading specs from files and URLs, but a spec loaded via therev:pathgit form could still resolve external$refs. The behavior is now consistent across all input forms; intra-repository relative$refs continue to resolve viagit showand are unaffected.$ref(#975). When--allow-external-refs=falseblocks an external reference, oasdiff now exits with code123(distinct from the generic load-failure code102), so tooling can detect this specific case by exit code rather than by parsing the error message.No changes to diff/breaking/changelog output. The
--allow-external-refsdefault is unchanged (true).Full Changelog: oasdiff/oasdiff@v1.18.0...v1.18.1
v1.18.0Compare Source
Annotation-only
allOffalse-positive fixed,--openmode-aware filtering, and the media-type walker migration completesThe user-visible headline is in
breaking: adding anallOfsubschema whose body is only annotation keywords no longer flags as a breaking change. Under the hood, the media-type walker migration that started in PRs #940–#952 finishes in this release; every checker that operates on request- or response-body schemas now runs through one uniform shape.CLI changes
Detection rules
allOfadditions are no longer reported as breaking (#964). Adding anallOfsubschema whose body is only annotation keywords (title,description,examples,default,externalDocs,$comment) does not reject any previously-valid instance, so it is not a wire-contract change. Per the "Diff is Schema-Shape, Breaking is Wire-Contract" split,oasdiff diffcontinues to surface the structural addition unchanged, whileoasdiff breakingno longer fails CI gates with--fail-on WARNon what is purely a documentation edit.oasdiff changelogstill records the change at INFO under eight new check IDs covering the request × response × body × property × add × remove matrix (e.g.request-body-all-of-added-annotation-only), so audit-trail consumers see the document-level change instead of it silently disappearing. Constraint-bearingallOfadditions, and mixed sets that contain at least one constraint-bearing subschema, still fire at their original severities. Motivated by OAS discussion #3793 (handrews).--openflagoasdiff breaking --opennow filters the rendered page to breaking-only (#958). The web view previously showed every change including INFO regardless of which subcommand opened it, which did not match the visitor's terminal output. The CLI now forwardsmode=breakingormode=changelogas a form field on the upload, and the rendered page filters severity to match. Backward compatible in both directions: older CLI against a newer service is treated aschangelog(today's behavior), and a newer CLI against an older service has the field silently ignored. Other filtering flags (--fail-on,--level,--include-checks) are still treated as interactive concerns of the web UI and remain ignored by--open.Localization
exclusiveMinimum/exclusiveMaximum(#969). 162 message strings (54 per locale across theexclusive-minandexclusive-maxfamilies and their-descriptionand-commentsiblings) translated by extending the already-mergedmin/maxpatterns. The OpenAPI keywordsexclusiveMinimum/exclusiveMaximumstay in their canonical English casing inside the translated sentence, matching the JSON Schema specification terminology and the existing convention forallOf,oneOf,anyOf,$ref. Cuts the English-identical entries per non-English locale from 302 to 248.Docs
docs/GIT-DIFF-DRIVERheading typo fix (#959). One section title said "GET" (autocorrect from "cat"), with no referent in the body. Now reads correctly. Thegit-diff-driversubcommand itself shipped in v1.17.0.Internal cleanup: media-type walker migration completes
The migration introduced by #940 moved per-checker
path → operation → requestBody|response → content → mediaType → schematraversal boilerplate into a single helper. This release lands the final seven batches and removes the last in-scope checkers from the queue:became_required/became_optionalresponse pairwrite-only/read-onlytriplet (request property + response optional + response required)containspairRoughly 1300 lines net removed across the full series. Per-checker function shape is now uniform; new checks added in the future drop into the same shape. No behaviour change for users — checks emit the same change IDs at the same severities. The remaining unmigrated checkers all operate on parameters / headers and would need a separate parameter walker; that work is tracked separately and is not in this release.
Auto-changelog below.
v1.17.0Compare Source
Two new CLI surfaces (
git-diff-driver,--open), header-default flip, walker foundationThis release adds two ways to see OpenAPI changes outside the terminal.
oasdiff git-diff-driverturnsgit log --patchandgit diffinto a human-readable changelog, and a new--openflag onchangelogandbreakinguploads the comparison to oasdiff.com and opens a side-by-side review in your browser. Both work against any spec in any git repo, public or private. Also: a default flip for header comparison, plus a foundation refactor (media-type walker) that shipped behind the scenes.CLI changes
New subcommands and flags
git-diff-driversubcommand (#954, inspired by Jamie Tanna's post). Wire oasdiff into git as an external diff driver, andgit log --patch --ext-diffrenders a human-readable OpenAPI changelog inline instead of a raw YAML text diff. Two config lines:abc1234:openapi.yaml) instead of git's tempfile paths. Full setup in docs/GIT-DIFF-DRIVER.md.--openflag onchangelogandbreaking(#955, #956). After printing the changelog, uploads the comparison to oasdiff.com and opens the rendered side-by-side review in your browser. First run signs in with GitHub (minimal scopes, norepoaccess) and stores a token locally; subsequent runs skip. The resulting URL is shareable for 7 days, so reviewers can open it without installing the CLI themselves. Filtering and presentation flags (--fail-on,--format, etc.) apply only to terminal output; semantic flags (--flatten-params,--match-inline-refs, etc.) are forwarded to the web review so it matches what you saw locally.Detection rules
--case-insensitive-headersnow defaults to true (#939). HTTP header names are case-insensitive per RFC 7230; oasdiff has supported the case-insensitive comparison via flag since v1.x, but the default until now was case-sensitive, so a change betweenContent-Typeandcontent-typewas still flagged as breaking. The default flips to case-insensitive in this release. Pass--case-insensitive-headers=falseto opt back into the previous behavior.$ref-equivalent subschemas now match (#938, plus an earlier round in #930, thanks @kesha1225). Refactoring an inline schema to a$refof an equivalent component, or vice versa, no longer produces false "removed subschema" / "added subschema" findings onanyOf/oneOf. The matcher recognizes structurally-equivalent variants regardless of which form they're written in.response-property-became-nullable/-not-nullablechanges had asymmetric source-location attachment between matched-pair directions; both sides now attach to the property location consistently.changelog/breakingoutputoasdiff diff(#946). Whenoasdiff changelogorbreakingfinds no significant differences but the underlying diff has document-level changes (info.contactedits, etc.), the CLI hints to tryoasdiff difffor the full document-level view. JSON / YAML output also surfaces this via a top-leveldiff_emptyfield.Misc
ERRORS.mdis linked from thevalidatecommand's help and error output (#934).Go package changes
Public
validatepackagegithub.com/oasdiff/oasdiff/validatepackage (#944). The spec-validation logic thevalidatesubcommand uses is now an independent package; library callers can import it directly without going through the CLI.validate.Validate(spec, sourcePath)returns aFindingslist (each with a stable rule ID, severity, message, and origin when the loader provides line / column info).Media-type walker foundation
Loader: blob-hash git refs
<ref>:<path>syntax now accepts blob SHAs in addition to commit / tag refs (#954). Required bygit-diff-driverbecause git's external-diff protocol passes blob hashes, not commit refs. Existing commit / tag / branch ref behavior is unchanged.v1.16.0Compare Source
Two new subcommands (
validate,upgrade), cross-version auto-upgrade, and sharper detectionoasdiff validatechecks a single spec against the OpenAPI and JSON Schema rules,oasdiff upgradecanonicalises a 3.0 spec to the latest 3.x,--auto-upgradelets you diff across 3.0 and 3.1 specs directly, and dropping a stringformatconstraint is no longer mis-flagged as breaking.CLI changes
New
validatesubcommandoasdiff validate <spec>flags per-RFC OpenAPI / JSON Schema violations in a single spec (#894). It fills the gap between the parser (which only catches load and parse errors) and style linters: invalid types, missing required fields, bad regex, unresolved$refs, version-mismatched fields, and more, each with a stable kebab-case rule ID and afile:line:columnlocation. Findings are severity-classified (error, warning, info);-o, --fail-on {ERR|WARN|INFO}(defaultERR) controls the exit code, so warnings and info are reported without failing CI unless you lower the threshold. Output is-f text(default),yaml,json, orgithubactions(inline pull-request annotations plus per-severity step outputs). A load failure exits 102.New
upgradesubcommandoasdiff upgrade <spec>canonicalises an OpenAPI 3.0 spec to the latest 3.x (#922). It rewrites schema-level constructs in place (nullableto a type array, booleanexclusiveMinimum/exclusiveMaximumto numeric,exampletoexamples, and similar) and bumps the version string. The transforms are idempotent: an already-canonical spec is unchanged aside from a possible version bump.Cross-version comparison
--auto-upgradeondiff/breaking/changelog/summary(#923). Canonicalises both specs to the latest 3.x before comparing, so a 3.0-vs-3.1 comparison just works instead of reporting spurious dialect-shape differences.Detection rules
formatconstraint is a generalization, not breaking (#928, thanks @igavila). Droppingformatfrom a string schema widens what is accepted, so it is no longer reported as a breaking change.Flags
--fail-on warn,--level info,-f YAML,--severity error, and similar now work in any case and normalize to the canonical value. Applies to every enum flag across the commands.Misc
ref:pathform (for examplemain:openapi.yaml).ERRORS.mddistinguishes load failures from spec violations (#934) and points tooasdiff validatefor a strict per-spec check.Go package changes
Breaking:
formatters.Formatterinterfaceformatters.Formattergained aRenderValidate(findings Findings, opts RenderOpts) ([]byte, error)method (#894). Types that embednotImplementedFormatterare unaffected (they inherit a default), but a type that implements the interface directly must add the method.Misc
formattersvalidate API (#894): theFinding,Findings, andSourcetypes, theOutputValidateoutput kind, andComputeFingerprint(now exported, shared bychangelogandvalidateso a downstream tool can match findings across spec versions).checker.IsColorEnabledis exported (#894), letting packages outsidecheckergate color on the same auto-detect plus override convention the commands use.v1.15.3Compare Source
Sharper breaking-change detection, hardened flatten, configurable config files
Crash fixes in the allOf flattener, an
additionalPropertiestraversal fix that finally catches a long-missed class of breaking changes, scalar-to-array query-parameter generalization that is no longer flagged as breaking, and a richer config-file story (.oasdiff.*,--config,OASDIFF_CONFIG).CLI changes
Detection rules
additionalPropertiesis now walked when properties are added or deleted (#895, thanks @prostomarkeloff). Removing or adding a required property inside adict[str, X]-style response (additionalProperties: $ref, the default shape FastAPI / Pydantic emit for typed maps) was silently invisible tooasdiff breaking. The Modified processor already recursed; Added and Deleted now do too, soresponse-required-property-removed/-addedandrequest-required-property-addedfire on this shape as they always should have. Strictly additive: specs that did not exercise this path see no change.Xto anarrayofXis the OpenAPI 3 default-serialization (style: form, explode: true) generalization:?color=redkeeps working as a one-element array. The change is now reported asrequest-parameter-type-generalizedat INFO level. Reverse direction (array to scalar), items-type mismatch, and path / header parameters (defaultsimple, notform) remain breaking.Config files
.oasdiff.*,--config, andOASDIFF_CONFIG(#899). The preferred default config name is now.oasdiff.{json,yaml,yml,toml,hcl}(legacyoasdiff.*still works as a fallback). A new persistent--config <path>flag andOASDIFF_CONFIGenv var let you point at an explicit file, with--configwinning over the env var. When either override is set the file must exist; the cwd lookup keeps its silent-skip semantics.err-ignore,warn-ignore,severity-levels, andtemplateinside a config file now resolve relative to the config file's directory rather than the process's cwd, so--config examples/.oasdiff.yamlfrom the repo root finds sibling files as you'd expect. Absolute paths and CLI-supplied values are left alone.Flatten allOf hardening
flatten allOf(#909). Self-referential schemas underallOf(a node whose property points back to itself, appearing twice in the merge) used to overflow the stack. The recursion sites inmergeProps,resolveItems,resolveContains, andresolvePropertyNamesare now guarded with pointer-dedup plus an in-flight cycle map, so the cyclic link is preserved in the merged output.multipleOf: 0no longer panics (#891). TwoallOfsiblings withmultipleOf: 0(invalid per spec, but seen in the wild) used to divide by zero inlcm(0, 0); non-positive values are now skipped.OpenAPI 3.1 keywords in flatten/allOf
containsis merged acrossallOfsiblings (#888).contains: X + contains: Yflattens tocontains: Merge(X, Y). Note:containsis existential (at least one item matches), so the merged form requires one item to satisfy both X and Y rather than allowing two distinct items, an over-constraint documented indocs/ALLOF.md. The flattened spec never accepts an array the original rejects.propertyNamesis merged acrossallOfsiblings (#902).propertyNames: X + propertyNames: Yflattens topropertyNames: Merge(X, Y). Unlikecontains,propertyNamesis universal (every name matches), so the merge is semantically faithful with no over-constraint caveat.flattencommandoasdiff flatten /tmp/spec.yamlpreviously printedError: failed to load original spec from "/tmp/spec.yaml": failed to flatten allOf in "/tmp/spec.yaml": ...(file path twice, wrong outer message). The CLI now distinguishes the two via a typed*load.FlattenError, prints the cleanerError: failed to flatten allOf in "/tmp/spec.yaml": ..., and exits with code 122 instead of the load-failure code.Misc
strconv.ParseBool: parsing "x": invalid syntaxstyle messages are rewritten to the flag's actual type:must be true or falsefor bool,must be an integerfor int,must be a non-negative integerfor uint,must be a numberfor float,must be a duration like 30s or 5mfor duration. Wired once on the root command, so it propagates to every subcommand. Unrelated flag types fall through unchanged.Go package changes
Breaking: functional options on Config types
checker.Configmigrates to functional options (#911). The fluentWithOptionalCheck/WithOptionalChecks/WithSeverityLevels/WithDeprecation/WithSingleCheck/WithChecks/WithAttributeschain is removed;checker.NewConfignow takes...Optionarguments. Migration is mechanical (NewConfig(...).WithX(v)becomesNewConfig(..., WithX(v))), but every caller of the package needs the rewrite. Options are now first-class values: storable, composable, and passable independently of a receiver.diff.Configmigrates to functional options (#912). Same shape aschecker.Config:WithExcludeElementsandWithExcludeExtensionsare nowOptionvalues passed todiff.NewConfig, and the chained methods are removed. Both packages now use the same idiom, so contributors don't have to remember which one uses which style.Misc
checker.CheckBackwardCompatibilityUntilLevelno longer mutates the caller's*diff.Diff(#913). The pipeline used to truncatePathsDiff.Deleted/ per-pathOperationsDiff.Deleted, delete keys fromOperationsDiff.Modifiedfor draft / alpha operations, and insertWebhooksDiff.Modifiedentries intoPathsDiff.Modifiedunder"webhook:..."keys, all in-place on the input. The function now clonesPathsDiffand the nested fields the pipeline writes to before running checks. Callers that read the diff after running checks now see their original input intact.*load.FlattenError(#908). ExposesUrlandErrfields plusUnwrap(), reachable viaerrors.As. Lets library callers distinguish a flatten-stage failure from a load-stage failure when both can come out ofload.NewSpecInfo.Change.Fingerprintis stable across copy edits and locale changes (#892). The 12-char fingerprint is now computed from the structured args rather than the rendered message text, so editing a message template or switching locales no longer invalidates every previously-stored fingerprint. One-way migration: fingerprints stored under the old algorithm will not match recomputed values.v1.15.2Compare Source
A patch release with one downstream-impacting behavior change to
Change.Fingerprint, several OpenAPI 3.1 improvements to the allOf flattener, and a small refactor.Highlights
Change.Fingerprintis now stable across copy edits and locale switches (#892). The fingerprint that downstream tools use to identify the same logical change across spec versions was being computed from the rendered text of the message, which made it sensitive to anything that altered rendering: a message-template tweak, a locale switch, or the'%s'to`%s`rendering change in #836. It now hashes the structured rule arguments instead of the rendered text, giving the same disambiguation power without the fragility.This is a one-way migration. Any external system that has stored fingerprints from a previous oasdiff version will see them no longer match recomputed values and should plan a one-shot cleanup of those records. Future copy edits will not have the same effect.
allOf flattener handles more OpenAPI 3.1 keywords (#879, #880, #881, #882). The flattener now merges
const,minContains/maxContains,contentMediaType/contentEncoding, anddependentRequiredfromallOfsubschemas into the parent schema, instead of silently dropping them. Subsequent diff and breaking-change checks see the full intent of the schema.allOf flattener no longer silently drops fields documented as "not merged" (#884). Several keywords that the documentation describes as intentionally not merged were nevertheless being dropped from the parent schema's existing values when an
allOfsubschema was processed. They are now preserved. The PR also removes a duplicateTypecopy that was producing identical work twice.allOf flattener handles 3.1 numeric exclusive bounds correctly (#873). In OpenAPI 3.1
exclusiveMinimum/exclusiveMaximumare numeric (not booleans paired withminimum/maximum). The flattener now merges them with the right semantics.Documentation
$defsis intentionally dropped during allOf flatten (#883). The doc now states this explicitly so readers don't try to track down the omission as a bug.Refactors
refactor(flatten/allof): renamefindMaxValuetofindMaxValueScalarfor clarity (#887).How to use it
go install github.com/oasdiff/oasdiff@latestorcurl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | shdocker pull tufin/oasdiff:v1.15.2oasdiff/oasdiff-action/<command>@​v0.0.46(the action release that ships oasdiffv1.15.2)If your workflow YAML pins a fixed action version (e.g.
@v0.0.44), bump the pin to@v0.0.46so the new fingerprint algorithm runs in CI. Workflows pinned to@mainor moving tags pick up the change automatically on their next run.Changelog
a543522Merge pull request #892 from oasdiff/fix/fingerprint-stable-argsb8c4fe0fix(formatters): make Change.Fingerprint stable across copy edits0b722c4Merge pull request #887 from oasdiff/fix/issue-885-find-max-value-scalar9b87905refactor(flatten/allof): rename findMaxValue -> findMaxValueScalar (#885)8f37521Merge pull request #882 from oasdiff/feat/flatten-allof-dependent-required8ef9da0feat(flatten/allof): handle OpenAPI 3.1 dependentRequired6d31e06Merge pull request #881 from oasdiff/feat/flatten-allof-content-keywords35701effeat(flatten/allof): handle OpenAPI 3.1 contentMediaType / contentEncoding10261e0Merge pull request #880 from oasdiff/feat/flatten-allof-min-max-contains9466ea3feat(flatten/allof): handle OpenAPI 3.1 minContains / maxContains3af44a2Merge pull request #879 from oasdiff/feat/flatten-allof-const794bb5dMerge pull request #884 from oasdiff/fix/flatten-allof-silent-drops1d33e58Merge pull request #883 from oasdiff/docs/allof-defs-dropped7854349fix(flatten/allof): preserve fields documented as "not merged"; drop dup Type copyb999656docs(allof): document that $defs is intentionally dropped during flattenbd362bdfeat(flatten/allof): handle OpenAPI 3.1 const keyworda63539bMerge pull request #873 from oasdiff/fix/issue-868-allof-31-exclusive-boundsb1f8552docs: drop the now-fixed flatten/allOf 3.1 exclusive-bounds caveat84cf3bbtest: pin "no source-location after flatten-allof" behavior6b32761test: clarify allOf bound-merge comments7f47de5fix: gofmt alignment in const block168b6dcfix(flatten/allof): handle OpenAPI 3.1 numeric exclusive boundsa35f0c1Merge pull request #877 from oasdiff/bump/oasdiff-action-v0.0.457d3689ebump: oasdiff-action v0.0.45v1.15.1Compare Source
A patch release with one user-facing behavior change, one new check, a privacy-friendly cleanup of the HTML report, and a substantial documentation overhaul.
Highlights
oasdiff breakingnow distinguishes "no breaking changes" from "no changes" (#875). Whenoasdiff breakingfinds no breaking changes but the specs do differ in non-breaking ways, the message is now "No breaking changes to report, but the specs are different" instead of the misleading "No changes to report" used in earlier versions. Thechangelogcommand's wording is unchanged.deepObjectparameter properties (#862, thanks @ampeco). Properties ofdeepObject-style query parameters now go through the standard enum-change checks.@importoffonts.googleapis.com/css?family=Nunitofrom the report's<style>block. Every viewer of every report previously sent their IP to Google; the report now uses the existing system-font fallbacks (Helvetica / Arial). Useful for sites that embed the report under a strict CSP, and a privacy improvement everywhere.Documentation
summarysubcommand.DIFF.mdandBREAKING-CHANGES.mdcross-referenced.summary,breaking, andchangelogare built on the diff engine; the docs now say so. Duplicate "Additional Options" lists removed in favor of the README index.HEADER-DIFF.mdnow explains the OpenAPI / HTTP-standards tension behind oasdiff's case-sensitive header default.--max-circular-depadvice, fixed an invalid-filterflag reference in usage examples, made the Go embed snippet runnable, clarifiedSTABILITY.md, dropped a misleading "Documentation" stub fromCUSTOMIZING-CHECKS.md, and more.Dependencies
github.com/getkin/kin-openapibumped fromv0.136.0tov0.137.0(#872).How to use it
go install github.com/oasdiff/oasdiff@latestorcurl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | shdocker pull tufin/oasdiff:v1.15.1oasdiff/oasdiff-action/<command>@​v0.0.45Changelog
876a7bbMerge pull request #875 from oasdiff/fix/empty-result-message-for-breakingc0f8e9eMerge pull request #876 from oasdiff/fix/changelog-html-drop-google-fonts055decbfix(html): drop external Google Fonts import from changelog template963dc3cfix(formatters): say "no breaking changes" instead of "no changes" when called from breaking command8422df4Merge pull request #874 from oasdiff/docs/reorganize-readme-indexfc19e98docs: refine "Download a binary" install sectionc71f1f6docs: merge duplicated install.sh sections in README2c1cdd3docs: tighten ATTRIBUTES heading and introe06876ddocs: normalize top-level headings to # across all standalone docs45b58c2docs: fix code-fence indentation and trailing whitespace in COMMON-PARAMS11d4939docs: add team workflow callout to BREAKING-CHANGES.md19a7a94docs: fix USAGE_EXAMPLES and COMMON-PARAMS correctnessf2607ecdocs: drop Circular Schema References sectiond58e83edocs: correctness fixes across four files1ea7f75docs: reflect OpenAPI 3.1 GA in CONTRIB; bump action versiond6526bedocs: rename COMPOSED.md heading to user-facing labelce97a1bdocs: clarify STABILITY.md and remove repetition93beb5adocs: make the GO.md snippet runnable82b32cadocs: drop duplicated "Additional Options" lists from DIFF and BREAKING-CHANGESd8ed012docs: clarify that breaking/changelog/summary inherit diff behavior5b2a730docs: add summary command to README index4cdfcecdocs: explain why oasdiff defaults to case-sensitive headers47c7c53docs: fix wrong docker image name in DOCKER.md2ea3464docs: explain why and what --case-insensitive-headers coversee72bdbdocs: remove PATH-PARAM-RENAME.md stubfff3451docs: drop misleading "Documentation" stub from CUSTOMIZING-CHECKS525b02ddocs: rename Preprocessing to Normalization; move header comparison there5a0cf9adocs: split out Filtering changes; rename Output & tracking to Outputb548b1bdocs: split Inputs into Inputs / Comparison / Preprocessing8e1aa1adocs: correct diff command's supported output formatsf9f6f5fdocs: reorganize README index by reader intent5b6d152Merge pull request #872 from oasdiff/dependabot/go_modules/github.com/getkin/kin-openapi-0.137.091498c6chore(deps): bump github.com/getkin/kin-openapi from 0.136.0 to 0.137.0b7aab5eMerge pull request #862 from ampeco/fix/parameter-property-enum-value-removed981775fref: address review feedback — extract helper, consolidate testsf37adc2Update checker/check_request_parameter_enum_value_updated.gobd77c8ffix: detect enum value changes in deepObject parameter propertiesfda3068Merge pull request #871 from oasdiff/docs/readme-mention-pr-review-workflow8b06964docs(readme): mention PR review workflow at oasdiff.com308d9c1Merge pull request #870 from oasdiff/docs/source-locator-cleanup5c2c56adocs: tighten SOURCE-LOCATORv1.15.0Compare Source
OpenAPI 3.1 support is generally available
First stable release with OpenAPI 3.1 support across
diff,breaking, andchangelog. The previous beta tags (v1.15.0-openapi31.beta.*andv2.2.0-openapi31.beta.*) are superseded by this release.See docs/OPENAPI-31.md for the full feature list and known caveats.
Highlights
const,prefixItems,if/then/else,dependentRequired,dependentSchemas,unevaluatedItems/Properties,contentSchema,contentMediaType,contentEncoding,patternProperties,propertyNames,contains/minContains/maxContains, numericexclusiveMinimum/exclusiveMaximum).nullare recognised as nullable changes, eliminating the false-positive type-change reports that 3.1 specs would have produced under the old model.Caveats
A few 3.1 features have known limitations in the underlying parser. See the Caveats section of the OPENAPI-31 doc for the current list.
Other fixes
$refresolution now works correctly for multi-file specs.oasdiff diff origin/main:openapi.yaml HEAD:openapi.yamlresolves relative$refpaths in both revisions, via the newJoinFunchook in kin-openapi v0.136.0./foofor a top-level property now readsfoo, which matches the rest of oasdiff's path conventions.How to use it
go install github.com/oasdiff/oasdiff@latestorcurl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | shdocker pull tufin/oasdiff:v1.15.0oasdiff/oasdiff-action/<command>@​v0.0.41Changelog
54e9cb8Merge pull request #869 from oasdiff/chore/oasdiff-3.1-ga-docsab1bd69docs: drop beta label for OpenAPI 3.1 support8a1ce1dMerge pull request #791 from oasdiff/feat/openapi-3.1-supportb8f77c2refactor: structured DependentRequiredDiff type (#849)d1d157bfix: don't tag Docker image as stable/latest for pre-release builds95c48ddchore: use kin-openapi v0.138.0-openapi31.beta.1 tag9b1c59cfix: switch from oasdiff/kin-openapi fork to getkin/kin-openapi upstreame0532f0test: cover exclusiveMin/Max, 3.1 nullable, dependent_required props, and utilsbf7521ftest: add coverage for 3.1 checker property-level and removed pathscac53c2style: run go fmt on files with formatting issueseca8011fix: replace remaining getkin/kin-openapi imports with oasdiff fork121852cci: bump cache key version to invalidate stale module cache844b1e9test: add test data for OAS 3.1 $ref sibling keyword testcc27b7efeat: enable $ref sibling keyword support via kin-openapi beta.8ab6610echore: upgrade kin-openapi to v0.137.0-openapi31.beta.5e376d59chore: upgrade kin-openapi to v0.137.0-openapi31.beta.22524246chore: upgrade kin-openapi to v0.137.0-openapi31.beta.1e4039cefix: use oasdiff/kin-openapi 3.1 branch with oasdiff module path57646f6test: improve coverage for contains, unevaluated, and dependent-required checkersa226cecrebase feat/openapi-3.1-support onto main5dc938fMerge pull request #860 from oasdiff/fix/git-ref-slash-path-resolution2408267fix: preserve git ref prefix when resolving relative $refs3139dd8Merge pull request #867 from oasdiff/chore/bump-kin-openapi-v0.136.087cd120chore: bump kin-openapi to v0.136.0f06aae5chore: remove dead Slack badge from README (#863)8ac52befix: drop leading slash from property paths at schema root (#859)f6df062docs: bump OPENAPI-31.md to beta.3, add GitHub Action usage (#852)e43499adocs: bump install version to v1.15.0-openapi31.beta.1, add action/service status (#848)4feaf21fix: Docker pre-release tagging and link checker rate limiting (#847)ee46712docs: bump install version to 2.2.0-openapi31.beta.47df24bcadd claude skill3097561fix: point allOf/oneOf/anyOf source to specific subschema (#843)v1.14.0Compare Source
Changelog
5bf2d58refactor: migrate from oasdiff/kin-openapi fork to upstream getkin/kin-openapi (#842)39983ddfix: show meaningful messages when breaking/changelog finds no results (#841)aee6ae7docs: remove auto-generated BREAKING-CHANGES-EXAMPLES.md69d124adocs: add CHECKS.md and link checks command in main commandsf072ee1docs: remove source location tracking from roadmap (officially released)fd033a8refactor: consolidate test helpers, fix source locations, update linting (#840)v1.13.5Compare Source
Changes
github.com/oasdiff/kin-openapitov0.137.0v1.13.4Compare Source
Changes
loadFromGitRevisioninstead of mutating it — cleaner than save/restore, goroutine-safe (#839)github.com/oasdiff/kin-openapitov0.137.0v1.13.3Compare Source
Changelog
be0b920](https://redirect.github.com/oasConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.