Skip to content

Support linting OpenAPI 3.0 specs - #1150

Merged
jviotti merged 3 commits into
mainfrom
linter-openapi-3-0
Oct 13, 2026
Merged

jviotti merged 3 commits into
mainfrom
linter-openapi-3-0

Conversation

@jviotti

@jviotti jviotti commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

View guided diff

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

6 issues found across 97 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/alterschema/common/required_properties_in_properties.h">

<violation number="1" location="src/alterschema/common/required_properties_in_properties.h:73">
P2: This changes the Draft 2019-09 and 2020-12 lint output from `true` to `{}`, causing the existing `required_properties_in_properties` tests to fail. Update those expected outputs or preserve `true` for dialects that support boolean schemas.</violation>
</file>

<file name="src/alterschema/common/equal_numeric_bounds_to_enum.h">

<violation number="1" location="src/alterschema/common/equal_numeric_bounds_to_enum.h:27">
P1: This enables rewriting `type: "integer"` with equal fractional bounds into `enum: [3.5]`, changing an unsatisfiable schema into one that accepts 3.5. Skip this rule for non-integral bounds on integer schemas.</violation>
</file>

<file name="src/alterschema/common/draft_ref_siblings.h">

<violation number="1" location="src/alterschema/common/draft_ref_siblings.h:28">
P3: OpenAPI 3.0 now triggers this rule, but its trace still says it applies only to Draft 7 and older dialects. Update the description to include OpenAPI 3.0.</violation>
</file>

<file name="src/alterschema/common/maximum_real_for_integer.h">

<violation number="1" location="src/alterschema/common/maximum_real_for_integer.h:31">
P1: This enables a semantics-changing rewrite for OpenAPI 3.0 schemas with `exclusiveMaximum: true`: `maximum: 3.5` becomes `maximum: 3` and remains exclusive, so valid integer 3 is rejected. Skip this rewrite when the boolean exclusive bound is active, or adjust the exclusive bound together with `maximum`.</violation>
</file>

<file name="src/alterschema/common/anyof_true_simplify.h">

<violation number="1" location="src/alterschema/common/anyof_true_simplify.h:27">
P2: This enables the fixer to erase `anyOf` even when an OpenAPI discriminator uses its branches as polymorphic alternatives. Preserve the composition for schemas with `discriminator` so the fix does not leave the discriminator without its candidates.</violation>
</file>

<file name="src/alterschema/linter/unnecessary_allof_wrapper.h">

<violation number="1" location="src/alterschema/linter/unnecessary_allof_wrapper.h:118">
P2: This rule can move `discriminator` out of an OpenAPI 3.0 `allOf` branch and attach it to a different Schema Object. Preserve its location because OpenAPI consumers use it to determine which schema the polymorphism hint applies to.</violation>
</file>

Reply with feedback, questions, or to request a fix.

View guided diff | Re-trigger cubic

Comment thread src/alterschema/linter/items_schema_default.h
Comment thread src/alterschema/common/double_negation_elimination.h Outdated
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: This enables rewriting type: "integer" with equal fractional bounds into enum: [3.5], changing an unsatisfiable schema into one that accepts 3.5. Skip this rule for non-integral bounds on integer schemas.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/common/equal_numeric_bounds_to_enum.h, line 27:

<comment>This enables rewriting `type: "integer"` with equal fractional bounds into `enum: [3.5]`, changing an unsatisfiable schema into one that accepts 3.5. Skip this rule for non-integral bounds on integer schemas.</comment>

<file context>
@@ -23,9 +23,14 @@ class EqualNumericBoundsToEnum final : public SchemaTransformRule {
                           SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
-                          SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}) &&
+                          SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
+                          SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&
                      schema.is_object());
 
</file context>

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_2,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: This enables a semantics-changing rewrite for OpenAPI 3.0 schemas with exclusiveMaximum: true: maximum: 3.5 becomes maximum: 3 and remains exclusive, so valid integer 3 is rejected. Skip this rewrite when the boolean exclusive bound is active, or adjust the exclusive bound together with maximum.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/common/maximum_real_for_integer.h, line 31:

<comment>This enables a semantics-changing rewrite for OpenAPI 3.0 schemas with `exclusiveMaximum: true`: `maximum: 3.5` becomes `maximum: 3` and remains exclusive, so valid integer 3 is rejected. Skip this rewrite when the boolean exclusive bound is active, or adjust the exclusive bound together with `maximum`.</comment>

<file context>
@@ -27,7 +27,8 @@ class MaximumRealForInteger final : public SchemaTransformRule {
              SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_2,
-             SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1}) &&
+             SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
+             SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&
         schema.is_object());
 
</file context>

schema.at("required").at(location.at(1).to_index()).to_string()};
schema.at("properties").assign(property, sourcemeta::core::JSON{true});
schema.at("properties")
.assign(property, sourcemeta::core::JSON::make_object());

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This changes the Draft 2019-09 and 2020-12 lint output from true to {}, causing the existing required_properties_in_properties tests to fail. Update those expected outputs or preserve true for dialects that support boolean schemas.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/common/required_properties_in_properties.h, line 73:

<comment>This changes the Draft 2019-09 and 2020-12 lint output from `true` to `{}`, causing the existing `required_properties_in_properties` tests to fail. Update those expected outputs or preserve `true` for dialects that support boolean schemas.</comment>

<file context>
@@ -68,7 +69,8 @@ class RequiredPropertiesInProperties final : public SchemaTransformRule {
           schema.at("required").at(location.at(1).to_index()).to_string()};
-      schema.at("properties").assign(property, sourcemeta::core::JSON{true});
+      schema.at("properties")
+          .assign(property, sourcemeta::core::JSON::make_object());
     }
   }
</file context>

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_6,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This enables the fixer to erase anyOf even when an OpenAPI discriminator uses its branches as polymorphic alternatives. Preserve the composition for schemas with discriminator so the fix does not leave the discriminator without its candidates.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/common/anyof_true_simplify.h, line 27:

<comment>This enables the fixer to erase `anyOf` even when an OpenAPI discriminator uses its branches as polymorphic alternatives. Preserve the composition for schemas with `discriminator` so the fix does not leave the discriminator without its candidates.</comment>

<file context>
@@ -23,7 +23,8 @@ class AnyOfTrueSimplify final : public SchemaTransformRule {
              SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_6,
-             SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4}) &&
+             SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4,
+             SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&
         schema.is_object() && schema.defines(KEYWORD) &&
         schema.at(KEYWORD).is_array());
</file context>

Comment on lines +118 to +121
if ((keyword == "nullable" && is_nullable(entry, vocabularies)) ||
(keyword == "type" && (is_nullable(schema, vocabularies) ||
is_nullable(entry, vocabularies)))) {
return false;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This rule can move discriminator out of an OpenAPI 3.0 allOf branch and attach it to a different Schema Object. Preserve its location because OpenAPI consumers use it to determine which schema the polymorphism hint applies to.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/linter/unnecessary_allof_wrapper.h, line 118:

<comment>This rule can move `discriminator` out of an OpenAPI 3.0 `allOf` branch and attach it to a different Schema Object. Preserve its location because OpenAPI consumers use it to determine which schema the polymorphism hint applies to.</comment>

<file context>
@@ -110,6 +112,15 @@ class UnnecessaryAllOfWrapper final : public SchemaTransformRule {
+        // In OpenAPI 3.0, `nullable` widens the `type` that sits next to it, so
+        // moving either one out from under the other changes what the branch
+        // and the parent each admit
+        if ((keyword == "nullable" && is_nullable(entry, vocabularies)) ||
+            (keyword == "type" && (is_nullable(schema, vocabularies) ||
+                                   is_nullable(entry, vocabularies)))) {
</file context>
Suggested change
if ((keyword == "nullable" && is_nullable(entry, vocabularies)) ||
(keyword == "type" && (is_nullable(schema, vocabularies) ||
is_nullable(entry, vocabularies)))) {
return false;
if ((vocabularies.contains(SchemaVocabularies::Known::OPENAPI_3_0_BASE) &&
keyword == "discriminator") ||
(keyword == "nullable" && is_nullable(entry, vocabularies)) ||
(keyword == "type" && (is_nullable(schema, vocabularies) ||
is_nullable(entry, vocabularies)))) {
return false;
}

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}));
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: OpenAPI 3.0 now triggers this rule, but its trace still says it applies only to Draft 7 and older dialects. Update the description to include OpenAPI 3.0.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/alterschema/common/draft_ref_siblings.h, line 28:

<comment>OpenAPI 3.0 now triggers this rule, but its trace still says it applies only to Draft 7 and older dialects. Update the description to include OpenAPI 3.0.</comment>

<file context>
@@ -24,7 +24,8 @@ class DraftRefSiblings final : public SchemaTransformRule {
          SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
-         SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}));
+         SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
+         SchemaVocabularies::Known::OPENAPI_3_0_BASE}));
     ONLY_CONTINUE_IF(schema.is_object() && schema.defines("$ref"));
 
</file context>

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Oct 13, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Extends linting and automatic fixes to OpenAPI 3.0 Schema Objects.
Changes:

  • Enables existing assertion, applicator, reference, and metadata rules for the OpenAPI 3.0 vocabulary.
  • Adds a dialect-aware nullable helper and guards for type-sensitive rewrites.
  • Registers OpenAPI 3.0 format names in the format-prefix rule.
  • Uses empty object schemas when defining missing required properties.
  • Adds Draft 4 unsatisfiable-negation handling and skips ignored $ref siblings.
  • Adds default-dialect test helpers and extensive OpenAPI 3.0 regression coverage.
  • Updates vendored Core, including nullable metadata, utility refactors, and Markdown/Punycode input-bound APIs.
Technical notes: OpenAPI 3.0 is supplied as the default dialect rather than declared with $schema; unsupported boolean-schema rewrites remain disabled.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 6 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1_HYPER}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1_HYPER,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At src/alterschema/linter/items_schema_default.h:36, enabling this rule makes { "type": "array", "items": {} } lose its items keyword. OpenAPI 3.0 requires items whenever type is array, so could you take a look at this auto-fix turning a valid Schema Object into an invalid one?

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_6,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you take a look at { "type": "string", "not": { "not": { "nullable": true } } } when enabling this rule at src/alterschema/common/double_negation_elimination.h:28? The nested nullable has no sibling type and therefore has no effect, but transform() moves it beside the parent's type, making the rewritten schema accept null when the original rejects it.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_2,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you take a look at boolean exclusive bounds in the OpenAPI case enabled at src/alterschema/common/maximum_real_for_integer.h:31? With type: "integer", maximum: 3.5, and exclusiveMaximum: true, rounding to maximum: 3 incorrectly rejects 3; the minimum rule similarly rejects 4 after rounding an exclusive minimum: 3.5.

Other locations where this applies: src/alterschema/common/minimum_real_for_integer.h:31

Severity: medium

Other Locations
  • src/alterschema/common/minimum_real_for_integer.h:31

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you take a look at the existing-enum case enabled at src/alterschema/common/equal_numeric_bounds_to_enum.h:27? For { "type": "integer", "minimum": 3, "maximum": 3, "enum": [2] }, transform() overwrites the enumeration with [3], changing an unsatisfiable OpenAPI schema into one that accepts 3.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_1,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_0,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also take a look at fractional bounds with type: "integer" in the OpenAPI case enabled at src/alterschema/common/equal_numeric_bounds_to_enum.h:27? { "type": "integer", "minimum": 3.5, "maximum": 3.5 } cannot accept any value, but this rewrite removes type and produces enum: [3.5], which accepts the forbidden fractional value.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_6,
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4}) &&
SchemaVocabularies::Known::JSON_SCHEMA_DRAFT_4,
SchemaVocabularies::Known::OPENAPI_3_0_BASE}) &&

@augmentcode augmentcode Bot Oct 13, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you take a look at counting readOnly/writeOnly properties as unconditionally required in the OpenAPI case at src/alterschema/linter/unsatisfiable_min_properties.h:27? With minProperties: 1, required: ["id"], and properties.id.readOnly: true, this rule removes minProperties and permits {} in requests because the required id applies only to responses; writeOnly has the symmetric response problem.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: aa7cb35 Previous: a5a019a Ratio
Convert_Draft3_To_2020_12 3829758.216666667 ns 3038866.440677966 ns 1.26
Convert_201909_To_2020_12_Unevaluated 447592.4785046729 ns 313376.75 ns 1.43
Alterschema_Check_Readibility_ISO_Language_Set_3 254441934 ns 192526110 ns 1.32
Alterschema_Check_Readibility_OMC 51218939.2 ns 42762250 ns 1.20
Alterschema_Check_Readibility_KrakenD 601694962 ns 526053480 ns 1.14
Alterschema_Apply_Readibility_KrakenD 61787031495 ns 54458613809 ns 1.13
Alterschema_Check_Invalid_External_Refs 269633146 ns 180766694 ns 1.49
Alterschema_Check_Resolvable_External_Refs 240459.13298969073 ns 163374.45371024736 ns 1.47
TestSuite_Parse_WoT 5919230.325 ns 4712528.2549019605 ns 1.26
Micro_2020_12_Dynamic_Ref 997.4839477109012 ns 714.6929487100699 ns 1.40
Micro_2020_12_Dynamic_Ref_Single 4.424295052412521 ns 3.6838071810130004 ns 1.20
Micro_2020_12_Simple_Output_Mask 1305.0202540002056 ns 1047.7875785552887 ns 1.25
Micro_2020_12_Simple_Output_Annotations 54062.556444241316 ns 42947.07018488602 ns 1.26
Micro_2020_12_Simple_Output_Annotation_Dropping 1573506.0397350993 ns 1192700.315 ns 1.32
Micro_2020_12_Compile_NonCircular_Shared_Refs 578423.842364532 ns 419554.83001808316 ns 1.38
Micro_2020_12_Exhaustive_Deep_Numeric 9824.622394207963 ns 6707.984894690341 ns 1.46
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 43719.052327746744 ns 33157.72362869198 ns 1.32
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 23207.401954795358 ns 16674.36634437651 ns 1.39
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 181.5017684205012 ns 116.60722294698542 ns 1.56
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 2730.465455294414 ns 1988.659614865321 ns 1.37
Micro_2019_09_Unevaluated_Properties 32.385585557984854 ns 23.18928651215501 ns 1.40
Micro_2019_09_Compile_Wrap 91476890 ns 69817864 ns 1.31
Micro_Draft7_If_Then_Else 25.93539730515427 ns 19.901117604110265 ns 1.30
Micro_Draft6_Property_Names 149.0376550708417 ns 111.82119350384292 ns 1.33
Micro_Draft6_Compile_FHIR 4097853646 ns 3239893463 ns 1.26
Micro_Draft4_Meta_1_No_Callback 192.57711265933023 ns 146.41792815607687 ns 1.32
Micro_Draft4_Required_Properties 993.1380783960823 ns 854.3117552741096 ns 1.16
Micro_Draft4_Many_Optional_Properties_Minimal_Match 25.025804488463173 ns 21.326963713402176 ns 1.17
Micro_Draft4_Few_Optional_Properties_Minimal_Match 18.394283245372833 ns 12.95574728998973 ns 1.42
Micro_Draft4_Items_Schema 359.3656964128977 ns 349.31722571465224 ns 1.03
Micro_Draft4_Nested_Object 1.6336033684757798 ns 1.3707959013977553 ns 1.19
Micro_Draft4_Properties_Triad_Optional 398.34540406537633 ns 251.5122404841473 ns 1.58
Micro_Draft4_Properties_Triad_Required 449.6155159882951 ns 277.35075295909314 ns 1.62
Micro_Draft4_Properties_Triad_Closed 326.32117265390315 ns 206.81600859103855 ns 1.58
Micro_Draft4_Properties_Closed 80.13253333351429 ns 56.82332668476731 ns 1.41
Micro_Draft4_Non_Recursive_Ref 9.465781787394548 ns 6.907433967087321 ns 1.37
Micro_Draft4_Pattern_Properties_Empty 204.11761366900492 ns 161.39124082800714 ns 1.26
Micro_Draft4_Ref_To_Single_Property 18.23443980996669 ns 12.739705016003173 ns 1.43
Micro_Draft4_Additional_Properties_Type 14.934345287537699 ns 11.715630062116995 ns 1.27
Micro_Draft4_Nested_Oneof 65.62421453289024 ns 59.029690482226734 ns 1.11
Micro_Draft4_Short_Enum 14.69870876608784 ns 10.175224267448295 ns 1.44
Micro_Draft4_Long_Enum 15.519361843197009 ns 11.047769582288971 ns 1.40
Micro_Draft4_Long_Enum_Short_Strings 14.730087629348237 ns 10.22547829385965 ns 1.44
Micro_Draft4_Type_Object 4.428699369980032 ns 3.5242385605416806 ns 1.26
Micro_Draft4_Ref_Single_100 1485660.5031055901 ns 1113364.516431925 ns 1.33
Micro_Draft4_Compile_Ref_Many_Nested 950091.6370967742 ns 718265.893292683 ns 1.32
Micro_Draft4_Compile_Wrap 1248283.8105263158 ns 949216.1510204081 ns 1.32
JSONLD_Catalog_Simple 23051656.5 ns 14773491.0625 ns 1.56
JSONLD_Catalog_Override_Agreeing 22700880 ns 15279228.875 ns 1.49
JSONLD_Catalog_Override_Shadowing 35182835.333333336 ns 24019256.555555556 ns 1.46
E2E_Compiler_adaptivecard 38535250.166666664 ns 28837304.57142857 ns 1.34
E2E_Compiler_ansible_meta 11425642.857142856 ns 8782053.851851853 ns 1.30
E2E_Compiler_aws_cdk 206723.89912280702 ns 140976.85952380951 ns 1.47
E2E_Compiler_babelrc 1110788.2863849765 ns 841060.5663082438 ns 1.32
E2E_Compiler_clang_format 7117860.636363637 ns 5681498.390243903 ns 1.25
E2E_Compiler_cmake_presets 15923506.23076923 ns 13108274.333333334 ns 1.21
E2E_Compiler_code_climate 833159.7588652482 ns 645130.9786666667 ns 1.29
E2E_Compiler_cql2 8014123.413793104 ns 6591654.388888889 ns 1.22
E2E_Compiler_cspell 11944528.65 ns 9625621.96 ns 1.24
E2E_Compiler_cypress 1870523.4761904762 ns 1469232.2625 ns 1.27
E2E_Compiler_deno 3799959.5483870967 ns 3016147.6533333333 ns 1.26
E2E_Compiler_dependabot 1510458.9426751593 ns 1185619.4315789475 ns 1.27
E2E_Compiler_draft_04 1433775.0898203594 ns 1185974.6165048543 ns 1.21
E2E_Compiler_fabric_mod 2384685.9494949495 ns 1956390.6293103448 ns 1.22
E2E_Compiler_geojson 11329982.38095238 ns 9324777.2 ns 1.22
E2E_Compiler_gitpod_configuration 2331248.8613861385 ns 1894689.7734375 ns 1.23
E2E_Compiler_helm_chart_lock 335115.4446002805 ns 236957.10963114753 ns 1.41
E2E_Compiler_importmap 158729.2404554588 ns 107024.3008531657 ns 1.48
E2E_Compiler_jasmine 594767.3978779841 ns 440698.44333996024 ns 1.35
E2E_Compiler_jshintrc 1800938.3643410853 ns 1348610.1597633136 ns 1.34
E2E_Compiler_jsconfig 10191311.782608695 ns 7889123.137931035 ns 1.29
E2E_Compiler_krakend 64869265.666666664 ns 50704218.5 ns 1.28
E2E_Compiler_lazygit 14698307.4375 ns 11816766.6 ns 1.24
E2E_Compiler_lerna 740207.825 ns 539398.3264840182 ns 1.37
E2E_Compiler_nest_cli 3466443.911764706 ns 2717337.25 ns 1.28
E2E_Compiler_omc 91812681.5 ns 69946686.33333333 ns 1.31
E2E_Compiler_omnisharp 3119689.4210526315 ns 2404159.3434343436 ns 1.30
E2E_Compiler_openapi 15123854.75 ns 12112534.789473685 ns 1.25
E2E_Compiler_pre_commit_hooks 1543840.7727272727 ns 1195639.7696335078 ns 1.29
E2E_Compiler_pulumi 1917022.9193548388 ns 1566817.4304635762 ns 1.22
E2E_Compiler_semantic_release 694268.8035190615 ns 539843.3188073394 ns 1.29
E2E_Compiler_stale 582727.5160493827 ns 414932.9404553415 ns 1.40
E2E_Compiler_stylecop 2618121.7078651683 ns 2084458.6206896552 ns 1.26
E2E_Compiler_tmuxinator 937756.9299610895 ns 719440.8282208589 ns 1.30
E2E_Compiler_ui5 30639308 ns 25314026.25 ns 1.21
E2E_Compiler_ui5_manifest 181592948 ns 141200180.5 ns 1.29
E2E_Compiler_unreal_engine_uproject 1967214.5462184874 ns 1569064.2071428571 ns 1.25
E2E_Compiler_users_array 428249.39711191336 ns 294737.9098143236 ns 1.45
E2E_Compiler_vercel 6708406.194444444 ns 5489231.976744186 ns 1.22
E2E_Compiler_yamllint 134508.8639726807 ns 87266.59592464437 ns 1.54
E2E_Evaluator_adaptivecard 27537.974745079442 ns 20391.04864454016 ns 1.35
E2E_Evaluator_ansible_meta 299601.23299748113 ns 197939.82352941178 ns 1.51
E2E_Evaluator_aws_cdk 61711.32685832686 ns 46370.28875811688 ns 1.33
E2E_Evaluator_babelrc 126131.21420996818 ns 88640.65637937523 ns 1.42
E2E_Evaluator_cerebrum_criminal_case 1303580.5989010988 ns 1045386.3822222222 ns 1.25
E2E_Evaluator_clang_format 110985.7710390221 ns 81385.847550531 ns 1.36
E2E_Evaluator_cmake_presets 5005824.14893617 ns 4755907.857142857 ns 1.05
E2E_Evaluator_code_climate 242131.24924623116 ns 189954.85726072607 ns 1.27
E2E_Evaluator_cql2 230076.09494949496 ns 177514.70284834487 ns 1.30
E2E_Evaluator_cspell 670569.6462395543 ns 542902.0640732265 ns 1.24
E2E_Evaluator_cypress 204801.75089928057 ns 153443.6721635884 ns 1.33
E2E_Evaluator_deno 390632.34747145185 ns 352955.6404833837 ns 1.11
E2E_Evaluator_dependabot 430119.24363636365 ns 316904.70485175203 ns 1.36
E2E_Evaluator_draft_04 9055937.43478261 ns 5473685.5813953485 ns 1.65
E2E_Evaluator_fabric_mod 870944.8763636363 ns 737028.5532544379 ns 1.18
E2E_Evaluator_geojson 13972195.411764706 ns 10531431.6 ns 1.33
E2E_Evaluator_gitpod_configuration 310619.0816326531 ns 214234.51512287336 ns 1.45
E2E_Evaluator_helm_chart_lock 400532.2993311037 ns 421635.38786764705 ns 0.95
E2E_Evaluator_importmap 51953.028324324325 ns 28657.812476274834 ns 1.81
E2E_Evaluator_jasmine 138709.74674957604 ns 105522.26614026939 ns 1.31
E2E_Evaluator_jshintrc 1196445 ns 1034943.0512820513 ns 1.16
E2E_Evaluator_jsconfig 474368.93253968254 ns 342583.3196969697 ns 1.38
E2E_Evaluator_krakend 227635.962888666 ns 162314.0832696715 ns 1.40
E2E_Evaluator_lazygit 163265.17032163742 ns 112571.14175724638 ns 1.45
E2E_Evaluator_lerna 187672.22025723473 ns 201466.8061749571 ns 0.93
E2E_Evaluator_nest_cli 245431.75950668036 ns 179777.61234177215 ns 1.37
E2E_Evaluator_omc 25591.479015600966 ns 17487.8614489688 ns 1.46
E2E_Evaluator_omnisharp 642217.2782369145 ns 541216.4941724942 ns 1.19
E2E_Evaluator_openapi 16264881.545454545 ns 11430868.4 ns 1.42
E2E_Evaluator_pre_commit_hooks 641844.75 ns 531487.6169724771 ns 1.21
E2E_Evaluator_pulumi 780860.9967741936 ns 731800.85625 ns 1.07
E2E_Evaluator_semantic_release 113575.77055449331 ns 82454.58916637355 ns 1.38
E2E_Evaluator_stale 194296.2487562189 ns 143580.211456429 ns 1.35
E2E_Evaluator_stylecop 349592.54135338345 ns 265313.7912735849 ns 1.32
E2E_Evaluator_tmuxinator 116806.78278278279 ns 87559.94251586412 ns 1.33
E2E_Evaluator_ui5 635218.2183288409 ns 469197.4872798434 ns 1.35
E2E_Evaluator_ui5_manifest 3142027.756756757 ns 2612331.0361445784 ns 1.20
E2E_Evaluator_unreal_engine_uproject 565678.6409638554 ns 433985.37937384896 ns 1.30
E2E_Evaluator_users_array 696516.821958457 ns 566695.4343675418 ns 1.23
E2E_Evaluator_vercel 348708.72754050075 ns 300258.02944942383 ns 1.16
E2E_Evaluator_yamllint 14543.116267708841 ns 10882.329673284632 ns 1.34

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JavaScript (linux/gcc)

Details
Benchmark suite Current: aa7cb35 Previous: a5a019a Ratio
E2E_Evaluator_adaptivecard 124839 ns 94252 ns 1.32
E2E_Evaluator_ansible-meta 538066 ns 385929 ns 1.39
E2E_Evaluator_aws-cdk 149268 ns 114950 ns 1.30
E2E_Evaluator_babelrc 361876 ns 299459 ns 1.21
E2E_Evaluator_cerebrum-criminal-case 2514879 ns 1823687 ns 1.38
E2E_Evaluator_clang-format 270375 ns 205526 ns 1.32
E2E_Evaluator_cmake-presets 17748814 ns 14064998 ns 1.26
E2E_Evaluator_code-climate 541084 ns 420465 ns 1.29
E2E_Evaluator_cql2 1233667 ns 878349 ns 1.40
E2E_Evaluator_cspell 1550909 ns 1262887 ns 1.23
E2E_Evaluator_cypress 808896 ns 714716 ns 1.13
E2E_Evaluator_deno 1106885 ns 916344 ns 1.21
E2E_Evaluator_dependabot 1120265 ns 841150 ns 1.33
E2E_Evaluator_draft-04 20765107 ns 15980487 ns 1.30
E2E_Evaluator_fabric-mod 2305443 ns 1934514 ns 1.19
E2E_Evaluator_geojson 27300051 ns 15344650 ns 1.78
E2E_Evaluator_gitpod-configuration 755697 ns 536130 ns 1.41
E2E_Evaluator_helm-chart-lock 1087174 ns 935539 ns 1.16
E2E_Evaluator_importmap 272892 ns 261749 ns 1.04
E2E_Evaluator_jasmine 303247 ns 212845 ns 1.42
E2E_Evaluator_jsconfig 1303229 ns 1118745 ns 1.16
E2E_Evaluator_jshintrc 2796641 ns 2671385 ns 1.05
E2E_Evaluator_krakend 696623 ns 500641 ns 1.39
E2E_Evaluator_lazygit 522300 ns 358813 ns 1.46
E2E_Evaluator_lerna 469954 ns 382465 ns 1.23
E2E_Evaluator_nest-cli 616008 ns 442714 ns 1.39
E2E_Evaluator_omc 122529 ns 92477 ns 1.32
E2E_Evaluator_omnisharp 1442903 ns 1119962 ns 1.29
E2E_Evaluator_openapi 48675332 ns 29823646 ns 1.63
E2E_Evaluator_pre-commit-hooks 2046743 ns 1623514 ns 1.26
E2E_Evaluator_pulumi 1944751 ns 1561372 ns 1.25
E2E_Evaluator_semantic-release 267369 ns 196007 ns 1.36
E2E_Evaluator_stale 414472 ns 306579 ns 1.35
E2E_Evaluator_stylecop 1224047 ns 1039453 ns 1.18
E2E_Evaluator_tmuxinator 249009 ns 199489 ns 1.25
E2E_Evaluator_ui5 2336698 ns 1669856 ns 1.40
E2E_Evaluator_ui5-manifest 11280753 ns 8049222 ns 1.40
E2E_Evaluator_unreal-engine-uproject 1548058 ns 1271422 ns 1.22
E2E_Evaluator_users-array 3328188 ns 2424463 ns 1.37
E2E_Evaluator_vercel 1015831 ns 810805 ns 1.25
E2E_Evaluator_yamllint 27693 ns 18048 ns 1.53

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti
jviotti merged commit 1b09fa0 into main Oct 13, 2026
13 of 14 checks passed
@jviotti
jviotti deleted the linter-openapi-3-0 branch October 13, 2026 20:19

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: aa7cb35 Previous: 1b09fa0 Ratio
E2E_Compiler_adaptivecard 29593319.333333332 ns 30056185.222222224 ns 0.98
E2E_Compiler_ansible_meta 9668089.76923077 ns 9064126.4 ns 1.07
E2E_Compiler_aws_cdk 133859.4782362917 ns 115159.88708743486 ns 1.16
E2E_Compiler_babelrc 955254.1088435374 ns 861488.5496688741 ns 1.11
E2E_Compiler_clang_format 5813746.023809524 ns 5129945.257142857 ns 1.13
E2E_Compiler_cmake_presets 14027065.916666666 ns 14177567.6875 ns 0.99
E2E_Compiler_code_climate 639857.8178694159 ns 596025.8929503916 ns 1.07
E2E_Compiler_cql2 5689136.531914894 ns 6488981.707317073 ns 0.88
E2E_Compiler_cspell 9971170 ns 12055937.5 ns 0.83
E2E_Compiler_cypress 1402164.6293706293 ns 1657869.6209677418 ns 0.85
E2E_Compiler_deno 2805705.430232558 ns 2848127.3055555555 ns 0.99
E2E_Compiler_dependabot 1139745.5648148148 ns 1108374.0188679246 ns 1.03
E2E_Compiler_draft_04 925453.3450704225 ns 938700.3254901961 ns 0.99
E2E_Compiler_fabric_mod 1600184.6666666667 ns 1770542.1974522292 ns 0.90
E2E_Compiler_geojson 10562379.88235294 ns 9502107.421052631 ns 1.11
E2E_Compiler_gitpod_configuration 1904896.6335877862 ns 1611975.7462686568 ns 1.18
E2E_Compiler_helm_chart_lock 214015.80928355196 ns 212082.46936936936 ns 1.01
E2E_Compiler_importmap 93238.54670224934 ns 92530.62983630953 ns 1.01
E2E_Compiler_jasmine 397070.32059800666 ns 381733.2949308756 ns 1.04
E2E_Compiler_jshintrc 1179739.330049261 ns 1182134.5921052631 ns 1.00
E2E_Compiler_jsconfig 7956210.794117647 ns 7817690.666666667 ns 1.02
E2E_Compiler_krakend 59270083.25 ns 59105416.666666664 ns 1.00
E2E_Compiler_lazygit 14179761 ns 14809442.6875 ns 0.96
E2E_Compiler_lerna 517946.4285714286 ns 511619.4225721785 ns 1.01
E2E_Compiler_nest_cli 2841065.476190476 ns 2501729.846153846 ns 1.14
E2E_Compiler_omc 82936687.5 ns 81023270.5 ns 1.02
E2E_Compiler_omnisharp 2396082.8470588233 ns 2414416.2448979593 ns 0.99
E2E_Compiler_openapi 11596952.38095238 ns 12261575.5625 ns 0.95
E2E_Compiler_pre_commit_hooks 1098947.5666666667 ns 1001250.7155172414 ns 1.10
E2E_Compiler_pulumi 1345410.3107344634 ns 1275415.8031088084 ns 1.05
E2E_Compiler_semantic_release 475329.2965116279 ns 456036.2 ns 1.04
E2E_Compiler_stale 419823.62728785357 ns 402140.3785488959 ns 1.04
E2E_Compiler_stylecop 2124618.990990991 ns 1886047.9166666667 ns 1.13
E2E_Compiler_tmuxinator 678756.0925373135 ns 618100.9106699752 ns 1.10
E2E_Compiler_ui5 29095416.75 ns 30450489.625 ns 0.96
E2E_Compiler_ui5_manifest 163731687.5 ns 175987750 ns 0.93
E2E_Compiler_unreal_engine_uproject 1443746.09375 ns 1483480.0824175824 ns 0.97
E2E_Compiler_users_array 299924.07289002556 ns 297153.2382165605 ns 1.01
E2E_Compiler_vercel 5546163.840909091 ns 5521965.277777778 ns 1.00
E2E_Compiler_yamllint 81589.10003279764 ns 73312.92420920765 ns 1.11
E2E_Evaluator_adaptivecard 23047.476241584543 ns 21617.303718471005 ns 1.07
E2E_Evaluator_ansible_meta 207394.76969696968 ns 195274.73675889327 ns 1.06
E2E_Evaluator_aws_cdk 45393.86975033869 ns 43220.04071919619 ns 1.05
E2E_Evaluator_babelrc 97513.95966029725 ns 93378.41556479032 ns 1.04
E2E_Evaluator_cerebrum_criminal_case 944325.7032967033 ns 914938.7101449275 ns 1.03
E2E_Evaluator_clang_format 98762.07322175732 ns 96302.464712688 ns 1.03
E2E_Evaluator_cmake_presets 4052715.272727273 ns 3914080.223880597 ns 1.04
E2E_Evaluator_code_climate 159030.62602179835 ns 163750.99272005295 ns 0.97
E2E_Evaluator_cql2 159328.933747412 ns 161970.9375 ns 0.98
E2E_Evaluator_cspell 478446.98443579767 ns 491529.7619047619 ns 0.97
E2E_Evaluator_cypress 151199.4200260078 ns 159934.03167701865 ns 0.95
E2E_Evaluator_deno 256267.07135135136 ns 305034.84578884934 ns 0.84
E2E_Evaluator_dependabot 281825.5675029869 ns 343875.654589372 ns 0.82
E2E_Evaluator_draft_04 6192645.815789473 ns 6165706.357142857 ns 1.00
E2E_Evaluator_fabric_mod 570948.5525672372 ns 614138.9803921569 ns 0.93
E2E_Evaluator_geojson 9226954.545454545 ns 10443517.857142856 ns 0.88
E2E_Evaluator_gitpod_configuration 204844.32326820603 ns 255018.4222011385 ns 0.80
E2E_Evaluator_helm_chart_lock 278857.90795454546 ns 353647.0144927536 ns 0.79
E2E_Evaluator_importmap 46788.92943469786 ns 47551.893739087056 ns 0.98
E2E_Evaluator_jasmine 109021.31204044117 ns 103101.92155009451 ns 1.06
E2E_Evaluator_jshintrc 1009277.6638655462 ns 960778.6071428572 ns 1.05
E2E_Evaluator_jsconfig 350833.0306122449 ns 324290.06685633 ns 1.08
E2E_Evaluator_krakend 161419.61631827377 ns 157568.5961414791 ns 1.02
E2E_Evaluator_lazygit 112585.98480531813 ns 105806.41787758697 ns 1.06
E2E_Evaluator_lerna 145474.03905765654 ns 136667.18170580963 ns 1.06
E2E_Evaluator_nest_cli 160131.9775357386 ns 164802.20985155195 ns 0.97
E2E_Evaluator_omc 17779.59902255639 ns 16566.164394810312 ns 1.07
E2E_Evaluator_omnisharp 500812.89978678036 ns 483689.40936863545 ns 1.04
E2E_Evaluator_openapi 8240778.285714285 ns 8385754.464285715 ns 0.98
E2E_Evaluator_pre_commit_hooks 419199.3158813263 ns 470134.5230769231 ns 0.89
E2E_Evaluator_pulumi 590305.8588807785 ns 596272.3287292818 ns 0.99
E2E_Evaluator_semantic_release 87401.0054844607 ns 83331.87851799074 ns 1.05
E2E_Evaluator_stale 142289.94491017965 ns 138850.53797829812 ns 1.02
E2E_Evaluator_stylecop 234589.42640075972 ns 234034.05898876404 ns 1.00
E2E_Evaluator_tmuxinator 79238.49111807732 ns 79979.20866935483 ns 0.99
E2E_Evaluator_ui5 434746.387283237 ns 421750.82258064515 ns 1.03
E2E_Evaluator_ui5_manifest 2188868.126213592 ns 1780387.018018018 ns 1.23
E2E_Evaluator_unreal_engine_uproject 414358.58699808794 ns 367008.43585780525 ns 1.13
E2E_Evaluator_users_array 516516.4847826087 ns 465220.66344294004 ns 1.11
E2E_Evaluator_vercel 267705.1724137931 ns 269488.6060254925 ns 0.99
E2E_Evaluator_yamllint 9496.867630373576 ns 9063.086892605983 ns 1.05
JSONLD_Catalog_Simple 19439530.272727273 ns 21905930.555555556 ns 0.89
JSONLD_Catalog_Override_Agreeing 19500260.416666668 ns 16669336.538461538 ns 1.17
JSONLD_Catalog_Override_Shadowing 27052074.111111112 ns 24021375 ns 1.13
Micro_Draft4_Meta_1_No_Callback 162.26423003403752 ns 155.0115044966881 ns 1.05
Micro_Draft4_Required_Properties 772.8101745132512 ns 752.2131980346628 ns 1.03
Micro_Draft4_Many_Optional_Properties_Minimal_Match 19.72726816952552 ns 17.962495922146108 ns 1.10
Micro_Draft4_Few_Optional_Properties_Minimal_Match 11.975963479942937 ns 10.967368933080355 ns 1.09
Micro_Draft4_Items_Schema 290.0842315791264 ns 274.5116032464619 ns 1.06
Micro_Draft4_Nested_Object 1.8769922004358492 ns 1.7898177831164839 ns 1.05
Micro_Draft4_Properties_Triad_Optional 277.2097676463067 ns 262.70137411748107 ns 1.06
Micro_Draft4_Properties_Triad_Required 288.2424122395648 ns 286.54827504539355 ns 1.01
Micro_Draft4_Properties_Triad_Closed 220.4114836764884 ns 210.90738176600644 ns 1.05
Micro_Draft4_Properties_Closed 58.15039675845699 ns 54.73482298707569 ns 1.06
Micro_Draft4_Non_Recursive_Ref 14.985006581445337 ns 13.435142732220124 ns 1.12
Micro_Draft4_Pattern_Properties_Empty 181.40468259191164 ns 187.2206385936946 ns 0.97
Micro_Draft4_Ref_To_Single_Property 11.866302003747652 ns 11.484700776555105 ns 1.03
Micro_Draft4_Additional_Properties_Type 28.790663769728713 ns 27.77332022160102 ns 1.04
Micro_Draft4_Nested_Oneof 41.04801196333054 ns 38.889323842856335 ns 1.06
Micro_Draft4_Short_Enum 6.482321575423601 ns 6.269702866248769 ns 1.03
Micro_Draft4_Long_Enum 11.517541269000874 ns 10.633337508279652 ns 1.08
Micro_Draft4_Long_Enum_Short_Strings 7.904005435159399 ns 7.597330341122868 ns 1.04
Micro_Draft4_Type_Object 3.759283083864323 ns 3.6682715079842545 ns 1.02
Micro_Draft4_Ref_Single_100 1033006.4117647059 ns 1079448.603524229 ns 0.96
Micro_Draft4_Compile_Ref_Many_Nested 675333.9312320917 ns 672896.776 ns 1.00
Micro_Draft4_Compile_Wrap 902271.3178294573 ns 883802.3977272727 ns 1.02
Micro_Draft6_Property_Names 100.71329519208761 ns 100.14681221742083 ns 1.01
Micro_Draft6_Compile_FHIR 5059347291 ns 4763843334 ns 1.06
Micro_Draft7_If_Then_Else 18.578342823914525 ns 18.091223051837275 ns 1.03
Micro_2019_09_Unevaluated_Properties 34.886496615407545 ns 32.044990490073125 ns 1.09
Micro_2019_09_Compile_Wrap 80580347.33333333 ns 72236527.66666667 ns 1.12
Micro_2020_12_Dynamic_Ref 631.4801377863339 ns 601.1891961727384 ns 1.05
Micro_2020_12_Dynamic_Ref_Single 3.613589123747152 ns 3.6565625081295567 ns 0.99
Micro_2020_12_Simple_Output_Mask 801.5130268784361 ns 816.9557337075213 ns 0.98
Micro_2020_12_Simple_Output_Annotations 54925.87593653592 ns 50975.952121871596 ns 1.08
Micro_2020_12_Simple_Output_Annotation_Dropping 1296610.810810811 ns 1262059.6822916667 ns 1.03
Micro_2020_12_Compile_NonCircular_Shared_Refs 406330.7416267943 ns 352795.82175226585 ns 1.15
Micro_2020_12_Exhaustive_Deep_Numeric 5269.786475647157 ns 5591.673074150608 ns 0.94
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 30321.29437678155 ns 30468.591577373536 ns 1.00
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 14370.71827332798 ns 14213.975803111874 ns 1.01
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 92.4998413827896 ns 104.1314772991738 ns 0.89
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 2529.831730976969 ns 2722.6026752722078 ns 0.93
TestSuite_Parse_WoT 4278982.918032787 ns 4753099.68627451 ns 0.90
Alterschema_Check_Readibility_ISO_Language_Set_3 169339375 ns 189834708 ns 0.89
Alterschema_Check_Readibility_OMC 38022505.85714286 ns 49779933.2 ns 0.76
Alterschema_Check_Readibility_KrakenD 395275417 ns 482732667 ns 0.82
Alterschema_Apply_Readibility_KrakenD 41348570208 ns 50599888916 ns 0.82
Alterschema_Check_Invalid_External_Refs 131929000 ns 156904042 ns 0.84
Alterschema_Check_Resolvable_External_Refs 115290.92154915592 ns 136729.93196544275 ns 0.84
Convert_Draft3_To_2020_12 1932057.608695652 ns 2151628.6304347827 ns 0.90
Convert_201909_To_2020_12_Unevaluated 205843.00436300173 ns 241732.0055248619 ns 0.85

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JavaScript (macos/llvm)

Details
Benchmark suite Current: aa7cb35 Previous: 1b09fa0 Ratio
E2E_Evaluator_adaptivecard 98406 ns 88105 ns 1.12
E2E_Evaluator_ansible-meta 356195 ns 349104 ns 1.02
E2E_Evaluator_aws-cdk 115934 ns 112502 ns 1.03
E2E_Evaluator_babelrc 241712 ns 333606 ns 0.72
E2E_Evaluator_cerebrum-criminal-case 1584313 ns 1730318 ns 0.92
E2E_Evaluator_clang-format 159570 ns 185307 ns 0.86
E2E_Evaluator_cmake-presets 10436684 ns 15397162 ns 0.68
E2E_Evaluator_code-climate 354651 ns 460585 ns 0.77
E2E_Evaluator_cql2 920770 ns 1151595 ns 0.80
E2E_Evaluator_cspell 1154291 ns 1405386 ns 0.82
E2E_Evaluator_cypress 538987 ns 599059 ns 0.90
E2E_Evaluator_deno 660019 ns 759686 ns 0.87
E2E_Evaluator_dependabot 756847 ns 776092 ns 0.98
E2E_Evaluator_draft-04 15345434 ns 16095417 ns 0.95
E2E_Evaluator_fabric-mod 1401826 ns 1659377 ns 0.84
E2E_Evaluator_geojson 14949917 ns 18252414 ns 0.82
E2E_Evaluator_gitpod-configuration 525403 ns 608974 ns 0.86
E2E_Evaluator_helm-chart-lock 894594 ns 975337 ns 0.92
E2E_Evaluator_importmap 216012 ns 225437 ns 0.96
E2E_Evaluator_jasmine 220499 ns 203585 ns 1.08
E2E_Evaluator_jsconfig 930273 ns 919170 ns 1.01
E2E_Evaluator_jshintrc 2104121 ns 1989237 ns 1.06
E2E_Evaluator_krakend 461946 ns 442943 ns 1.04
E2E_Evaluator_lazygit 312498 ns 395182 ns 0.79
E2E_Evaluator_lerna 325827 ns 366602 ns 0.89
E2E_Evaluator_nest-cli 447740 ns 538114 ns 0.83
E2E_Evaluator_omc 94855 ns 126925 ns 0.75
E2E_Evaluator_omnisharp 975147 ns 1283877 ns 0.76
E2E_Evaluator_openapi 27271913 ns 39373063 ns 0.69
E2E_Evaluator_pre-commit-hooks 1384790 ns 1610443 ns 0.86
E2E_Evaluator_pulumi 1399879 ns 1853868 ns 0.76
E2E_Evaluator_semantic-release 185679 ns 236414 ns 0.79
E2E_Evaluator_stale 279724 ns 375885 ns 0.74
E2E_Evaluator_stylecop 699477 ns 911688 ns 0.77
E2E_Evaluator_tmuxinator 163197 ns 239193 ns 0.68
E2E_Evaluator_ui5 1565151 ns 2360295 ns 0.66
E2E_Evaluator_ui5-manifest 8830971 ns 12156165 ns 0.73
E2E_Evaluator_unreal-engine-uproject 1176945 ns 1690675 ns 0.70
E2E_Evaluator_users-array 2470009 ns 2999438 ns 0.82
E2E_Evaluator_vercel 730594 ns 1673362 ns 0.44
E2E_Evaluator_yamllint 23868 ns 31438 ns 0.76

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: aa7cb35 Previous: a5a019a Ratio
E2E_Compiler_adaptivecard 23362441 ns 35681511.571428575 ns 0.65
E2E_Compiler_ansible_meta 7365938.875 ns 10126556.826086957 ns 0.73
E2E_Compiler_aws_cdk 117909.4760257044 ns 181306.5873749038 ns 0.65
E2E_Compiler_babelrc 729707.3834355829 ns 1045395.0789473684 ns 0.70
E2E_Compiler_clang_format 4826231.653061224 ns 6689181.277777778 ns 0.72
E2E_Compiler_cmake_presets 11019401.590909092 ns 15780751.153846154 ns 0.70
E2E_Compiler_code_climate 533717.9324324324 ns 780084.9572368421 ns 0.68
E2E_Compiler_cql2 5267259.666666667 ns 7653474.9 ns 0.69
E2E_Compiler_cspell 8519736.5 ns 11747585.2 ns 0.73
E2E_Compiler_cypress 1346903.0847457626 ns 1845381.5625 ns 0.73
E2E_Compiler_deno 2545210.860215054 ns 3487930.7352941176 ns 0.73
E2E_Compiler_dependabot 1023299.0384615385 ns 1424890.512195122 ns 0.72
E2E_Compiler_draft_04 866135.4798534799 ns 1238395.5759162304 ns 0.70
E2E_Compiler_fabric_mod 1575630 ns 2157781.229357798 ns 0.73
E2E_Compiler_geojson 7802249.1 ns 10392589.217391305 ns 0.75
E2E_Compiler_gitpod_configuration 1557551.6078431373 ns 2159841.654545455 ns 0.72
E2E_Compiler_helm_chart_lock 224015.05193578848 ns 327039.70921985817 ns 0.68
E2E_Compiler_importmap 93785.98777602524 ns 142873.70856102003 ns 0.66
E2E_Compiler_jasmine 378025.30868167203 ns 549881.9444444445 ns 0.69
E2E_Compiler_jshintrc 1224588.5130890051 ns 1733987.897810219 ns 0.71
E2E_Compiler_jsconfig 7354807.28125 ns 9907267.416666666 ns 0.74
E2E_Compiler_krakend 45965389 ns 68891162 ns 0.67
E2E_Compiler_lazygit 10408869.56521739 ns 14173930.88235294 ns 0.73
E2E_Compiler_lerna 468587.94082840235 ns 677689.8352601156 ns 0.69
E2E_Compiler_nest_cli 2345964.900990099 ns 3213145.7671232875 ns 0.73
E2E_Compiler_omc 58300296.25 ns 84184498 ns 0.69
E2E_Compiler_omnisharp 2113101.3603603602 ns 2891733.204819277 ns 0.73
E2E_Compiler_openapi 9524470.64 ns 13076976.166666666 ns 0.73
E2E_Compiler_pre_commit_hooks 1041384.8157894737 ns 1439691.8313253012 ns 0.72
E2E_Compiler_pulumi 1243406.3697916667 ns 1717416.5620437956 ns 0.72
E2E_Compiler_semantic_release 423155.17414721724 ns 626802.501312336 ns 0.68
E2E_Compiler_stale 389560.1241830065 ns 567135.5415676959 ns 0.69
E2E_Compiler_stylecop 1716408.9710144927 ns 2425924.6938775512 ns 0.71
E2E_Compiler_tmuxinator 574456.2469733657 ns 846985.0320284697 ns 0.68
E2E_Compiler_ui5 20835345.9 ns 31472696.285714287 ns 0.66
E2E_Compiler_ui5_manifest 116222095.5 ns 183749600 ns 0.63
E2E_Compiler_unreal_engine_uproject 1322260.2849162011 ns 1873507.6 ns 0.71
E2E_Compiler_users_array 257249.99129488575 ns 374992.3290734824 ns 0.69
E2E_Compiler_vercel 4821680.734693877 ns 6474265 ns 0.74
E2E_Compiler_yamllint 78985.77290836653 ns 122008.29055441478 ns 0.65
E2E_Evaluator_adaptivecard 20685.019916048943 ns 26537.874457390906 ns 0.78
E2E_Evaluator_ansible_meta 175288.3162583519 ns 249796.48577449948 ns 0.70
E2E_Evaluator_aws_cdk 36205.770181596214 ns 51539.82003061448 ns 0.70
E2E_Evaluator_babelrc 77183.77426710098 ns 115222.49490538574 ns 0.67
E2E_Evaluator_cerebrum_criminal_case 906837.7961538462 ns 1092691.064516129 ns 0.83
E2E_Evaluator_clang_format 85672.76864864865 ns 117730.59043348281 ns 0.73
E2E_Evaluator_cmake_presets 3515915.432835821 ns 4457002.115384615 ns 0.79
E2E_Evaluator_code_climate 127205.18556149733 ns 187633.3251192369 ns 0.68
E2E_Evaluator_cql2 157663.19490957804 ns 225877.85228377066 ns 0.70
E2E_Evaluator_cspell 499624.866807611 ns 651155.8241758242 ns 0.77
E2E_Evaluator_cypress 138469.3453908985 ns 200274.75063829788 ns 0.69
E2E_Evaluator_deno 210630.58983666063 ns 339468.56303724926 ns 0.62
E2E_Evaluator_dependabot 265888.33069977426 ns 356371.05829596415 ns 0.75
E2E_Evaluator_draft_04 5947472.459459459 ns 9624397.217391305 ns 0.62
E2E_Evaluator_fabric_mod 539096.9954337899 ns 722902.7963525836 ns 0.75
E2E_Evaluator_geojson 10080030.869565217 ns 12825499.777777778 ns 0.79
E2E_Evaluator_gitpod_configuration 178020.49025487257 ns 255859.34127843988 ns 0.70
E2E_Evaluator_helm_chart_lock 217535.09836065574 ns 373511.63607085345 ns 0.58
E2E_Evaluator_importmap 38865.50573947762 ns 51225.2903372835 ns 0.76
E2E_Evaluator_jasmine 78355.08228064186 ns 111425.0922217047 ns 0.70
E2E_Evaluator_jshintrc 929857.5354330709 ns 1228945.4973262032 ns 0.76
E2E_Evaluator_jsconfig 330391.7332402235 ns 447795.3062015504 ns 0.74
E2E_Evaluator_krakend 146846.80036968578 ns 213570.1779816514 ns 0.69
E2E_Evaluator_lazygit 105890.18998658918 ns 158037.60106737824 ns 0.67
E2E_Evaluator_lerna 91714.228049265 ns 150864.1423052157 ns 0.61
E2E_Evaluator_nest_cli 145315.036900369 ns 196089.7380952381 ns 0.74
E2E_Evaluator_omc 17105.094852308575 ns 22054.941333079776 ns 0.78
E2E_Evaluator_omnisharp 457361.6582524272 ns 637684.936 ns 0.72
E2E_Evaluator_openapi 10031204.782608695 ns 13390103.384615384 ns 0.75
E2E_Evaluator_pre_commit_hooks 392159.15075376886 ns 508682.1888412017 ns 0.77
E2E_Evaluator_pulumi 533794.2261904762 ns 698717.0205882353 ns 0.76
E2E_Evaluator_semantic_release 67451.76200873363 ns 101616.68624089156 ns 0.66
E2E_Evaluator_stale 120497.92915392456 ns 159900.69262017604 ns 0.75
E2E_Evaluator_stylecop 210654.20882088208 ns 293786.6271820449 ns 0.72
E2E_Evaluator_tmuxinator 67677.50712250713 ns 97422.9627964023 ns 0.69
E2E_Evaluator_ui5 399842.6785109983 ns 543539.0529953917 ns 0.74
E2E_Evaluator_ui5_manifest 1931894.675 ns 2666678.8928571427 ns 0.72
E2E_Evaluator_unreal_engine_uproject 346782.9529411765 ns 460725.5680473373 ns 0.75
E2E_Evaluator_users_array 516633.6319290466 ns 623153.9047619047 ns 0.83
E2E_Evaluator_vercel 222500.70599429114 ns 337582.40692640695 ns 0.66
E2E_Evaluator_yamllint 6805.9859571535235 ns 9169.474913766071 ns 0.74
JSONLD_Catalog_Simple 15701286.23076923 ns 23819794.5 ns 0.66
JSONLD_Catalog_Override_Agreeing 16076358.8 ns 24431558.444444444 ns 0.66
JSONLD_Catalog_Override_Shadowing 24557639.333333332 ns 37974472.166666664 ns 0.65
Micro_Draft4_Meta_1_No_Callback 156.80085080094366 ns 207.89689904486798 ns 0.75
Micro_Draft4_Required_Properties 726.6901265357957 ns 978.8109348914858 ns 0.74
Micro_Draft4_Many_Optional_Properties_Minimal_Match 21.20240596179725 ns 25.580301483425156 ns 0.83
Micro_Draft4_Few_Optional_Properties_Minimal_Match 10.261340299988003 ns 14.0550166590762 ns 0.73
Micro_Draft4_Items_Schema 222.85962078302137 ns 331.95175120124316 ns 0.67
Micro_Draft4_Nested_Object 2.9985892239952783 ns 3.287235914170219 ns 0.91
Micro_Draft4_Properties_Triad_Optional 253.1993595097967 ns 335.11579771900375 ns 0.76
Micro_Draft4_Properties_Triad_Required 266.33249856571746 ns 369.6919676532634 ns 0.72
Micro_Draft4_Properties_Triad_Closed 210.22105716709856 ns 276.18782052449876 ns 0.76
Micro_Draft4_Properties_Closed 51.28378081493453 ns 61.917224213971544 ns 0.83
Micro_Draft4_Non_Recursive_Ref 15.347042327391463 ns 16.25815236800715 ns 0.94
Micro_Draft4_Pattern_Properties_Empty 122.50651673894332 ns 154.33172445253695 ns 0.79
Micro_Draft4_Ref_To_Single_Property 10.244382588377675 ns 13.535017651381638 ns 0.76
Micro_Draft4_Additional_Properties_Type 31.39741783904221 ns 36.05190170511232 ns 0.87
Micro_Draft4_Nested_Oneof 45.60041752219514 ns 64.78864278089405 ns 0.70
Micro_Draft4_Short_Enum 9.360770932136278 ns 12.772289899220914 ns 0.73
Micro_Draft4_Long_Enum 11.489864818017587 ns 16.239447073461232 ns 0.71
Micro_Draft4_Long_Enum_Short_Strings 9.355254036538406 ns 12.765850215619366 ns 0.73
Micro_Draft4_Type_Object 4.6372149274584755 ns 5.14056392692596 ns 0.90
Micro_Draft4_Ref_Single_100 974128.6926229508 ns 1365371.8588235294 ns 0.71
Micro_Draft4_Compile_Ref_Many_Nested 613963.8121827411 ns 876521.3666666667 ns 0.70
Micro_Draft4_Compile_Wrap 790202.4832214765 ns 1110886.3849765258 ns 0.71
Micro_Draft6_Property_Names 97.07251953725209 ns 153.10628081637392 ns 0.63
Micro_Draft6_Compile_FHIR 2752646656 ns 3753369606 ns 0.73
Micro_Draft7_If_Then_Else 19.615403110901493 ns 24.90857818992484 ns 0.79
Micro_2019_09_Unevaluated_Properties 20.734217077222624 ns 29.326974195329605 ns 0.71
Micro_2019_09_Compile_Wrap 62434647.333333336 ns 97620582.5 ns 0.64
Micro_2020_12_Dynamic_Ref 556.0236312339578 ns 714.9130565069776 ns 0.78
Micro_2020_12_Dynamic_Ref_Single 3.81795444105138 ns 5.289299282094853 ns 0.72
Micro_2020_12_Simple_Output_Mask 801.5462453393619 ns 1078.5588695384838 ns 0.74
Micro_2020_12_Simple_Output_Annotations 33767.25343727852 ns 55111.83996299723 ns 0.61
Micro_2020_12_Simple_Output_Annotation_Dropping 961481.174796748 ns 1385084.4011627906 ns 0.69
Micro_2020_12_Compile_NonCircular_Shared_Refs 342318.33142037306 ns 501249.99789029534 ns 0.68
Micro_2020_12_Exhaustive_Deep_Numeric 6704.002262506634 ns 9196.09591419422 ns 0.73
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput 28411.0006057669 ns 39488.99330431871 ns 0.72
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput 15557.272031157172 ns 20010.15935354212 ns 0.78
Micro_2020_12_Exhaustive_Deep_Numeric_Fail 121.67883710842406 ns 153.17457587336034 ns 0.79
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput 1664.9478039331284 ns 2489.1700308515233 ns 0.67
TestSuite_Parse_WoT 3792692.6774193547 ns 5321275.568181818 ns 0.71
Alterschema_Check_Readibility_ISO_Language_Set_3 181368017 ns 270427289 ns 0.67
Alterschema_Check_Readibility_OMC 38051749.5 ns 48423326.8 ns 0.79
Alterschema_Check_Readibility_KrakenD 415400154 ns 558327414 ns 0.74
Alterschema_Apply_Readibility_KrakenD 43114013337 ns 57864848820 ns 0.75
Alterschema_Check_Invalid_External_Refs 178617609 ns 267169236 ns 0.67
Alterschema_Check_Resolvable_External_Refs 129557.0341786108 ns 190867.99268887084 ns 0.68
Convert_Draft3_To_2020_12 2095387.4513274336 ns 2945618.253164557 ns 0.71
Convert_201909_To_2020_12_Unevaluated 227422.46183206106 ns 349698.60746268654 ns 0.65

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JavaScript (linux/llvm)

Details
Benchmark suite Current: aa7cb35 Previous: a5a019a Ratio
E2E_Evaluator_adaptivecard 93571 ns 120017 ns 0.78
E2E_Evaluator_ansible-meta 436885 ns 554713 ns 0.79
E2E_Evaluator_aws-cdk 102165 ns 146477 ns 0.70
E2E_Evaluator_babelrc 291269 ns 367401 ns 0.79
E2E_Evaluator_cerebrum-criminal-case 2183961 ns 2652981 ns 0.82
E2E_Evaluator_clang-format 247296 ns 296036 ns 0.84
E2E_Evaluator_cmake-presets 15700926 ns 19611385 ns 0.80
E2E_Evaluator_code-climate 405204 ns 530694 ns 0.76
E2E_Evaluator_cql2 916754 ns 1185176 ns 0.77
E2E_Evaluator_cspell 1313620 ns 1501720 ns 0.87
E2E_Evaluator_cypress 682130 ns 797611 ns 0.86
E2E_Evaluator_deno 860551 ns 1052310 ns 0.82
E2E_Evaluator_dependabot 890380 ns 1137247 ns 0.78
E2E_Evaluator_draft-04 21158164 ns 25039995 ns 0.84
E2E_Evaluator_fabric-mod 1960463 ns 2392240 ns 0.82
E2E_Evaluator_geojson 18617535 ns 31510399 ns 0.59
E2E_Evaluator_gitpod-configuration 575450 ns 725242 ns 0.79
E2E_Evaluator_helm-chart-lock 841813 ns 1049947 ns 0.80
E2E_Evaluator_importmap 209261 ns 268367 ns 0.78
E2E_Evaluator_jasmine 220572 ns 308050 ns 0.72
E2E_Evaluator_jsconfig 1214802 ns 1280860 ns 0.95
E2E_Evaluator_jshintrc 2338679 ns 2741522 ns 0.85
E2E_Evaluator_krakend 490718 ns 675225 ns 0.73
E2E_Evaluator_lazygit 378668 ns 506187 ns 0.75
E2E_Evaluator_lerna 336221 ns 479805 ns 0.70
E2E_Evaluator_nest-cli 502532 ns 603028 ns 0.83
E2E_Evaluator_omc 89251 ns 120623 ns 0.74
E2E_Evaluator_omnisharp 1195214 ns 1430592 ns 0.84
E2E_Evaluator_openapi 35165373 ns 49619535 ns 0.71
E2E_Evaluator_pre-commit-hooks 1641605 ns 2008670 ns 0.82
E2E_Evaluator_pulumi 1568571 ns 1910970 ns 0.82
E2E_Evaluator_semantic-release 181100 ns 259254 ns 0.70
E2E_Evaluator_stale 299882 ns 404101 ns 0.74
E2E_Evaluator_stylecop 895268 ns 1204636 ns 0.74
E2E_Evaluator_tmuxinator 180621 ns 233126 ns 0.77
E2E_Evaluator_ui5 1691702 ns 2278893 ns 0.74
E2E_Evaluator_ui5-manifest 7795815 ns 10855490 ns 0.72
E2E_Evaluator_unreal-engine-uproject 1290634 ns 1566485 ns 0.82
E2E_Evaluator_users-array 2272427 ns 3136513 ns 0.72
E2E_Evaluator_vercel 808824 ns 1039430 ns 0.78
E2E_Evaluator_yamllint 19010 ns 26031 ns 0.73

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant