Skip to content

Allow converting Configuration back to JSON#626

Merged
jviotti merged 1 commit into
mainfrom
configuration-to-json
Feb 11, 2026
Merged

Allow converting Configuration back to JSON#626
jviotti merged 1 commit into
mainfrom
configuration-to-json

Conversation

@jviotti

@jviotti jviotti commented Feb 11, 2026

Copy link
Copy Markdown
Member

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

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

augmentcode Bot commented Feb 11, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds support for serializing a parsed Configuration back into JSON.

Changes:

  • Introduces Configuration::to_json() and wires its implementation into the configuration library build.
  • Serializes all supported fields (metadata, path, baseUri, defaultDialect, extension, resolve, dependencies, and x-* extras).
  • Sorts the extension set for deterministic JSON array output.
  • Updates the test target to replace the previous read-json-only test with a combined JSON test suite.
  • Adds new tests covering minimal serialization, full-field serialization, extras passthrough, and a parse→serialize roundtrip.

Technical Notes: Serialization emits an absolute path (from absolute_path) and always includes baseUri (from the already-canonicalized base string).

🤖 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. 3 suggestions posted.

Fix All in Augment

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

Comment thread src/configuration/json.cc
Comment thread src/configuration/json.cc
Comment thread src/configuration/json.cc
result.assign("dependencies", std::move(dependencies_object));
}

for (const auto &pair : this->extra.as_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.

Merging extra last means a key present in extra could overwrite the typed fields (e.g., path, title) in the serialized JSON, which may produce output that doesn’t reflect the struct’s main members. Consider constraining emitted extras to the intended x- namespace (as the parser does).

Severity: medium

Fix This in Augment

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

@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.

1 issue found across 6 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="src/configuration/json.cc">

<violation number="1" location="src/configuration/json.cc:59">
P2: `resolve` is an `std::unordered_map` with non-deterministic iteration order. Unlike `extension` (which is explicitly sorted) and `dependencies` (which uses `std::map`), `resolve` entries may appear in arbitrary order. Consider sorting the entries for consistency, similar to what's done for `extension`.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread src/configuration/json.cc

if (!this->resolve.empty()) {
auto resolve_object{sourcemeta::core::JSON::make_object()};
for (const auto &pair : this->resolve) {

@cubic-dev-ai cubic-dev-ai Bot Feb 11, 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.

P2: resolve is an std::unordered_map with non-deterministic iteration order. Unlike extension (which is explicitly sorted) and dependencies (which uses std::map), resolve entries may appear in arbitrary order. Consider sorting the entries for consistency, similar to what's done for extension.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/configuration/json.cc, line 59:

<comment>`resolve` is an `std::unordered_map` with non-deterministic iteration order. Unlike `extension` (which is explicitly sorted) and `dependencies` (which uses `std::map`), `resolve` entries may appear in arbitrary order. Consider sorting the entries for consistency, similar to what's done for `extension`.</comment>

<file context>
@@ -0,0 +1,83 @@
+
+  if (!this->resolve.empty()) {
+    auto resolve_object{sourcemeta::core::JSON::make_object()};
+    for (const auto &pair : this->resolve) {
+      resolve_object.assign(pair.first, sourcemeta::core::JSON{pair.second});
+    }
</file context>
Fix with Cubic

@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: 16f1e63 Previous: cb4ceae Ratio
E2E_Compiler_adaptivecard 65110174.2222219 ns/iter 63544014.60000076 ns/iter 1.02
E2E_Compiler_ansible_meta 27402621.653847676 ns/iter 27413017.769230936 ns/iter 1.00
E2E_Compiler_aws_cdk 467658.79691688326 ns/iter 465988.69620253675 ns/iter 1.00
E2E_Compiler_babelrc 2568698.7765569 ns/iter 2549602.452554742 ns/iter 1.01
E2E_Compiler_clang_format 17572768.85000039 ns/iter 17359707.974999595 ns/iter 1.01
E2E_Compiler_cmake_presets 25651868.44444261 ns/iter 25132850.46428645 ns/iter 1.02
E2E_Compiler_code_climate 2555404.490842498 ns/iter 2533386.826714815 ns/iter 1.01
E2E_Compiler_cql2 13082998.555555984 ns/iter 12741017.745454222 ns/iter 1.03
E2E_Compiler_cspell 22422826.967743408 ns/iter 22330140.967743583 ns/iter 1.00
E2E_Compiler_cypress 4060738.8258428746 ns/iter 4136138.4943820923 ns/iter 0.98
E2E_Compiler_deno 7360091.021052994 ns/iter 7339492.178947406 ns/iter 1.00
E2E_Compiler_dependabot 3802036.502702629 ns/iter 3838908.048648616 ns/iter 0.99
E2E_Compiler_draft_04 2672956.087786425 ns/iter 3261781.5981308296 ns/iter 0.82
E2E_Compiler_fabric_mod 4647288.23178816 ns/iter 6002588.120689575 ns/iter 0.77
E2E_Compiler_geojson 21191702.636363544 ns/iter 21165232.724138934 ns/iter 1.00
E2E_Compiler_gitpod_configuration 4757472.58503375 ns/iter 4732676.5675679045 ns/iter 1.01
E2E_Compiler_helm_chart_lock 780040.4220489998 ns/iter 777441.2318840476 ns/iter 1.00
E2E_Compiler_importmap 381553.902891448 ns/iter 383319.83791208785 ns/iter 1.00
E2E_Compiler_jasmine 1403908.0100199631 ns/iter 1403048.5783132554 ns/iter 1.00
E2E_Compiler_jshintrc 4253094.506328966 ns/iter 4258058.5126580605 ns/iter 1.00
E2E_Compiler_jsconfig 20710204.294117067 ns/iter 20766763.70588155 ns/iter 1.00
E2E_Compiler_krakend 150378210.99999747 ns/iter 144558593.39999506 ns/iter 1.04
E2E_Compiler_lazygit 32173721.36363782 ns/iter 31942919.545454886 ns/iter 1.01
E2E_Compiler_lerna 1622505.6279069558 ns/iter 1624353.8468677527 ns/iter 1.00
E2E_Compiler_nest_cli 7109360.222222625 ns/iter 7116883.653061009 ns/iter 1.00
E2E_Compiler_omc 156141766.00000462 ns/iter 155457417.50000274 ns/iter 1.00
E2E_Compiler_omnisharp 6429220.1192661775 ns/iter 6428364.541284594 ns/iter 1.00
E2E_Compiler_openapi 23906594.655172817 ns/iter 23926469.44827581 ns/iter 1.00
E2E_Compiler_pre_commit_hooks 5142606.750000144 ns/iter 5145321.644444586 ns/iter 1.00
E2E_Compiler_pulumi 3968843.8644066853 ns/iter 3944494.8361581396 ns/iter 1.01
E2E_Compiler_semantic_release 1595557.59908879 ns/iter 1595110.7175398641 ns/iter 1.00
E2E_Compiler_stale 1589865.0408162943 ns/iter 1588185.1670428915 ns/iter 1.00
E2E_Compiler_stylecop 5671033.854838928 ns/iter 5679023.3333332045 ns/iter 1.00
E2E_Compiler_tmuxinator 1946640.9999999015 ns/iter 1944295.6722222168 ns/iter 1.00
E2E_Compiler_ui5 46809958.266665794 ns/iter 47630128.1333311 ns/iter 0.98
E2E_Compiler_ui5_manifest 320279498.0000192 ns/iter 322099766.50000274 ns/iter 0.99
E2E_Compiler_unreal_engine_uproject 4446984.9235668965 ns/iter 4460152.624203833 ns/iter 1.00
E2E_Compiler_vercel 12430938.98245649 ns/iter 12459711.553570887 ns/iter 1.00
E2E_Compiler_yamllint 443654.74730158085 ns/iter 446744.5734355083 ns/iter 0.99
E2E_Evaluator_adaptivecard 35906.02510950339 ns/iter 35881.91707850147 ns/iter 1.00
E2E_Evaluator_ansible_meta 316551.3381686282 ns/iter 310502.91400709393 ns/iter 1.02
E2E_Evaluator_aws_cdk 76520.04965547506 ns/iter 76357.55843730019 ns/iter 1.00
E2E_Evaluator_babelrc 157526.1802159104 ns/iter 159072.15729837542 ns/iter 0.99
E2E_Evaluator_cerebrum_criminal_case 1605375.3096330527 ns/iter 1607537.2389791366 ns/iter 1.00
E2E_Evaluator_clang_format 137460.25414795804 ns/iter 137445.04214257773 ns/iter 1.00
E2E_Evaluator_cmake_presets 5392179.70078728 ns/iter 5584992.675675789 ns/iter 0.97
E2E_Evaluator_code_climate 280027.05648110225 ns/iter 280358.23889555864 ns/iter 1.00
E2E_Evaluator_cql2 305478.25508878496 ns/iter 304343.73231441184 ns/iter 1.00
E2E_Evaluator_cspell 751729.3079331703 ns/iter 719282.3647668317 ns/iter 1.05
E2E_Evaluator_cypress 232532.14883721733 ns/iter 230783.01218307298 ns/iter 1.01
E2E_Evaluator_deno 408377.27610206796 ns/iter 408430.01810748916 ns/iter 1.00
E2E_Evaluator_dependabot 588349.5288703081 ns/iter 578385.6763006191 ns/iter 1.02
E2E_Evaluator_draft_04 9988453.027397692 ns/iter 10031651.197183192 ns/iter 1.00
E2E_Evaluator_fabric_mod 940177.2373806684 ns/iter 946654.9534573929 ns/iter 0.99
E2E_Evaluator_geojson 31238326.695650496 ns/iter 30663565.086955637 ns/iter 1.02
E2E_Evaluator_gitpod_configuration 310817.35033555847 ns/iter 309630.7140963335 ns/iter 1.00
E2E_Evaluator_helm_chart_lock 449281.2369270491 ns/iter 448221.80754478765 ns/iter 1.00
E2E_Evaluator_importmap 71450.01380052842 ns/iter 68538.3854033291 ns/iter 1.04
E2E_Evaluator_jasmine 165687.92059729627 ns/iter 164522.19326741417 ns/iter 1.01
E2E_Evaluator_jshintrc 1306287.3658535979 ns/iter 1309139.996268579 ns/iter 1.00
E2E_Evaluator_jsconfig 524886.2982062983 ns/iter 521554.47494390304 ns/iter 1.01
E2E_Evaluator_krakend 263782.61931604607 ns/iter 264953.6732900213 ns/iter 1.00
E2E_Evaluator_lazygit 179373.80897139633 ns/iter 179406.96771713073 ns/iter 1.00
E2E_Evaluator_lerna 208590.7540106933 ns/iter 207123.96152699218 ns/iter 1.01
E2E_Evaluator_nest_cli 247861.7631296847 ns/iter 248983.27150444008 ns/iter 1.00
E2E_Evaluator_omc 28053.535537255808 ns/iter 28180.217607639708 ns/iter 1.00
E2E_Evaluator_omnisharp 715855.240570809 ns/iter 721312.7415730688 ns/iter 0.99
E2E_Evaluator_openapi 16851729.399999727 ns/iter 16966824.146342188 ns/iter 0.99
E2E_Evaluator_pre_commit_hooks 592547.6293175658 ns/iter 591694.5226890427 ns/iter 1.00
E2E_Evaluator_pulumi 864440.316892699 ns/iter 865045.6127450867 ns/iter 1.00
E2E_Evaluator_semantic_release 141228.27686963815 ns/iter 141862.27300364192 ns/iter 1.00
E2E_Evaluator_stale 208427.75082359574 ns/iter 206225.3597164895 ns/iter 1.01
E2E_Evaluator_stylecop 360074.75895598263 ns/iter 360205.74974305654 ns/iter 1.00
E2E_Evaluator_tmuxinator 135428.03984525986 ns/iter 135978.17788460877 ns/iter 1.00
E2E_Evaluator_ui5 695201.870388819 ns/iter 704229.4949899688 ns/iter 0.99
E2E_Evaluator_ui5_manifest 3453131.8780489904 ns/iter 3537478.258536661 ns/iter 0.98
E2E_Evaluator_unreal_engine_uproject 542649.3110580825 ns/iter 539943.2646604748 ns/iter 1.01
E2E_Evaluator_vercel 385800.8073292713 ns/iter 386035.9218403531 ns/iter 1.00
E2E_Evaluator_yamllint 17816.614622088084 ns/iter 17842.876722523015 ns/iter 1.00
Micro_Draft4_Meta_1_No_Callback 256.40712554738576 ns/iter 257.4862090235083 ns/iter 1.00
Micro_Draft4_Required_Properties 1134.513629676937 ns/iter 1137.3318968478097 ns/iter 1.00
Micro_Draft4_Many_Optional_Properties_Minimal_Match 31.739623960624105 ns/iter 31.460915231233553 ns/iter 1.01
Micro_Draft4_Few_Optional_Properties_Minimal_Match 19.92002990510159 ns/iter 19.923833301611094 ns/iter 1.00
Micro_Draft4_Items_Schema 637.8268267978698 ns/iter 633.3936124431934 ns/iter 1.01
Micro_Draft4_Nested_Object 3.107712824093725 ns/iter 3.111578944796462 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 393.2058541634241 ns/iter 386.0352045739305 ns/iter 1.02
Micro_Draft4_Properties_Triad_Closed 327.49850674878115 ns/iter 326.345389135181 ns/iter 1.00
Micro_Draft4_Properties_Triad_Required 433.78019687659287 ns/iter 436.2591532031043 ns/iter 0.99
Micro_Draft4_Properties_Closed 78.73938422305862 ns/iter 78.61723334462162 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 32.34375790477092 ns/iter 32.065638269642605 ns/iter 1.01
Micro_Draft4_Pattern_Properties_True 270.02044655653685 ns/iter 269.8880529445098 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 19.919829400865815 ns/iter 19.921887676492343 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 60.290224858780306 ns/iter 60.0102019123288 ns/iter 1.00
Micro_Draft4_Nested_Oneof 85.52661536260787 ns/iter 85.52243256407439 ns/iter 1.00
Micro_Draft4_Short_Enum 14.987105767920688 ns/iter 15.24506419187413 ns/iter 0.98
Micro_Draft4_Long_Enum 18.091118563409008 ns/iter 18.664396525674395 ns/iter 0.97
Micro_Draft4_Long_Enum_Short_Strings 15.433747724614685 ns/iter 15.294544029904774 ns/iter 1.01
Micro_Draft4_Type_Object 8.399543240142194 ns/iter 8.400412783838059 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2439760.0766550545 ns/iter 2441105.763066286 ns/iter 1.00
Micro_Draft4_Compile_Ref_Many_Nested 1807472.6452442205 ns/iter 1816987.3886010319 ns/iter 0.99
Micro_Draft4_Compile_Wrap 2429856.106896648 ns/iter 2434036.9097222397 ns/iter 1.00
Micro_Draft6_Property_Names 136.13509487132208 ns/iter 135.90455436185914 ns/iter 1.00
Micro_Draft6_Compile_FHIR 15114545136.000004 ns/iter 15484715064 ns/iter 0.98
Micro_Draft7_If_Then_Else 39.23300566162857 ns/iter 39.18890288623438 ns/iter 1.00
Micro_2019_09_Unevaluated_Properties 51.71021143445669 ns/iter 52.75307609144252 ns/iter 0.98
Micro_2019_09_Compile_Wrap 288014966.50001466 ns/iter 298483154.5000191 ns/iter 0.96
Micro_2019_09_KrakenD_Linter_Check 1241236189.0000057 ns/iter 1216199764.999999 ns/iter 1.02
Micro_2019_09_KrakenD_Linter_Apply 11022991752.999985 ns/iter 10851719095.000021 ns/iter 1.02
Micro_2020_12_Dynamic_Ref 366.6438233588965 ns/iter 364.62850966288806 ns/iter 1.01
Micro_2020_12_Dynamic_Ref_Single 8.718665532776097 ns/iter 8.720072588212012 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 143441.41608961616 ns/iter 144056.57270560178 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 166454.73405761505 ns/iter 167669.07922450695 ns/iter 0.99
Micro_2020_12_Compile_NonCircular_Shared_Refs 1094097.856250009 ns/iter 1090205.9034267347 ns/iter 1.00

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 (macos/llvm)

Details
Benchmark suite Current: 16f1e63 Previous: cb4ceae Ratio
E2E_Compiler_adaptivecard 72928647.72727047 ns/iter 89713618.99999204 ns/iter 0.81
E2E_Compiler_ansible_meta 29637822.115384657 ns/iter 40843456.64000011 ns/iter 0.73
E2E_Compiler_aws_cdk 368569.12626532675 ns/iter 440022.47028756555 ns/iter 0.84
E2E_Compiler_babelrc 2382988.5110294125 ns/iter 2811539.21568656 ns/iter 0.85
E2E_Compiler_clang_format 17785090.625000067 ns/iter 19703525.18604656 ns/iter 0.90
E2E_Compiler_cmake_presets 33167982.14285925 ns/iter 37771655.68420801 ns/iter 0.88
E2E_Compiler_code_climate 3266867.452830068 ns/iter 3019073.6899561966 ns/iter 1.08
E2E_Compiler_cql2 15393703.272727842 ns/iter 19923055.902439978 ns/iter 0.77
E2E_Compiler_cspell 33466265.136362173 ns/iter 27831465.785717618 ns/iter 1.20
E2E_Compiler_cypress 6408032.4999997625 ns/iter 5568551.175438069 ns/iter 1.15
E2E_Compiler_deno 9136269.14864903 ns/iter 8827917.21052531 ns/iter 1.03
E2E_Compiler_dependabot 4050560.787670623 ns/iter 4447746.926230213 ns/iter 0.91
E2E_Compiler_draft_04 2549659.7446153127 ns/iter 2545223.8899996853 ns/iter 1.00
E2E_Compiler_fabric_mod 6049298.611111611 ns/iter 5154071.6599993175 ns/iter 1.17
E2E_Compiler_geojson 28022666.63999944 ns/iter 28870194.416668937 ns/iter 0.97
E2E_Compiler_gitpod_configuration 5268132.499999183 ns/iter 5584158.330000264 ns/iter 0.94
E2E_Compiler_helm_chart_lock 676154.1666666236 ns/iter 760946.2459459497 ns/iter 0.89
E2E_Compiler_importmap 336509.4633444688 ns/iter 338014.17489221523 ns/iter 1.00
E2E_Compiler_jasmine 1392421.6285713122 ns/iter 1497923.2868217314 ns/iter 0.93
E2E_Compiler_jshintrc 3869856.557471473 ns/iter 4493286.209423943 ns/iter 0.86
E2E_Compiler_jsconfig 26229799.107146133 ns/iter 23032502.677419726 ns/iter 1.14
E2E_Compiler_krakend 182001468.750002 ns/iter 174548093.74999058 ns/iter 1.04
E2E_Compiler_lazygit 43583750.00000099 ns/iter 43875618.055557825 ns/iter 0.99
E2E_Compiler_lerna 2175504.501385093 ns/iter 1913496.2513226608 ns/iter 1.14
E2E_Compiler_nest_cli 7883922.810526057 ns/iter 8109564.863635847 ns/iter 0.97
E2E_Compiler_omc 226371138.66665006 ns/iter 232087333.3333111 ns/iter 0.98
E2E_Compiler_omnisharp 8701988.738738822 ns/iter 7323121.394230943 ns/iter 1.19
E2E_Compiler_openapi 32412711.53846216 ns/iter 27487659.70833252 ns/iter 1.18
E2E_Compiler_pre_commit_hooks 5082486.111111469 ns/iter 5756485.366411986 ns/iter 0.88
E2E_Compiler_pulumi 4811626.395972695 ns/iter 3837514.3869045367 ns/iter 1.25
E2E_Compiler_semantic_release 1503298.2881357153 ns/iter 1911803.5369863047 ns/iter 0.79
E2E_Compiler_stale 1461216.3686200154 ns/iter 1782166.586274477 ns/iter 0.82
E2E_Compiler_stylecop 6153116.835051703 ns/iter 7373390.933823283 ns/iter 0.83
E2E_Compiler_tmuxinator 1825314.2144637927 ns/iter 2117915.3704665126 ns/iter 0.86
E2E_Compiler_ui5 79120382.54545967 ns/iter 73388244.74999228 ns/iter 1.08
E2E_Compiler_ui5_manifest 424935708.49995875 ns/iter 412470062.50000596 ns/iter 1.03
E2E_Compiler_unreal_engine_uproject 6091682.499999251 ns/iter 4523891.442176489 ns/iter 1.35
E2E_Compiler_vercel 17366480.225001626 ns/iter 16754463.134615295 ns/iter 1.04
E2E_Compiler_yamllint 352037.596401 ns/iter 422801.78673243837 ns/iter 0.83
E2E_Evaluator_adaptivecard 31850.851419228988 ns/iter 32592.65037555641 ns/iter 0.98
E2E_Evaluator_ansible_meta 277432.18873517524 ns/iter 269282.7369439392 ns/iter 1.03
E2E_Evaluator_aws_cdk 63007.170884427476 ns/iter 65370.17518697908 ns/iter 0.96
E2E_Evaluator_babelrc 145208.53134282728 ns/iter 141181.998164791 ns/iter 1.03
E2E_Evaluator_cerebrum_criminal_case 1433935.9698682555 ns/iter 1462868.2193395495 ns/iter 0.98
E2E_Evaluator_clang_format 119745.24689345412 ns/iter 146431.93408736025 ns/iter 0.82
E2E_Evaluator_cmake_presets 5840561.714285799 ns/iter 5435018.098360795 ns/iter 1.07
E2E_Evaluator_code_climate 213433.38087954215 ns/iter 211806.57802045118 ns/iter 1.01
E2E_Evaluator_cql2 259655.12201128245 ns/iter 266928.5382615087 ns/iter 0.97
E2E_Evaluator_cspell 575064.9316508926 ns/iter 628130.3330763798 ns/iter 0.92
E2E_Evaluator_cypress 247723.95851066013 ns/iter 209303.4279977243 ns/iter 1.18
E2E_Evaluator_deno 318937.02666083525 ns/iter 385942.37128012284 ns/iter 0.83
E2E_Evaluator_dependabot 548069.3430656944 ns/iter 533807.0231175232 ns/iter 1.03
E2E_Evaluator_draft_04 6301956.600000835 ns/iter 7571644.634615802 ns/iter 0.83
E2E_Evaluator_fabric_mod 812679.6167076996 ns/iter 730320.6660430601 ns/iter 1.11
E2E_Evaluator_geojson 19156867.18750109 ns/iter 23757949.724136807 ns/iter 0.81
E2E_Evaluator_gitpod_configuration 208867.1823837619 ns/iter 325299.23009557574 ns/iter 0.64
E2E_Evaluator_helm_chart_lock 315427.5403033059 ns/iter 345886.78575197636 ns/iter 0.91
E2E_Evaluator_importmap 45342.42730121948 ns/iter 60680.76249999876 ns/iter 0.75
E2E_Evaluator_jasmine 117852.95576364653 ns/iter 131775.21114015844 ns/iter 0.89
E2E_Evaluator_jshintrc 1096868.4522760077 ns/iter 1167086.4519774409 ns/iter 0.94
E2E_Evaluator_jsconfig 381764.39645630907 ns/iter 461867.2574468046 ns/iter 0.83
E2E_Evaluator_krakend 245935.6866537565 ns/iter 191338.29820360462 ns/iter 1.29
E2E_Evaluator_lazygit 193428.8841554523 ns/iter 180384.85135692192 ns/iter 1.07
E2E_Evaluator_lerna 214562.88866570694 ns/iter 176191.0297783991 ns/iter 1.22
E2E_Evaluator_nest_cli 226404.92724778157 ns/iter 222242.30996711506 ns/iter 1.02
E2E_Evaluator_omc 28932.513847552724 ns/iter 24424.361433558694 ns/iter 1.18
E2E_Evaluator_omnisharp 798921.4500574195 ns/iter 669962.8361380977 ns/iter 1.19
E2E_Evaluator_openapi 15512870.454544596 ns/iter 12097127.477611832 ns/iter 1.28
E2E_Evaluator_pre_commit_hooks 519472.5409999137 ns/iter 535805.1250000244 ns/iter 0.97
E2E_Evaluator_pulumi 785991.2367759033 ns/iter 779694.46193551 ns/iter 1.01
E2E_Evaluator_semantic_release 133973.16549570172 ns/iter 117659.49284214259 ns/iter 1.14
E2E_Evaluator_stale 217773.05296999624 ns/iter 190109.4124163261 ns/iter 1.15
E2E_Evaluator_stylecop 390061.6368015184 ns/iter 308087.5067034874 ns/iter 1.27
E2E_Evaluator_tmuxinator 150209.68461162687 ns/iter 110653.13479623263 ns/iter 1.36
E2E_Evaluator_ui5 811485.7618585716 ns/iter 543949.6078430667 ns/iter 1.49
E2E_Evaluator_ui5_manifest 5723799.876847264 ns/iter 3085150.3905580314 ns/iter 1.86
E2E_Evaluator_unreal_engine_uproject 954488.7689694967 ns/iter 456390.4323361986 ns/iter 2.09
E2E_Evaluator_vercel 535880.2128350633 ns/iter 314067.0094299586 ns/iter 1.71
E2E_Evaluator_yamllint 26850.08657175658 ns/iter 16913.664076483037 ns/iter 1.59
Micro_Draft4_Meta_1_No_Callback 373.1010358084377 ns/iter 245.4251651285481 ns/iter 1.52
Micro_Draft4_Required_Properties 1786.3322787009977 ns/iter 913.1332354834166 ns/iter 1.96
Micro_Draft4_Many_Optional_Properties_Minimal_Match 39.92735059889581 ns/iter 31.180132226505805 ns/iter 1.28
Micro_Draft4_Few_Optional_Properties_Minimal_Match 29.874979889197313 ns/iter 15.968201139993168 ns/iter 1.87
Micro_Draft4_Items_Schema 1049.650313790667 ns/iter 582.6080643688412 ns/iter 1.80
Micro_Draft4_Nested_Object 4.852149194938197 ns/iter 3.5758259602748677 ns/iter 1.36
Micro_Draft4_Properties_Triad_Optional 434.689111125573 ns/iter 377.34400227313944 ns/iter 1.15
Micro_Draft4_Properties_Triad_Closed 445.54844448522203 ns/iter 298.30007899642 ns/iter 1.49
Micro_Draft4_Properties_Triad_Required 586.1806242533363 ns/iter 411.41023677179186 ns/iter 1.42
Micro_Draft4_Properties_Closed 92.54324312698984 ns/iter 61.85056577488096 ns/iter 1.50
Micro_Draft4_Non_Recursive_Ref 37.62387146768637 ns/iter 26.36487404235055 ns/iter 1.43
Micro_Draft4_Pattern_Properties_True 273.6462318906275 ns/iter 192.00482453098815 ns/iter 1.43
Micro_Draft4_Ref_To_Single_Property 22.10487212374032 ns/iter 14.625587489078494 ns/iter 1.51
Micro_Draft4_Additional_Properties_Type 69.48078370262114 ns/iter 50.10159124801595 ns/iter 1.39
Micro_Draft4_Nested_Oneof 89.01683822345231 ns/iter 71.17283287779613 ns/iter 1.25
Micro_Draft4_Short_Enum 14.899227319878449 ns/iter 12.026468677370444 ns/iter 1.24
Micro_Draft4_Long_Enum 22.288625737796302 ns/iter 22.724836944814125 ns/iter 0.98
Micro_Draft4_Long_Enum_Short_Strings 20.720025853749508 ns/iter 14.72645745409348 ns/iter 1.41
Micro_Draft4_Type_Object 10.881645670680301 ns/iter 8.893979789918157 ns/iter 1.22
Micro_Draft4_Ref_Single_100 3051053.672316621 ns/iter 3428387.5325204055 ns/iter 0.89
Micro_Draft4_Compile_Ref_Many_Nested 2461026.462837763 ns/iter 2029693.005747229 ns/iter 1.21
Micro_Draft4_Compile_Wrap 4026772.058823878 ns/iter 3242922.235023194 ns/iter 1.24
Micro_Draft6_Property_Names 142.69834710587043 ns/iter 157.25139419909465 ns/iter 0.91
Micro_Draft6_Compile_FHIR 20048723666.99999 ns/iter 16665554707.999945 ns/iter 1.20
Micro_Draft7_If_Then_Else 39.68356125098008 ns/iter 38.740242168922116 ns/iter 1.02
Micro_2019_09_Unevaluated_Properties 51.7038114547456 ns/iter 47.71246098501332 ns/iter 1.08
Micro_2019_09_Compile_Wrap 628043333.0000505 ns/iter 437262750.00000215 ns/iter 1.44
Micro_2019_09_KrakenD_Linter_Check 1096607666.9999437 ns/iter 1103327625.0000198 ns/iter 0.99
Micro_2019_09_KrakenD_Linter_Apply 9556553875.000076 ns/iter 9662149958.999863 ns/iter 0.99
Micro_2020_12_Dynamic_Ref 267.14844520642635 ns/iter 354.93152746617034 ns/iter 0.75
Micro_2020_12_Dynamic_Ref_Single 8.482982363468151 ns/iter 8.493083066880624 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 148420.67960688873 ns/iter 180242.1910019382 ns/iter 0.82
Micro_2020_12_Simple_Output_Annotations 180559.15592924185 ns/iter 189688.13872402997 ns/iter 0.95
Micro_2020_12_Compile_NonCircular_Shared_Refs 1100404.3282572255 ns/iter 1051129.9974747272 ns/iter 1.05

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

@jviotti jviotti merged commit 4f2498f into main Feb 11, 2026
14 checks passed
@jviotti jviotti deleted the configuration-to-json branch February 11, 2026 15:25

@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: 16f1e63 Previous: cb4ceae Ratio
Micro_2020_12_Dynamic_Ref 450.57288649166054 ns/iter 450.80808854413175 ns/iter 1.00
Micro_2020_12_Dynamic_Ref_Single 9.285572971271115 ns/iter 9.286081482563821 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 139830.72502017074 ns/iter 138137.04816879763 ns/iter 1.01
Micro_2020_12_Simple_Output_Annotations 182881.82027171992 ns/iter 175818.47869925117 ns/iter 1.04
Micro_2020_12_Compile_NonCircular_Shared_Refs 1281766.0939716955 ns/iter 1243909.168157393 ns/iter 1.03
Micro_2019_09_Unevaluated_Properties 47.088853969509294 ns/iter 46.436737287289496 ns/iter 1.01
Micro_2019_09_Compile_Wrap 372276386.0000669 ns/iter 319916088.9998893 ns/iter 1.16
Micro_2019_09_KrakenD_Linter_Check 1257738184.000118 ns/iter 1284820139.9999652 ns/iter 0.98
Micro_2019_09_KrakenD_Linter_Apply 11501628448.000246 ns/iter 11586961318.999784 ns/iter 0.99
Micro_Draft7_If_Then_Else 46.229639916098215 ns/iter 45.660808241476765 ns/iter 1.01
Micro_Draft6_Property_Names 165.4841349279335 ns/iter 161.3980141421244 ns/iter 1.03
Micro_Draft6_Compile_FHIR 14496368862.000053 ns/iter 14901028044.999975 ns/iter 0.97
Micro_Draft4_Meta_1_No_Callback 222.55696907284846 ns/iter 220.84500017644626 ns/iter 1.01
Micro_Draft4_Required_Properties 796.6339653861486 ns/iter 789.428916993878 ns/iter 1.01
Micro_Draft4_Many_Optional_Properties_Minimal_Match 27.26487767566273 ns/iter 27.545662103073948 ns/iter 0.99
Micro_Draft4_Few_Optional_Properties_Minimal_Match 16.963515244049375 ns/iter 16.951694103180127 ns/iter 1.00
Micro_Draft4_Items_Schema 533.4245719466896 ns/iter 524.3551746838526 ns/iter 1.02
Micro_Draft4_Nested_Object 3.2774574155212375 ns/iter 3.282357064987751 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 473.917092548547 ns/iter 510.7540935221356 ns/iter 0.93
Micro_Draft4_Properties_Triad_Closed 393.30393779428647 ns/iter 412.0510206886135 ns/iter 0.95
Micro_Draft4_Properties_Triad_Required 495.6998693288085 ns/iter 531.7088767239744 ns/iter 0.93
Micro_Draft4_Properties_Closed 70.23227155071504 ns/iter 70.2529544252281 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 14.139025771079423 ns/iter 14.115456143841618 ns/iter 1.00
Micro_Draft4_Pattern_Properties_True 241.2440129469361 ns/iter 241.27514604941064 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 16.90250179472943 ns/iter 16.893952314742272 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 19.152667096816533 ns/iter 19.182485174246583 ns/iter 1.00
Micro_Draft4_Nested_Oneof 111.70391864965083 ns/iter 112.10286707773541 ns/iter 1.00
Micro_Draft4_Short_Enum 17.753837690058045 ns/iter 17.738985138023036 ns/iter 1.00
Micro_Draft4_Long_Enum 18.86066717885343 ns/iter 18.856474108783136 ns/iter 1.00
Micro_Draft4_Long_Enum_Short_Strings 17.790624403108588 ns/iter 17.732333248313566 ns/iter 1.00
Micro_Draft4_Type_Object 9.300647012412803 ns/iter 9.316445436374197 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2598265.197025876 ns/iter 2609392.977612359 ns/iter 1.00
Micro_Draft4_Compile_Ref_Many_Nested 1941770.7052338996 ns/iter 1933279.1895600655 ns/iter 1.00
Micro_Draft4_Compile_Wrap 2668978.9580149488 ns/iter 2672761.5839693756 ns/iter 1.00
E2E_Compiler_adaptivecard 70632248.50001006 ns/iter 65714771.50000646 ns/iter 1.07
E2E_Compiler_ansible_meta 30551678.826085385 ns/iter 29970025.260868367 ns/iter 1.02
E2E_Compiler_aws_cdk 545413.9199694665 ns/iter 531145.5964777062 ns/iter 1.03
E2E_Compiler_babelrc 2895999.3512399173 ns/iter 2919299.800000393 ns/iter 0.99
E2E_Compiler_clang_format 19915547.59999547 ns/iter 19901348.800002392 ns/iter 1.00
E2E_Compiler_cmake_presets 27602205.96000181 ns/iter 27499061.480002638 ns/iter 1.00
E2E_Compiler_code_climate 2933430.516666628 ns/iter 2934513.4083333355 ns/iter 1.00
E2E_Compiler_cql2 14243186.020408127 ns/iter 14359558.714283353 ns/iter 0.99
E2E_Compiler_cspell 24371738.72413198 ns/iter 24433552.07143278 ns/iter 1.00
E2E_Compiler_cypress 4314185.717791248 ns/iter 4330601.172839887 ns/iter 1.00
E2E_Compiler_deno 8341871.380951359 ns/iter 8345885.1071435725 ns/iter 1.00
E2E_Compiler_dependabot 4285093.3291927455 ns/iter 4284894.329191573 ns/iter 1.00
E2E_Compiler_draft_04 3058178.9213967538 ns/iter 3160106.0305680484 ns/iter 0.97
E2E_Compiler_fabric_mod 5263251.624059112 ns/iter 5278925.586467233 ns/iter 1.00
E2E_Compiler_geojson 24202828.241374753 ns/iter 24328089.41378833 ns/iter 0.99
E2E_Compiler_gitpod_configuration 5417027.778626905 ns/iter 5412942.099998802 ns/iter 1.00
E2E_Compiler_helm_chart_lock 864584.8838071313 ns/iter 869706.5229812296 ns/iter 0.99
E2E_Compiler_importmap 427034.3494196001 ns/iter 429224.5292667889 ns/iter 0.99
E2E_Compiler_jasmine 1581142.843891367 ns/iter 1600886.3066364618 ns/iter 0.99
E2E_Compiler_jshintrc 4805922.952054472 ns/iter 4831508.441379653 ns/iter 0.99
E2E_Compiler_jsconfig 23198457.133329008 ns/iter 23093856.833330996 ns/iter 1.00
E2E_Compiler_krakend 159590008.0000092 ns/iter 157085531.000007 ns/iter 1.02
E2E_Compiler_lazygit 35865412.20000754 ns/iter 35652599.64999541 ns/iter 1.01
E2E_Compiler_lerna 1861220.511936556 ns/iter 1854148.321899749 ns/iter 1.00
E2E_Compiler_nest_cli 8094474.160919884 ns/iter 8140706.839080901 ns/iter 0.99
E2E_Compiler_omc 177253818.49999166 ns/iter 174860252.4999683 ns/iter 1.01
E2E_Compiler_omnisharp 7380013.968421687 ns/iter 7460849.288660479 ns/iter 0.99
E2E_Compiler_openapi 27026737.653841335 ns/iter 27416778.576926287 ns/iter 0.99
E2E_Compiler_pre_commit_hooks 5871028.613446011 ns/iter 5859183.966667085 ns/iter 1.00
E2E_Compiler_pulumi 4510919.570513567 ns/iter 4481547.54487189 ns/iter 1.01
E2E_Compiler_semantic_release 1830392.6935063768 ns/iter 1816522.6363635156 ns/iter 1.01
E2E_Compiler_stale 1776938.0482233255 ns/iter 1792157.547073884 ns/iter 0.99
E2E_Compiler_stylecop 6402840.672727837 ns/iter 6410502.890908405 ns/iter 1.00
E2E_Compiler_tmuxinator 2214135.6044306154 ns/iter 2225712.785942257 ns/iter 0.99
E2E_Compiler_ui5 50193875.42857397 ns/iter 51787331.9285757 ns/iter 0.97
E2E_Compiler_ui5_manifest 336147512.00002503 ns/iter 334230327.00000024 ns/iter 1.01
E2E_Compiler_unreal_engine_uproject 5014530.33999951 ns/iter 5077773.123188295 ns/iter 0.99
E2E_Compiler_vercel 13423819.865386996 ns/iter 13373983.288462253 ns/iter 1.00
E2E_Compiler_yamllint 492199.3843440317 ns/iter 498212.700430964 ns/iter 0.99
E2E_Evaluator_adaptivecard 30357.26160560554 ns/iter 30235.322742407163 ns/iter 1.00
E2E_Evaluator_ansible_meta 291602.1503946604 ns/iter 285575.39164600166 ns/iter 1.02
E2E_Evaluator_aws_cdk 58870.348975334346 ns/iter 58360.506399923695 ns/iter 1.01
E2E_Evaluator_babelrc 132997.84126685694 ns/iter 133828.76754047425 ns/iter 0.99
E2E_Evaluator_cerebrum_criminal_case 1402258.0100606522 ns/iter 1380539.7031869309 ns/iter 1.02
E2E_Evaluator_clang_format 106705.42212924147 ns/iter 104341.66340306256 ns/iter 1.02
E2E_Evaluator_cmake_presets 6200795.069565609 ns/iter 5334333.767441703 ns/iter 1.16
E2E_Evaluator_code_climate 231356.97737706936 ns/iter 230172.5984380489 ns/iter 1.01
E2E_Evaluator_cql2 310314.46877750085 ns/iter 308559.4556737846 ns/iter 1.01
E2E_Evaluator_cspell 635221.2984530525 ns/iter 636290.6030741974 ns/iter 1.00
E2E_Evaluator_cypress 178466.40561939526 ns/iter 176984.68672519035 ns/iter 1.01
E2E_Evaluator_deno 349645.72146812757 ns/iter 349273.4456193585 ns/iter 1.00
E2E_Evaluator_dependabot 498873.23281899374 ns/iter 508909.7380000567 ns/iter 0.98
E2E_Evaluator_draft_04 9569213.585713701 ns/iter 8850277.16250022 ns/iter 1.08
E2E_Evaluator_fabric_mod 907175.3083871073 ns/iter 930256.6948719734 ns/iter 0.98
E2E_Evaluator_geojson 26307336.769229133 ns/iter 24608146.78571361 ns/iter 1.07
E2E_Evaluator_gitpod_configuration 278395.41660072026 ns/iter 273717.0226033266 ns/iter 1.02
E2E_Evaluator_helm_chart_lock 335671.19922620646 ns/iter 333323.0765958141 ns/iter 1.01
E2E_Evaluator_importmap 56969.25301402794 ns/iter 56582.630944512195 ns/iter 1.01
E2E_Evaluator_jasmine 138638.870562421 ns/iter 139040.7394046938 ns/iter 1.00
E2E_Evaluator_jshintrc 1015438.4265127687 ns/iter 1006452.8108884188 ns/iter 1.01
E2E_Evaluator_jsconfig 462659.0139813829 ns/iter 464010.2576974179 ns/iter 1.00
E2E_Evaluator_krakend 229815.22098512566 ns/iter 228657.82819095658 ns/iter 1.01
E2E_Evaluator_lazygit 161650.25291560643 ns/iter 161197.6102480804 ns/iter 1.00
E2E_Evaluator_lerna 151266.09422301356 ns/iter 145672.10577521592 ns/iter 1.04
E2E_Evaluator_nest_cli 226526.72865463197 ns/iter 224421.87507969898 ns/iter 1.01
E2E_Evaluator_omc 25700.235054350323 ns/iter 25740.640333878247 ns/iter 1.00
E2E_Evaluator_omnisharp 562901.8949097467 ns/iter 553754.4093099306 ns/iter 1.02
E2E_Evaluator_openapi 13310025.404255979 ns/iter 14573436.800001219 ns/iter 0.91
E2E_Evaluator_pre_commit_hooks 530538.4027671368 ns/iter 525462.3179060463 ns/iter 1.01
E2E_Evaluator_pulumi 847176.3369177479 ns/iter 832413.3218116519 ns/iter 1.02
E2E_Evaluator_semantic_release 135333.16191932122 ns/iter 135085.2460194077 ns/iter 1.00
E2E_Evaluator_stale 169248.73333337193 ns/iter 168148.11580443598 ns/iter 1.01
E2E_Evaluator_stylecop 333512.3533077785 ns/iter 346802.7846229673 ns/iter 0.96
E2E_Evaluator_tmuxinator 129436.12687783623 ns/iter 127114.62909946918 ns/iter 1.02
E2E_Evaluator_ui5 633141.2500000416 ns/iter 641118.4795268474 ns/iter 0.99
E2E_Evaluator_ui5_manifest 3206904.6742085796 ns/iter 3154337.0436894884 ns/iter 1.02
E2E_Evaluator_unreal_engine_uproject 511256.69117649365 ns/iter 523358.08175624075 ns/iter 0.98
E2E_Evaluator_vercel 352165.4775339296 ns/iter 348645.68145163934 ns/iter 1.01
E2E_Evaluator_yamllint 12848.546447985282 ns/iter 13014.98960678292 ns/iter 0.99

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