diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dbc2b97b..0fca001b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -106,6 +106,32 @@ updates: update-types: ["version-update:semver-major"] - dependency-name: "OWLSharp.Extensions" update-types: ["version-update:semver-major"] + # Humanizer 2.14.1 -> 3.0.10 changes the OWL IRI fragments we PUBLISH. MEASURED on #949 + # (run 89854763158, `build (Release)`): 643 tests, 636 passed, 2 failed, both of them the + # GetId contract tests, and nothing else -- + # VirtueOwlGenerationContractTests.GetId_StripsApostrophesHyphensCommas [40 ms] + # OwlGetIdPureContractTests.FrenchFallacyName_ProducesFragment_AccentsPreserved [1 ms] + # Both assert GetId("Appel à l'autorité") == "appelÀLautorité"; both pass on master + # (verified locally 2026-07-27, 10/10 on the filtered run). `GetId` is `Camelize` plus a + # Replace chain, i.e. Humanizer IS the transform -- and v3 is a declared breaking major + # (its own release notes ship a Roslyn analyzer for the "v3 namespace migration"). + # + # Why this is more than a red test: those fragments are the IDENTITY of the published + # ontology -- 1 408 fallacy IRIs in docs/ontology/argumentum.owl and 223 virtue IRIs in + # argumentum_virtues.owl are built by this function. A silent Camelize change renames + # every accented term's IRI on the next regeneration, breaking external consumers + # (#133 publication, the CoursIA import) with a green build and no diff in our own code. + # Same shape as the licence findings above, one axis over: a package can change + # identity-bearing OUTPUT without any tool announcing it. + # + # Majors only -- and here that filter is NOT the no-op it was for Playwright: Humanizer's + # break IS at the major boundary (2.x -> 3.x). The general rule the two cases share is + # that the right filter depends on where the package puts its break, so measure the + # package's versioning before choosing the update-types. + # Deferred work this pin accompanies: issue #951 (deliberate v3 migration + an explicit + # decision on whether published IRIs may change, which is jsboige's, not ours). + - dependency-name: "Humanizer" + update-types: ["version-update:semver-major"] # NOT pinned, on purpose: dotNetRdf. The #945 review first attributed the OwlAdapter # break to dotNetRdf 3.3.2 -> 3.5.2; re-measured, that is wrong. dotNetRdf supplies # VDS.RDF (parsing, used elsewhere in the same file), its bump is a MINOR, and