Skip to content

Implement dependency management in jsonschema.json#617

Open
jviotti wants to merge 9 commits intomainfrom
dependencies-config
Open

Implement dependency management in jsonschema.json#617
jviotti wants to merge 9 commits intomainfrom
dependencies-config

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Feb 6, 2026

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

@jviotti jviotti force-pushed the dependencies-config branch 3 times, most recently from 5c71059 to 1d12cf1 Compare February 6, 2026 16:02
Copy link

@github-actions github-actions bot left a comment

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: 9d1b5e6 Previous: ce2165f Ratio
E2E_Compiler_adaptivecard 67867549.99999402 ns/iter 117452800.00000092 ns/iter 0.58
E2E_Compiler_ansible_meta 29467902.791665778 ns/iter 39650938.705884025 ns/iter 0.74
E2E_Compiler_aws_cdk 419929.8177874131 ns/iter 756703.0000000158 ns/iter 0.55
E2E_Compiler_babelrc 3027409.0447152765 ns/iter 4728620.166666633 ns/iter 0.64
E2E_Compiler_clang_format 18785866.65714335 ns/iter 20090235.576919194 ns/iter 0.94
E2E_Compiler_cmake_presets 36472596.590907745 ns/iter 43153218.176471725 ns/iter 0.85
E2E_Compiler_code_climate 2477352.3295021155 ns/iter 3878097.0917433067 ns/iter 0.64
E2E_Compiler_cql2 16466682.836733302 ns/iter 20060658.973683964 ns/iter 0.82
E2E_Compiler_cspell 20701191.37036912 ns/iter 31783763.90476279 ns/iter 0.65
E2E_Compiler_cypress 4356372.701657603 ns/iter 5619340.420000753 ns/iter 0.78
E2E_Compiler_deno 8467151.410714889 ns/iter 11950735.16438454 ns/iter 0.71
E2E_Compiler_dependabot 3886599.338982906 ns/iter 6036377.849314604 ns/iter 0.64
E2E_Compiler_draft_04 2620843.8735295655 ns/iter 3330794.028339951 ns/iter 0.79
E2E_Compiler_fabric_mod 4529969.126506549 ns/iter 6659925.591836271 ns/iter 0.68
E2E_Compiler_geojson 26406201.680001687 ns/iter 48577511.066666074 ns/iter 0.54
E2E_Compiler_gitpod_configuration 5223636.660000466 ns/iter 7869348.242105077 ns/iter 0.66
E2E_Compiler_helm_chart_lock 602721.0000000596 ns/iter 1112552.0282186582 ns/iter 0.54
E2E_Compiler_importmap 295070.67274889234 ns/iter 643631.1250000698 ns/iter 0.46
E2E_Compiler_jasmine 1200401.9396170136 ns/iter 2158298.416201135 ns/iter 0.56
E2E_Compiler_jshintrc 4047422.0430112793 ns/iter 5709980.6701031765 ns/iter 0.71
E2E_Compiler_jsconfig 19075786.885712527 ns/iter 34299449.26087165 ns/iter 0.56
E2E_Compiler_krakend 156362968.75001675 ns/iter 245375471.99997792 ns/iter 0.64
E2E_Compiler_lazygit 32409922.363637056 ns/iter 52534003.49999993 ns/iter 0.62
E2E_Compiler_lerna 1521604.2435425092 ns/iter 2598181.9562286353 ns/iter 0.59
E2E_Compiler_nest_cli 6761732.555555372 ns/iter 12584887.438596556 ns/iter 0.54
E2E_Compiler_omc 177990978.9999863 ns/iter 254103611.000005 ns/iter 0.70
E2E_Compiler_omnisharp 5838914.915967171 ns/iter 9846545.259258028 ns/iter 0.59
E2E_Compiler_openapi 27788147.727271665 ns/iter 31716885.41666621 ns/iter 0.88
E2E_Compiler_pre_commit_hooks 4285274.07777829 ns/iter 7622044.305263013 ns/iter 0.56
E2E_Compiler_pulumi 3703625.6410257732 ns/iter 5418817.401961156 ns/iter 0.68
E2E_Compiler_semantic_release 1381307.0335306386 ns/iter 1996714.5823526983 ns/iter 0.69
E2E_Compiler_stale 1706853.9540816825 ns/iter 2095159.8184929213 ns/iter 0.81
E2E_Compiler_stylecop 6543040.854368874 ns/iter 7069040.653226282 ns/iter 0.93
E2E_Compiler_tmuxinator 2121625.8652848266 ns/iter 2589667.918918899 ns/iter 0.82
E2E_Compiler_ui5 62081434.000001915 ns/iter 88461295.8000048 ns/iter 0.70
E2E_Compiler_ui5_manifest 328870208.49995 ns/iter 586807292.0000031 ns/iter 0.56
E2E_Compiler_unreal_engine_uproject 4118005.5555552524 ns/iter 4849141.592591911 ns/iter 0.85
E2E_Compiler_vercel 17883315.34090885 ns/iter 25919951.84375051 ns/iter 0.69
E2E_Compiler_yamllint 295776.16347381973 ns/iter 965751.4579999998 ns/iter 0.31
E2E_Evaluator_adaptivecard 30768.52418607858 ns/iter 43618.391368620796 ns/iter 0.71
E2E_Evaluator_ansible_meta 233432.3728112113 ns/iter 512263.07804606296 ns/iter 0.46
E2E_Evaluator_aws_cdk 58099.11924227546 ns/iter 72891.65091894231 ns/iter 0.80
E2E_Evaluator_babelrc 125794.96715988491 ns/iter 178899.6416354992 ns/iter 0.70
E2E_Evaluator_cerebrum_criminal_case 1560767.1996124652 ns/iter 2052834.957792188 ns/iter 0.76
E2E_Evaluator_clang_format 149749.36583989594 ns/iter 177485.27607981494 ns/iter 0.84
E2E_Evaluator_cmake_presets 4421702.8613145575 ns/iter 6447893.400000263 ns/iter 0.69
E2E_Evaluator_code_climate 289184.32686778106 ns/iter 261150.73086002606 ns/iter 1.11
E2E_Evaluator_cql2 231929.5962320035 ns/iter 281121.0635045209 ns/iter 0.83
E2E_Evaluator_cspell 522014.21289819456 ns/iter 730443.1703628994 ns/iter 0.71
E2E_Evaluator_cypress 194997.46759364207 ns/iter 217837.5890736077 ns/iter 0.90
E2E_Evaluator_deno 274984.56535793317 ns/iter 346947.67275840073 ns/iter 0.79
E2E_Evaluator_dependabot 382164.7696477133 ns/iter 594911.2948717991 ns/iter 0.64
E2E_Evaluator_draft_04 6490963.123894241 ns/iter 8973632.53333359 ns/iter 0.72
E2E_Evaluator_fabric_mod 696946.0727969675 ns/iter 944431.8438818108 ns/iter 0.74
E2E_Evaluator_geojson 23396387.999998324 ns/iter 30302533.76190168 ns/iter 0.77
E2E_Evaluator_gitpod_configuration 245782.2210526313 ns/iter 368555.7431325209 ns/iter 0.67
E2E_Evaluator_helm_chart_lock 329351.8675821848 ns/iter 475585.2153141464 ns/iter 0.69
E2E_Evaluator_importmap 58593.07080000917 ns/iter 72687.52325668056 ns/iter 0.81
E2E_Evaluator_jasmine 147215.3293401715 ns/iter 173266.66253715428 ns/iter 0.85
E2E_Evaluator_jshintrc 1136002.52966098 ns/iter 1482212.481481537 ns/iter 0.77
E2E_Evaluator_jsconfig 459499.3485991851 ns/iter 529128.5538599717 ns/iter 0.87
E2E_Evaluator_krakend 169526.50986238683 ns/iter 255591.10552559313 ns/iter 0.66
E2E_Evaluator_lazygit 123710.42258990207 ns/iter 215309.52217842644 ns/iter 0.57
E2E_Evaluator_lerna 137059.2365692599 ns/iter 205416.92548897298 ns/iter 0.67
E2E_Evaluator_nest_cli 156022.51255678904 ns/iter 235371.92062983324 ns/iter 0.66
E2E_Evaluator_omc 21997.772324085025 ns/iter 25770.24330070349 ns/iter 0.85
E2E_Evaluator_omnisharp 528981.0409999518 ns/iter 784426.3003575996 ns/iter 0.67
E2E_Evaluator_openapi 11834142.065574687 ns/iter 13856834.033899141 ns/iter 0.85
E2E_Evaluator_pre_commit_hooks 527483.091154584 ns/iter 636842.3011456727 ns/iter 0.83
E2E_Evaluator_pulumi 809822.3877118086 ns/iter 975972.1132812278 ns/iter 0.83
E2E_Evaluator_semantic_release 124879.49818754158 ns/iter 143623.1258373371 ns/iter 0.87
E2E_Evaluator_stale 158627.0350913205 ns/iter 207332.44186645973 ns/iter 0.77
E2E_Evaluator_stylecop 242301.42076315335 ns/iter 351615.3023381987 ns/iter 0.69
E2E_Evaluator_tmuxinator 88142.66386456591 ns/iter 140905.7018053907 ns/iter 0.63
E2E_Evaluator_ui5 465338.5525400297 ns/iter 669782.5802920402 ns/iter 0.69
E2E_Evaluator_ui5_manifest 2411641.9999999763 ns/iter 3403083.335293853 ns/iter 0.71
E2E_Evaluator_unreal_engine_uproject 398037.28931924806 ns/iter 550175.4169999913 ns/iter 0.72
E2E_Evaluator_vercel 265693.1910984314 ns/iter 489472.4462365526 ns/iter 0.54
E2E_Evaluator_yamllint 14334.499868559047 ns/iter 19453.80604283097 ns/iter 0.74
Micro_Draft4_Meta_1_No_Callback 209.9614149765326 ns/iter 261.06511168629174 ns/iter 0.80
Micro_Draft4_Required_Properties 931.4379760525585 ns/iter 1107.6249938240771 ns/iter 0.84
Micro_Draft4_Many_Optional_Properties_Minimal_Match 28.529431990095233 ns/iter 39.615457729400774 ns/iter 0.72
Micro_Draft4_Few_Optional_Properties_Minimal_Match 15.472836077032767 ns/iter 19.26138696420455 ns/iter 0.80
Micro_Draft4_Items_Schema 538.0833340000208 ns/iter 758.5830191685237 ns/iter 0.71
Micro_Draft4_Nested_Object 3.542226790039663 ns/iter 5.706935410000824 ns/iter 0.62
Micro_Draft4_Properties_Triad_Optional 309.8666655165908 ns/iter 432.1958150652359 ns/iter 0.72
Micro_Draft4_Properties_Triad_Closed 239.36744688425262 ns/iter 429.3180677413345 ns/iter 0.56
Micro_Draft4_Properties_Triad_Required 328.22604428939167 ns/iter 555.1959590000024 ns/iter 0.59
Micro_Draft4_Properties_Closed 61.77063313642019 ns/iter 80.11937351311137 ns/iter 0.77
Micro_Draft4_Non_Recursive_Ref 25.383465550789015 ns/iter 33.37016875911202 ns/iter 0.76
Micro_Draft4_Pattern_Properties_True 169.00350420557206 ns/iter 256.2273765857061 ns/iter 0.66
Micro_Draft4_Ref_To_Single_Property 12.823499014728757 ns/iter 20.590917471727796 ns/iter 0.62
Micro_Draft4_Additional_Properties_Type 50.86323750000474 ns/iter 82.40188050017186 ns/iter 0.62
Micro_Draft4_Nested_Oneof 64.28119012753231 ns/iter 81.25293360195938 ns/iter 0.79
Micro_Draft4_Short_Enum 10.861928995436552 ns/iter 15.316028977787534 ns/iter 0.71
Micro_Draft4_Long_Enum 17.22951740733971 ns/iter 18.28234554069681 ns/iter 0.94
Micro_Draft4_Long_Enum_Short_Strings 11.196809237265787 ns/iter 14.364900858673463 ns/iter 0.78
Micro_Draft4_Type_Object 6.769876807809809 ns/iter 6.710164810776298 ns/iter 1.01
Micro_Draft4_Ref_Single_100 2551659.9323308705 ns/iter 2396450.8989900006 ns/iter 1.06
Micro_Draft4_Compile_Ref_Many_Nested 1831293.8578946472 ns/iter 1752791.7590088919 ns/iter 1.04
Micro_Draft4_Compile_Wrap 2924912.67123296 ns/iter 2718258.540983429 ns/iter 1.08
Micro_Draft6_Property_Names 137.24925860416857 ns/iter 120.79050076362563 ns/iter 1.14
Micro_Draft7_If_Then_Else 32.529889600004935 ns/iter 42.779312661987674 ns/iter 0.76
Micro_2019_09_Unevaluated_Properties 42.59371295888709 ns/iter 57.52803737783117 ns/iter 0.74
Micro_2019_09_Compile_Wrap 402221062.4999616 ns/iter 581055834.0000398 ns/iter 0.69
Micro_2019_09_KrakenD_Linter_Check 1020547332.9999677 ns/iter 1416448040.9999669 ns/iter 0.72
Micro_2019_09_KrakenD_Linter_Apply 8383593958.000006 ns/iter 10762763833.999998 ns/iter 0.78
Micro_2020_12_Dynamic_Ref 309.8855338067684 ns/iter 328.57841458294365 ns/iter 0.94
Micro_2020_12_Dynamic_Ref_Single 7.820937479606645 ns/iter 7.772642201053442 ns/iter 1.01
Micro_2020_12_Simple_Output_Mask 188550.44541854344 ns/iter 187986.1664008301 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 178282.88476118702 ns/iter 213147.3304163191 ns/iter 0.84
Micro_2020_12_Compile_NonCircular_Shared_Refs 964471.3263156745 ns/iter 1174647.304236246 ns/iter 0.82

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

@jviotti jviotti force-pushed the dependencies-config branch 4 times, most recently from 3d90c63 to 92fe984 Compare February 6, 2026 17:41
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the dependencies-config branch from 92fe984 to 83f2d8b Compare February 6, 2026 17:52
@jviotti jviotti changed the title [WIP] Implement dependency management in jsonschema.json Implement dependency management in jsonschema.json Feb 6, 2026
@jviotti jviotti marked this pull request as ready for review February 6, 2026 17:59
Copy link

@github-actions github-actions bot left a comment

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: 9d1b5e6 Previous: ce2165f Ratio
E2E_Compiler_adaptivecard 60618589.00000061 ns/iter 61710783.699999176 ns/iter 0.98
E2E_Compiler_ansible_meta 26620306.653844986 ns/iter 26283812.407406777 ns/iter 1.01
E2E_Compiler_aws_cdk 460519.39866667154 ns/iter 459336.18253446504 ns/iter 1.00
E2E_Compiler_babelrc 2491933.715302465 ns/iter 2489485.8014184716 ns/iter 1.00
E2E_Compiler_clang_format 16912473.53658571 ns/iter 17320933.59999993 ns/iter 0.98
E2E_Compiler_cmake_presets 24614827.46428447 ns/iter 24785188.0714275 ns/iter 0.99
E2E_Compiler_code_climate 2462063.870175251 ns/iter 2466458.295774793 ns/iter 1.00
E2E_Compiler_cql2 12463915.210527206 ns/iter 12410589.000000386 ns/iter 1.00
E2E_Compiler_cspell 21869117.65624977 ns/iter 21629382.156248767 ns/iter 1.01
E2E_Compiler_cypress 3866452.7032966404 ns/iter 3814341.092391175 ns/iter 1.01
E2E_Compiler_deno 7309000.3750001155 ns/iter 7250328.906250066 ns/iter 1.01
E2E_Compiler_dependabot 3717078.36170227 ns/iter 3707760.9052630574 ns/iter 1.00
E2E_Compiler_draft_04 2593366.2999999863 ns/iter 2593283.335793255 ns/iter 1.00
E2E_Compiler_fabric_mod 4504913.8193550585 ns/iter 4506612.412903025 ns/iter 1.00
E2E_Compiler_geojson 20817050.058824677 ns/iter 21460502.090908933 ns/iter 0.97
E2E_Compiler_gitpod_configuration 4640642.874172297 ns/iter 4628537.331125741 ns/iter 1.00
E2E_Compiler_helm_chart_lock 771859.2563256287 ns/iter 764228.9408543175 ns/iter 1.01
E2E_Compiler_importmap 380164.6051780051 ns/iter 376456.1235894518 ns/iter 1.01
E2E_Compiler_jasmine 1366908.4765625116 ns/iter 1367772.5941746961 ns/iter 1.00
E2E_Compiler_jshintrc 4177790.8809524975 ns/iter 4174150.7380951336 ns/iter 1.00
E2E_Compiler_jsconfig 20218598.94285691 ns/iter 20297969.37142854 ns/iter 1.00
E2E_Compiler_krakend 139544950.7999956 ns/iter 153871122.39999396 ns/iter 0.91
E2E_Compiler_lazygit 30857473.65217319 ns/iter 32291906.090909544 ns/iter 0.96
E2E_Compiler_lerna 1595114.477168961 ns/iter 1600635.3958809746 ns/iter 1.00
E2E_Compiler_nest_cli 6915269.450980291 ns/iter 6940409.514851522 ns/iter 1.00
E2E_Compiler_omc 144687067.79999822 ns/iter 159008599.00000343 ns/iter 0.91
E2E_Compiler_omnisharp 6310085.315315698 ns/iter 6336612.981981858 ns/iter 1.00
E2E_Compiler_openapi 23381243.933332976 ns/iter 23923245.482759003 ns/iter 0.98
E2E_Compiler_pre_commit_hooks 4962562.156028399 ns/iter 4997103.907142884 ns/iter 0.99
E2E_Compiler_pulumi 3843438.595628453 ns/iter 3839609.120218558 ns/iter 1.00
E2E_Compiler_semantic_release 1558263.9066667524 ns/iter 1555516.0111357975 ns/iter 1.00
E2E_Compiler_stale 1539639.7819384045 ns/iter 1542096.5241228142 ns/iter 1.00
E2E_Compiler_stylecop 5748562.717741838 ns/iter 5679324.491935283 ns/iter 1.01
E2E_Compiler_tmuxinator 1915083.8027396637 ns/iter 1931102.8099174013 ns/iter 0.99
E2E_Compiler_ui5 46125882.66666459 ns/iter 47277253.93333154 ns/iter 0.98
E2E_Compiler_ui5_manifest 301717771.9999893 ns/iter 329686710.0000043 ns/iter 0.92
E2E_Compiler_unreal_engine_uproject 4320558.290123629 ns/iter 4341494.018633258 ns/iter 1.00
E2E_Compiler_vercel 12295017.122807039 ns/iter 12449965.91228137 ns/iter 0.99
E2E_Compiler_yamllint 434352.63900931797 ns/iter 433305.4588235444 ns/iter 1.00
E2E_Evaluator_adaptivecard 36041.49370733698 ns/iter 36307.66493425469 ns/iter 0.99
E2E_Evaluator_ansible_meta 313791.1883607421 ns/iter 312023.01060538925 ns/iter 1.01
E2E_Evaluator_aws_cdk 74596.96339897686 ns/iter 75444.02138868342 ns/iter 0.99
E2E_Evaluator_babelrc 153563.0689200988 ns/iter 153232.1102669875 ns/iter 1.00
E2E_Evaluator_cerebrum_criminal_case 1644887.6162790617 ns/iter 1659790.637469516 ns/iter 0.99
E2E_Evaluator_clang_format 139039.08393865707 ns/iter 138849.81156530403 ns/iter 1.00
E2E_Evaluator_cmake_presets 5376088.184615704 ns/iter 5654550.439655184 ns/iter 0.95
E2E_Evaluator_code_climate 279982.5458567881 ns/iter 277317.2838428036 ns/iter 1.01
E2E_Evaluator_cql2 310824.3351111166 ns/iter 308222.69837883144 ns/iter 1.01
E2E_Evaluator_cspell 723834.5294725939 ns/iter 726437.5124999962 ns/iter 1.00
E2E_Evaluator_cypress 234367.70556850516 ns/iter 233646.4585987204 ns/iter 1.00
E2E_Evaluator_deno 393425.63376331475 ns/iter 393819.5073696359 ns/iter 1.00
E2E_Evaluator_dependabot 580973.5333883151 ns/iter 578481.9298679697 ns/iter 1.00
E2E_Evaluator_draft_04 8946130.961038461 ns/iter 10092426.66666655 ns/iter 0.89
E2E_Evaluator_fabric_mod 922779.8797385232 ns/iter 922182.7663185438 ns/iter 1.00
E2E_Evaluator_geojson 30416535.956520796 ns/iter 31099161.000000823 ns/iter 0.98
E2E_Evaluator_gitpod_configuration 305719.3072527298 ns/iter 308346.00575476506 ns/iter 0.99
E2E_Evaluator_helm_chart_lock 454117.2695035684 ns/iter 462724.89157412783 ns/iter 0.98
E2E_Evaluator_importmap 68348.8458795149 ns/iter 68142.43998030426 ns/iter 1.00
E2E_Evaluator_jasmine 169960.44846865133 ns/iter 168552.0413143346 ns/iter 1.01
E2E_Evaluator_jshintrc 1311366.5834896502 ns/iter 1317251.1186441518 ns/iter 1.00
E2E_Evaluator_jsconfig 525896.1816816846 ns/iter 525688.9654395217 ns/iter 1.00
E2E_Evaluator_krakend 260491.33667408043 ns/iter 266224.21144372347 ns/iter 0.98
E2E_Evaluator_lazygit 179003.33968580593 ns/iter 179502.85940291305 ns/iter 1.00
E2E_Evaluator_lerna 208006.79788484107 ns/iter 207090.8833087187 ns/iter 1.00
E2E_Evaluator_nest_cli 251841.16409889626 ns/iter 252863.6917346642 ns/iter 1.00
E2E_Evaluator_omc 27679.524182902107 ns/iter 28542.116667331393 ns/iter 0.97
E2E_Evaluator_omnisharp 718420.6311475852 ns/iter 721345.1216769036 ns/iter 1.00
E2E_Evaluator_openapi 14584122.76595704 ns/iter 17723420.87179496 ns/iter 0.82
E2E_Evaluator_pre_commit_hooks 597247.243174058 ns/iter 602059.525278467 ns/iter 0.99
E2E_Evaluator_pulumi 875404.8149068372 ns/iter 873871.5244055057 ns/iter 1.00
E2E_Evaluator_semantic_release 141226.66869794656 ns/iter 141482.55859847437 ns/iter 1.00
E2E_Evaluator_stale 206871.9266328694 ns/iter 208391.7164134702 ns/iter 0.99
E2E_Evaluator_stylecop 360374.36773857207 ns/iter 361844.4834196889 ns/iter 1.00
E2E_Evaluator_tmuxinator 135445.38065882865 ns/iter 136131.35204474887 ns/iter 0.99
E2E_Evaluator_ui5 690260.194637527 ns/iter 696318.490019951 ns/iter 0.99
E2E_Evaluator_ui5_manifest 3436646.267326942 ns/iter 4323236.296296386 ns/iter 0.79
E2E_Evaluator_unreal_engine_uproject 543668.9729938164 ns/iter 541923.1303668865 ns/iter 1.00
E2E_Evaluator_vercel 386025.74889382086 ns/iter 389180.0579387189 ns/iter 0.99
E2E_Evaluator_yamllint 18280.20633296761 ns/iter 18166.688984993645 ns/iter 1.01
Micro_Draft4_Meta_1_No_Callback 257.37065034546004 ns/iter 257.66665585921317 ns/iter 1.00
Micro_Draft4_Required_Properties 1157.234697898399 ns/iter 1146.9994376227853 ns/iter 1.01
Micro_Draft4_Many_Optional_Properties_Minimal_Match 31.73921351202148 ns/iter 31.74654426417937 ns/iter 1.00
Micro_Draft4_Few_Optional_Properties_Minimal_Match 19.947904188993704 ns/iter 19.927689235485104 ns/iter 1.00
Micro_Draft4_Items_Schema 650.326152195034 ns/iter 643.4697704923994 ns/iter 1.01
Micro_Draft4_Nested_Object 3.108228344896242 ns/iter 3.1078232473250806 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 388.5997500058316 ns/iter 388.47522725996515 ns/iter 1.00
Micro_Draft4_Properties_Triad_Closed 323.8820316834943 ns/iter 321.0690468696627 ns/iter 1.01
Micro_Draft4_Properties_Triad_Required 438.57356901665463 ns/iter 435.7284466074228 ns/iter 1.01
Micro_Draft4_Properties_Closed 79.02300013860484 ns/iter 79.1900900510453 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 31.928285757458244 ns/iter 31.98943272583125 ns/iter 1.00
Micro_Draft4_Pattern_Properties_True 268.0310495710489 ns/iter 267.729760339982 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 19.937587131358157 ns/iter 19.92678284963536 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 60.00772909566696 ns/iter 59.940150247302924 ns/iter 1.00
Micro_Draft4_Nested_Oneof 88.6871805862528 ns/iter 88.79352255642566 ns/iter 1.00
Micro_Draft4_Short_Enum 15.295399648777908 ns/iter 15.051326801560972 ns/iter 1.02
Micro_Draft4_Long_Enum 18.98792541104691 ns/iter 19.47356850337113 ns/iter 0.98
Micro_Draft4_Long_Enum_Short_Strings 15.250183868054654 ns/iter 15.127441541618607 ns/iter 1.01
Micro_Draft4_Type_Object 8.400384135465027 ns/iter 8.402979781186733 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2390778.3424658566 ns/iter 2375842.213559273 ns/iter 1.01
Micro_Draft4_Compile_Ref_Many_Nested 1783145.8091602998 ns/iter 1772832.0606060417 ns/iter 1.01
Micro_Draft4_Compile_Wrap 2336293.473333247 ns/iter 2317083.366666755 ns/iter 1.01
Micro_Draft6_Property_Names 116.89267528554717 ns/iter 116.94751306945376 ns/iter 1.00
Micro_Draft7_If_Then_Else 39.82726486725117 ns/iter 39.83061635391604 ns/iter 1.00
Micro_2019_09_Unevaluated_Properties 52.67973601478684 ns/iter 56.30722816198104 ns/iter 0.94
Micro_2019_09_Compile_Wrap 267279025.66665307 ns/iter 301953920.00001675 ns/iter 0.89
Micro_2019_09_KrakenD_Linter_Check 1228880079.000021 ns/iter 1237307645.9999766 ns/iter 0.99
Micro_2019_09_KrakenD_Linter_Apply 10860121620.000029 ns/iter 11230766044.999996 ns/iter 0.97
Micro_2020_12_Dynamic_Ref 359.44748171784045 ns/iter 361.69236093094895 ns/iter 0.99
Micro_2020_12_Dynamic_Ref_Single 8.398438690597716 ns/iter 8.465872182958359 ns/iter 0.99
Micro_2020_12_Simple_Output_Mask 143554.84929006046 ns/iter 140646.93761248398 ns/iter 1.02
Micro_2020_12_Simple_Output_Annotations 168736.12049358943 ns/iter 169479.86008624313 ns/iter 1.00
Micro_2020_12_Compile_NonCircular_Shared_Refs 1065198.191489409 ns/iter 1067569.2955589672 ns/iter 1.00

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

@augmentcode
Copy link

augmentcode bot commented Feb 6, 2026

🤖 Augment PR Summary

Summary: This PR adds first-class dependency management to Blaze’s jsonschema.json configuration, including fetching, bundling, and lock-file tracking.

Changes:

  • Adds a dependencies map to Configuration and parses it from JSON with duplicate-path validation.
  • Introduces Configuration::Lock (JSON v1) to persist absolute paths, hashes, and hash algorithm metadata for fetched dependencies.
  • Implements dependency fetching and schema bundling with a structured FetchEvent callback API and modes for “mutable lock” vs “frozen” operation.
  • Refactors Configuration::read_json to accept an injected reader callback (improving testability and decoupling IO).
  • Updates build wiring to link required Core components (md5, jsonschema) for the new functionality.
  • Adds extensive unit tests covering parsing, lock serialization/validation, and fetch workflows (including error/abort paths).

Technical Notes: Fetching emits start/end events for fetch/bundle/write/verify steps and uses content hashing to detect drift versus the lock file.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

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.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

5 issues found across 20 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="test/configuration/configuration_fetch_frozen_test.cc">

<violation number="1" location="test/configuration/configuration_fetch_frozen_test.cc:371">
P2: These tests rely on the iteration order of `dependencies` (which is `std::unordered_map`), making them flaky. `Configuration::fetch` iterates over dependencies in a non-deterministic order, so the order of emitted events and their `index` property will vary.

For example, `dry_run_all_status_types` (line 460) tries to handle this with an `if/else` block but only covers 2 of the 24 possible permutations (4!). Tests like `dry_run_multiple_mixed_results` and `dry_run_multiple_with_untracked_and_missing` assert a strict order, which will eventually fail.

Recommended fix: Sort the dependencies by URI in `Configuration::fetch` to ensure deterministic execution order, or update the tests to be order-independent.</violation>
</file>

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

<violation number="1" location="src/configuration/fetch.cc:16">
P2: MD5 is a weak hashing algorithm susceptible to collision attacks. For dependency locking/verification, SHA-256 is the industry standard to prevent malicious substitution.</violation>
</file>

<file name="src/configuration/include/sourcemeta/blaze/configuration.h">

<violation number="1" location="src/configuration/include/sourcemeta/blaze/configuration.h:24">
P2: Incorrect include comment: `std::size_t` is defined in `<cstddef>`, not `<cstdint>`. Either add `#include <cstddef>` or correct the comment to only mention `std::uint8_t`.</violation>
</file>

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

<violation number="1" location="src/configuration/lock.cc:144">
P2: Iteration over `std::unordered_map` produces non-deterministic order in the generated JSON. Since `JSONObject` preserves insertion order, the resulting lock file will have keys in random order, leading to merge conflicts and unstable file contents.

Sort the entries by key before serializing to ensure deterministic output.</violation>
</file>

<file name="test/configuration/configuration_lock_parse_v1_test.cc">

<violation number="1" location="test/configuration/configuration_lock_parse_v1_test.cc:25">
P2: The test uses hardcoded Unix-style absolute paths. On Windows, `std::filesystem::path::is_absolute("/absolute/...")` returns false, causing the test to fail with "The lock file dependency entry path must be absolute".

Use `std::filesystem::absolute` or a platform-independent way to construct valid absolute paths for the test data (e.g., dynamically constructing the JSON string or object).</violation>
</file>

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

Copy link

@github-actions github-actions bot left a comment

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: 9d1b5e6 Previous: ce2165f Ratio
Micro_2020_12_Dynamic_Ref 467.00460424541524 ns/iter 453.855624547453 ns/iter 1.03
Micro_2020_12_Dynamic_Ref_Single 9.280659197754364 ns/iter 9.274128674598407 ns/iter 1.00
Micro_2020_12_Simple_Output_Mask 136514.14307841638 ns/iter 136800.80023116156 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 173182.65539534565 ns/iter 171921.71642157776 ns/iter 1.01
Micro_2020_12_Compile_NonCircular_Shared_Refs 1235306.1408450876 ns/iter 1224836.8807018108 ns/iter 1.01
Micro_2019_09_Unevaluated_Properties 46.66087415251604 ns/iter 46.93441291861866 ns/iter 0.99
Micro_2019_09_Compile_Wrap 319077744.5000208 ns/iter 334360493.00001967 ns/iter 0.95
Micro_2019_09_KrakenD_Linter_Check 1303818000.9999678 ns/iter 1309217032.9999816 ns/iter 1.00
Micro_2019_09_KrakenD_Linter_Apply 11600134677.999905 ns/iter 10861429610.000072 ns/iter 1.07
Micro_Draft7_If_Then_Else 45.590742061500364 ns/iter 45.689303719847686 ns/iter 1.00
Micro_Draft6_Property_Names 162.31455624219439 ns/iter 162.10551942299583 ns/iter 1.00
Micro_Draft4_Meta_1_No_Callback 221.58910755186633 ns/iter 221.94640412868588 ns/iter 1.00
Micro_Draft4_Required_Properties 796.8073794796409 ns/iter 792.748665980995 ns/iter 1.01
Micro_Draft4_Many_Optional_Properties_Minimal_Match 27.316308511614512 ns/iter 27.291302972491614 ns/iter 1.00
Micro_Draft4_Few_Optional_Properties_Minimal_Match 16.919909190996268 ns/iter 16.935162249709197 ns/iter 1.00
Micro_Draft4_Items_Schema 536.2492773206609 ns/iter 524.177627278694 ns/iter 1.02
Micro_Draft4_Nested_Object 3.2945626003259623 ns/iter 3.2906581638076764 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 472.08012240383647 ns/iter 615.2297017399675 ns/iter 0.77
Micro_Draft4_Properties_Triad_Closed 411.62386957322786 ns/iter 472.77424310890734 ns/iter 0.87
Micro_Draft4_Properties_Triad_Required 514.8321025728122 ns/iter 598.4273855858738 ns/iter 0.86
Micro_Draft4_Properties_Closed 70.28417205566574 ns/iter 70.3061186675105 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 14.119511948898085 ns/iter 14.122768053207896 ns/iter 1.00
Micro_Draft4_Pattern_Properties_True 240.38859381787748 ns/iter 240.0626537121159 ns/iter 1.00
Micro_Draft4_Ref_To_Single_Property 16.9014432951995 ns/iter 16.92975184467246 ns/iter 1.00
Micro_Draft4_Additional_Properties_Type 19.139546939086575 ns/iter 19.14959064740989 ns/iter 1.00
Micro_Draft4_Nested_Oneof 111.9039136519717 ns/iter 111.75645040226816 ns/iter 1.00
Micro_Draft4_Short_Enum 17.794589331528858 ns/iter 17.844105826178847 ns/iter 1.00
Micro_Draft4_Long_Enum 19.3738791380896 ns/iter 19.476077803859162 ns/iter 0.99
Micro_Draft4_Long_Enum_Short_Strings 18.056988161581423 ns/iter 17.790920805989636 ns/iter 1.01
Micro_Draft4_Type_Object 9.306234455613907 ns/iter 9.288455096570786 ns/iter 1.00
Micro_Draft4_Ref_Single_100 2574753.0811809306 ns/iter 2569401.2380953385 ns/iter 1.00
Micro_Draft4_Compile_Ref_Many_Nested 1915435.000000175 ns/iter 1897174.7351352444 ns/iter 1.01
Micro_Draft4_Compile_Wrap 2612748.5333332787 ns/iter 2586433.0147599895 ns/iter 1.01
E2E_Compiler_adaptivecard 73001554.60000041 ns/iter 71272145.77777371 ns/iter 1.02
E2E_Compiler_ansible_meta 30739921.391302787 ns/iter 30102581.347824015 ns/iter 1.02
E2E_Compiler_aws_cdk 522578.84494384204 ns/iter 519049.79422646936 ns/iter 1.01
E2E_Compiler_babelrc 2988105.077551321 ns/iter 2841745.589431112 ns/iter 1.05
E2E_Compiler_clang_format 19657476.916664664 ns/iter 19533988.88888892 ns/iter 1.01
E2E_Compiler_cmake_presets 27697855.320002418 ns/iter 27603916.4399981 ns/iter 1.00
E2E_Compiler_code_climate 2888362.0081633497 ns/iter 2855762.404858239 ns/iter 1.01
E2E_Compiler_cql2 14278811.95918556 ns/iter 14601741.723404204 ns/iter 0.98
E2E_Compiler_cspell 24340018.482760195 ns/iter 24159538.517241783 ns/iter 1.01
E2E_Compiler_cypress 4298188.165644568 ns/iter 4218940.921212131 ns/iter 1.02
E2E_Compiler_deno 8318053.285713794 ns/iter 8342373.91666734 ns/iter 1.00
E2E_Compiler_dependabot 4330333.722222164 ns/iter 4325006.166666692 ns/iter 1.00
E2E_Compiler_draft_04 3017548.3073595758 ns/iter 3002381.6336206086 ns/iter 1.01
E2E_Compiler_fabric_mod 5209238.674073849 ns/iter 5149970.808823375 ns/iter 1.01
E2E_Compiler_geojson 24156440.58620775 ns/iter 24617475.896551978 ns/iter 0.98
E2E_Compiler_gitpod_configuration 5360138.184614873 ns/iter 5381694.46969653 ns/iter 1.00
E2E_Compiler_helm_chart_lock 852879.1931541362 ns/iter 849594.4667473208 ns/iter 1.00
E2E_Compiler_importmap 421957.0307228938 ns/iter 422916.2243667452 ns/iter 1.00
E2E_Compiler_jasmine 1555449.942222064 ns/iter 1552003.9292034872 ns/iter 1.00
E2E_Compiler_jshintrc 4807880.60958917 ns/iter 4822052.958904151 ns/iter 1.00
E2E_Compiler_jsconfig 23162729.933331624 ns/iter 23234523.600001466 ns/iter 1.00
E2E_Compiler_krakend 161436002.75000834 ns/iter 162769626.74999142 ns/iter 0.99
E2E_Compiler_lazygit 35661093.95000012 ns/iter 36495813.94737006 ns/iter 0.98
E2E_Compiler_lerna 1851127.402116338 ns/iter 1827205.2434553504 ns/iter 1.01
E2E_Compiler_nest_cli 8049325.655172485 ns/iter 8035074.252874458 ns/iter 1.00
E2E_Compiler_omc 172091434.50000396 ns/iter 175768098.49998653 ns/iter 0.98
E2E_Compiler_omnisharp 7293947.770833142 ns/iter 7264592.814433001 ns/iter 1.00
E2E_Compiler_openapi 27135314.34615281 ns/iter 27006086.115385678 ns/iter 1.00
E2E_Compiler_pre_commit_hooks 5740374.729507717 ns/iter 5693292.950819587 ns/iter 1.01
E2E_Compiler_pulumi 4447579.943037516 ns/iter 4440010.424050947 ns/iter 1.00
E2E_Compiler_semantic_release 1794867.9076924305 ns/iter 1777115.5215190377 ns/iter 1.01
E2E_Compiler_stale 1747886.8746866398 ns/iter 1735801.170792008 ns/iter 1.01
E2E_Compiler_stylecop 6307799.4414415285 ns/iter 6294037.351351419 ns/iter 1.00
E2E_Compiler_tmuxinator 2214886.4430382415 ns/iter 2213703.5786163067 ns/iter 1.00
E2E_Compiler_ui5 51006162.21428871 ns/iter 51465587.083337516 ns/iter 0.99
E2E_Compiler_ui5_manifest 343396724.00000155 ns/iter 351627945.49995625 ns/iter 0.98
E2E_Compiler_unreal_engine_uproject 4948164.585714007 ns/iter 4990030.191489102 ns/iter 0.99
E2E_Compiler_vercel 13480151.903846804 ns/iter 13667900.13999889 ns/iter 0.99
E2E_Compiler_yamllint 484363.272160643 ns/iter 482377.6694214308 ns/iter 1.00
E2E_Evaluator_adaptivecard 33340.2385150617 ns/iter 30584.206668110088 ns/iter 1.09
E2E_Evaluator_ansible_meta 298495.8904923845 ns/iter 292951.8782609267 ns/iter 1.02
E2E_Evaluator_aws_cdk 58702.18921873804 ns/iter 59449.642004980364 ns/iter 0.99
E2E_Evaluator_babelrc 134102.8157396996 ns/iter 133743.42455936468 ns/iter 1.00
E2E_Evaluator_cerebrum_criminal_case 1433163.493801703 ns/iter 1454821.0266937092 ns/iter 0.99
E2E_Evaluator_clang_format 109164.56870110099 ns/iter 107679.80719003124 ns/iter 1.01
E2E_Evaluator_cmake_presets 5478182.953124744 ns/iter 6320072.688071661 ns/iter 0.87
E2E_Evaluator_code_climate 232912.56723796108 ns/iter 231411.9412734641 ns/iter 1.01
E2E_Evaluator_cql2 317750.1638674275 ns/iter 308221.0431908773 ns/iter 1.03
E2E_Evaluator_cspell 645702.8828412932 ns/iter 644014.6867469954 ns/iter 1.00
E2E_Evaluator_cypress 177160.03262518923 ns/iter 176916.1513994632 ns/iter 1.00
E2E_Evaluator_deno 358215.5030487712 ns/iter 356329.81804202014 ns/iter 1.01
E2E_Evaluator_dependabot 495592.5594555587 ns/iter 495204.38395421434 ns/iter 1.00
E2E_Evaluator_draft_04 8863744.987500865 ns/iter 9265475.906665113 ns/iter 0.96
E2E_Evaluator_fabric_mod 922449.8227684632 ns/iter 910828.2629534074 ns/iter 1.01
E2E_Evaluator_geojson 26484725.666663237 ns/iter 26674137.962960165 ns/iter 0.99
E2E_Evaluator_gitpod_configuration 277941.5534716263 ns/iter 278381.7067460231 ns/iter 1.00
E2E_Evaluator_helm_chart_lock 347658.6524090395 ns/iter 339995.7175792937 ns/iter 1.02
E2E_Evaluator_importmap 58060.09550372051 ns/iter 57730.26335626835 ns/iter 1.01
E2E_Evaluator_jasmine 140785.98207173587 ns/iter 141014.01457666702 ns/iter 1.00
E2E_Evaluator_jshintrc 1004817.4595378357 ns/iter 1009805.1206896266 ns/iter 1.00
E2E_Evaluator_jsconfig 470799.6422817912 ns/iter 471934.7696439878 ns/iter 1.00
E2E_Evaluator_krakend 231838.29879270433 ns/iter 227520.5981278569 ns/iter 1.02
E2E_Evaluator_lazygit 168390.50204178577 ns/iter 161421.57575756445 ns/iter 1.04
E2E_Evaluator_lerna 149254.46980727647 ns/iter 151907.28312738054 ns/iter 0.98
E2E_Evaluator_nest_cli 228027.382040553 ns/iter 228068.4122807319 ns/iter 1.00
E2E_Evaluator_omc 26573.50351037919 ns/iter 25815.79821860696 ns/iter 1.03
E2E_Evaluator_omnisharp 558207.400479632 ns/iter 553760.3250995816 ns/iter 1.01
E2E_Evaluator_openapi 13941568.568627331 ns/iter 14884494.957447927 ns/iter 0.94
E2E_Evaluator_pre_commit_hooks 533216.969604852 ns/iter 534203.9248465813 ns/iter 1.00
E2E_Evaluator_pulumi 841050.9576273195 ns/iter 834967.4826761873 ns/iter 1.01
E2E_Evaluator_semantic_release 137596.23463577888 ns/iter 135767.99903157537 ns/iter 1.01
E2E_Evaluator_stale 165765.13078755664 ns/iter 166852.32664756328 ns/iter 0.99
E2E_Evaluator_stylecop 339139.9250720481 ns/iter 339102.30356270046 ns/iter 1.00
E2E_Evaluator_tmuxinator 126797.52482272567 ns/iter 129639.7299283429 ns/iter 0.98
E2E_Evaluator_ui5 690257.1488763328 ns/iter 643132.6021998551 ns/iter 1.07
E2E_Evaluator_ui5_manifest 3165474.2957746577 ns/iter 3075782.355556132 ns/iter 1.03
E2E_Evaluator_unreal_engine_uproject 513100.0528602888 ns/iter 508199.53991291084 ns/iter 1.01
E2E_Evaluator_vercel 350817.5199203652 ns/iter 349170.2740554802 ns/iter 1.00
E2E_Evaluator_yamllint 12844.436737681528 ns/iter 12867.092307691833 ns/iter 1.00

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
Copy link
Member Author

jviotti commented Feb 6, 2026

augment review

@jviotti
Copy link
Member Author

jviotti commented Feb 6, 2026

@cubic-dev-ai review

@cubic-dev-ai
Copy link

cubic-dev-ai bot commented Feb 6, 2026

@cubic-dev-ai review

@jviotti I have started the AI code review. It will take a few minutes to complete.

Copy link

@augmentcode augmentcode bot left a comment

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.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

3 issues found across 20 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="test/configuration/configuration_fetch_frozen_test.cc">

<violation number="1" location="test/configuration/configuration_fetch_frozen_test.cc:481">
P2: Test does not handle all possible orderings of non-deterministic events. The `else` branch assumes `events[0]` is `simple.json`, but `untracked.json` could also be first, causing flaky test failures. Add an explicit check for `untracked.json` as the first event.</violation>
</file>

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

<violation number="1" location="src/configuration/lock.cc:166">
P2: Missing validation: `emplace()` should validate that `path` is absolute to maintain consistency with `from_json()` and the assertion in `to_json()`. A relative path would cause an assertion failure in debug builds or produce invalid lock file content in release builds.</violation>
</file>

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

<violation number="1" location="src/configuration/fetch.cc:265">
P2: Using `->` on `std::optional` without checking for a value is undefined behavior if the optional is empty. While the logic suggests the entry should exist when `entry_status` is `FileMissing`, consider using `.value()` (which throws on empty) or explicitly checking the optional first for safer code.</violation>
</file>

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the dependencies-config branch from d0ba809 to c2579ab Compare February 6, 2026 20:43
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the dependencies-config branch from 11e7965 to 9d1b5e6 Compare February 6, 2026 20:54
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