Skip to content

chore: prepare v1.50.0 release#305

Merged
erraggy merged 2 commits intomainfrom
chore/v1.50.0-release-prep
Feb 13, 2026
Merged

chore: prepare v1.50.0 release#305
erraggy merged 2 commits intomainfrom
chore/v1.50.0-release-prep

Conversation

@erraggy
Copy link
Copy Markdown
Owner

@erraggy erraggy commented Feb 13, 2026

Summary

  • Pre-release preparation for v1.50.0
  • Includes CI benchmark results

Checklist

  • All tests pass
  • Benchmarks recorded
  • Documentation reviewed

🤖 Generated by prepare-release.sh

Summary by CodeRabbit

Release Notes

  • New Features

    • Added three new CLI examples demonstrating how to query OpenAPI spec structure using walk commands.
    • Introduced new collectors for parameters, responses, and security schemes with comprehensive lookup capabilities.
  • Documentation

    • Expanded CLI reference with complete walk command documentation and examples.
    • Updated walker documentation with detailed collector information and usage patterns.
    • Added example tests demonstrating the new collectors in action.

erraggy and others added 2 commits February 12, 2026 21:47
- Fix walk_responses.go: reorder NArg/ValidateOutputFormat for consistency
- Fix walk_schemas.go: add "walk schemas:" error prefix for consistency
- Add godoc examples for CollectParameters, CollectResponses, CollectSecuritySchemes
- Update walker/doc.go Built-in Collectors to list all 5 collectors
- Update walker/deep_dive.md with ParameterCollector, ResponseCollector, SecuritySchemeCollector docs
- Add walk command to README.md CLI Quick Start
- Add walk command section to docs/cli-reference.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Generated by CI benchmark workflow on chore/v1.50.0-release-prep

🤖 Generated automatically
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 13, 2026

📝 Walkthrough

Walkthrough

This pull request introduces three new collector types (CollectParameters, CollectResponses, CollectSecuritySchemes) to the walker package with comprehensive documentation and example tests. It also updates CLI documentation, adds benchmark results, and refines error handling in walk command implementations.

Changes

Cohort / File(s) Summary
CLI Command Updates
cmd/oastools/commands/walk_responses.go, cmd/oastools/commands/walk_schemas.go
Minor adjustments to validation order and error message formatting. walk_responses.go reorders spec file argument validation, while walk_schemas.go adds "walk schemas: " prefix to error messages for consistency.
Walker Package Documentation & Examples
walker/deep_dive.md, walker/doc.go, walker/example_test.go
Introduces documentation and examples for three new collector types. Expands deep_dive.md with detailed sections on CollectParameters, CollectResponses, and CollectSecuritySchemes with their respective data structures and usage patterns. Adds example test functions demonstrating parameter, response, and security scheme collection.
Project Documentation
README.md, docs/cli-reference.md
Adds CLI quick-start examples for walk command (operations, schemas, responses) and comprehensive walk command reference documentation including subcommands, flags, and extension filter DSL details.
Benchmarks
benchmarks/benchmark-v1.50.0.txt
New benchmark results log containing environment metadata, CPU information, and performance metrics across multiple packages including parser, validator, fixer, and walker.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: prepare v1.50.0 release' accurately describes the PR's primary purpose of preparing a release, covering version documentation updates, benchmark results, and pre-release fixes.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/v1.50.0-release-prep

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.61%. Comparing base (f05a002) to head (283db50).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #305   +/-   ##
=======================================
  Coverage   84.61%   84.61%           
=======================================
  Files         166      166           
  Lines       25184    25184           
=======================================
  Hits        21310    21310           
  Misses       2623     2623           
  Partials     1251     1251           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
cmd/oastools/commands/walk_schemas.go (1)

44-48: ⚠️ Potential issue | 🟡 Minor

Inconsistent error message prefix at Line 48.

All other error messages in this function now use the "walk schemas: ..." prefix pattern (lines 44, 55, 60, 76, 104), but line 48 still uses the old "walk schemas requires a spec file argument" format. Compare with walk_responses.go line 43 which uses "walk responses: missing spec file argument".

Proposed fix for consistency
 	if fs.NArg() == 0 {
-		return fmt.Errorf("walk schemas requires a spec file argument")
+		return fmt.Errorf("walk schemas: missing spec file argument")
 	}
🤖 Fix all issues with AI agents
In `@benchmarks/benchmark-v1.50.0.txt`:
- Around line 10-372: The benchmark artifact shows inconsistent CPU info: most
packages list "AMD EPYC 7763 64-Core Processor" while the walker package lists
"Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz" (see package blocks for
github.com/erraggy/oastools/walker and benchmark names like
BenchmarkWalk_WithPooling); update the release materials to either document this
hardware discrepancy next to the walker benchmarks, re-run the walker benchmarks
on the same AMD EPYC hardware (or re-run all benchmarks on the Intel Xeon) to
make results comparable, or split the walker benchmarks into a separate artifact
clearly labeled with the Intel Xeon CPU information so consumers can interpret
the numbers correctly.

Comment on lines +10 to +372
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/parser
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkParseResultEquals/Identical/SmallOAS3-4 2676919 2245 ns/op 0 B/op 0 allocs/op
BenchmarkParseResultEquals/Identical/MediumOAS3-4 148935 40378 ns/op 6696 B/op 9 allocs/op
BenchmarkParseResultEquals/Identical/LargeOAS3-4 12596 475801 ns/op 54152 B/op 15 allocs/op
BenchmarkParseResultEquals/Identical/SmallOAS2-4 3128556 1925 ns/op 0 B/op 0 allocs/op
BenchmarkParseResultEquals/Identical/MediumOAS2-4 170410 34904 ns/op 6696 B/op 9 allocs/op
BenchmarkEquals_EarlyExit/DifferentVersion-4 1000000000 5.613 ns/op 0 B/op 0 allocs/op
BenchmarkEquals_EarlyExit/DifferentOASVersion-4 1000000000 5.000 ns/op 0 B/op 0 allocs/op
BenchmarkEquals_EarlyExit/DifferentInfo-4 341038981 17.50 ns/op 0 B/op 0 allocs/op
BenchmarkEquals_EarlyExit/DifferentLastPath-4 263797 22936 ns/op 6696 B/op 9 allocs/op
BenchmarkSchemaEquals/Simple-4 32767724 184.5 ns/op 0 B/op 0 allocs/op
BenchmarkSchemaEquals/WithProperties-4 4614949 1303 ns/op 0 B/op 0 allocs/op
BenchmarkSchemaEquals/Complex-4 2560021 2343 ns/op 456 B/op 3 allocs/op
BenchmarkSchemaEquals/Nested-4 5212228 1153 ns/op 0 B/op 0 allocs/op
BenchmarkDocumentEquals/OAS3/Small-4 2676679 2242 ns/op 0 B/op 0 allocs/op
BenchmarkDocumentEquals/OAS3/Medium-4 147634 40050 ns/op 6696 B/op 9 allocs/op
BenchmarkDocumentEquals/OAS3/Large-4 12464 481081 ns/op 54152 B/op 15 allocs/op
BenchmarkDocumentEquals/OAS2/Small-4 3127254 1915 ns/op 0 B/op 0 allocs/op
BenchmarkDocumentEquals/OAS2/Medium-4 171332 34900 ns/op 6696 B/op 9 allocs/op
BenchmarkMarshalInfo/NoExtra-4 5820277 1023 ns/op 192 B/op 2 allocs/op
BenchmarkMarshalInfo/Extra1-4 2789731 2149 ns/op 896 B/op 16 allocs/op
BenchmarkMarshalInfo/Extra5-4 1604670 3746 ns/op 1376 B/op 24 allocs/op
BenchmarkMarshalInfo/Extra10-4 859994 6991 ns/op 2697 B/op 37 allocs/op
BenchmarkMarshalInfo/Extra20-4 458896 13192 ns/op 5228 B/op 59 allocs/op
BenchmarkMarshalContact/NoExtra-4 5822677 1037 ns/op 192 B/op 2 allocs/op
BenchmarkMarshalContact/WithExtra-4 1519536 3932 ns/op 1376 B/op 24 allocs/op
BenchmarkMarshalServer/NoExtra-4 6884050 870.8 ns/op 160 B/op 2 allocs/op
BenchmarkMarshalServer/WithExtra-4 1000000 5442 ns/op 2297 B/op 30 allocs/op
BenchmarkMarshalOAS3Document/Small-4 137691 43360 ns/op 7010 B/op 66 allocs/op
BenchmarkMarshalOAS3Document/Medium-4 12456 482319 ns/op 66060 B/op 471 allocs/op
BenchmarkMarshalOAS3Document/Large-4 1040 5787574 ns/op 846899 B/op 5336 allocs/op
BenchmarkMarshalOAS2Document/Small-4 155686 38096 ns/op 6376 B/op 58 allocs/op
BenchmarkMarshalOAS2Document/Medium-4 15267 392815 ns/op 53807 B/op 396 allocs/op
BenchmarkUnmarshalInfo/NoExtra-4 3130339 1924 ns/op 512 B/op 10 allocs/op
BenchmarkUnmarshalInfo/WithExtra-4 802410 7319 ns/op 1736 B/op 46 allocs/op
BenchmarkJSONFastPath/FastPath-4 7483 783357 ns/op 362639 B/op 4847 allocs/op
BenchmarkJSONFastPath/YAMLPath_SourceMap-4 1228 4913785 ns/op 5854224 B/op 19887 allocs/op
BenchmarkJSONFastPath/YAMLPath_PreserveOrder-4 1245 4759093 ns/op 5605780 B/op 19206 allocs/op
BenchmarkMarshalOrderedJSON/SmallOAS3-4 273223 22040 ns/op 4818 B/op 204 allocs/op
BenchmarkMarshalOrderedJSON/MediumOAS3-4 26208 227254 ns/op 49411 B/op 1918 allocs/op
BenchmarkMarshalOrderedJSON/LargeOAS3-4 2312 2547596 ns/op 564446 B/op 21156 allocs/op
BenchmarkMarshalOrderedYAML/SmallOAS3-4 53358 112331 ns/op 191477 B/op 437 allocs/op
BenchmarkMarshalOrderedYAML/MediumOAS3-4 4387 1318810 ns/op 1830181 B/op 3890 allocs/op
BenchmarkMarshalOrderedYAML/LargeOAS3-4 384 15859204 ns/op 22628863 B/op 42587 allocs/op
BenchmarkMarshalOrderedJSONIndent-4 18668 322544 ns/op 69928 B/op 1919 allocs/op
BenchmarkMarshalOrderedJSON_vs_Standard/OrderPreserving-4 25671 234617 ns/op 49415 B/op 1918 allocs/op
BenchmarkMarshalOrderedJSON_vs_Standard/Standard-4 12147 493602 ns/op 66160 B/op 471 allocs/op
BenchmarkPreserveOrderOverhead/WithPreserveOrder-4 1490 4019738 ns/op 1907846 B/op 22376 allocs/op
BenchmarkPreserveOrderOverhead/WithoutPreserveOrder-4 1950 3087969 ns/op 1608710 B/op 17649 allocs/op
BenchmarkParse/SmallOAS3-4 16261 367739 ns/op 208892 B/op 2100 allocs/op
BenchmarkParse/MediumOAS3-4 1954 3082213 ns/op 1622339 B/op 17648 allocs/op
BenchmarkParse/LargeOAS3-4 163 36731263 ns/op 18305346 B/op 196755 allocs/op
BenchmarkParse/SmallOAS2-4 16897 353926 ns/op 185104 B/op 2082 allocs/op
BenchmarkParse/MediumOAS2-4 2270 2685911 ns/op 1387003 B/op 16227 allocs/op
BenchmarkParseNoValidation/SmallOAS3-4 16387 367860 ns/op 208059 B/op 2077 allocs/op
BenchmarkParseNoValidation/MediumOAS3-4 1905 3212462 ns/op 1617783 B/op 17555 allocs/op
BenchmarkParseBytes/SmallOAS3-4 16305 363142 ns/op 207137 B/op 2095 allocs/op
BenchmarkParseBytes/MediumOAS3-4 1930 3200260 ns/op 1608501 B/op 17644 allocs/op
BenchmarkParseCore/SmallOAS3-4 16760 356136 ns/op 207140 B/op 2095 allocs/op
BenchmarkParseCore/MediumOAS3-4 1888 3155760 ns/op 1608601 B/op 17644 allocs/op
BenchmarkParseCore/LargeOAS3-4 158 37687120 ns/op 18141135 B/op 196750 allocs/op
BenchmarkParseCore/SmallOAS2-4 17646 339757 ns/op 183474 B/op 2077 allocs/op
BenchmarkParseCore/MediumOAS2-4 2258 2679170 ns/op 1374371 B/op 16223 allocs/op
BenchmarkParseWithOptions/FilePath/SmallOAS3-4 15945 380768 ns/op 209209 B/op 2107 allocs/op
BenchmarkParseWithOptions/Bytes/SmallOAS3-4 16464 367633 ns/op 207442 B/op 2101 allocs/op
BenchmarkParseWithOptions/ResolveRefs/SmallOAS3-4 10000 557552 ns/op 375984 B/op 2484 allocs/op
BenchmarkParseReader/MediumOAS3-4 1723 3449969 ns/op 1671244 B/op 17657 allocs/op
BenchmarkParseResultCopy/SmallOAS3-4 438621 13354 ns/op 18664 B/op 113 allocs/op
BenchmarkParseResolveRefs/MediumOAS3-4 457 13317363 ns/op 7212284 B/op 42461 allocs/op
BenchmarkFormatBytes-4 7045822 847.8 ns/op 64 B/op 8 allocs/op
BenchmarkDeepCopy/SmallOAS3-4 1329478 4506 ns/op 7936 B/op 44 allocs/op
BenchmarkDeepCopy/MediumOAS3-4 89535 66959 ns/op 121602 B/op 466 allocs/op
BenchmarkDeepCopy/LargeOAS3-4 5619 1046499 ns/op 1313695 B/op 4878 allocs/op
BenchmarkDeepCopy/SmallOAS2-4 1598529 3771 ns/op 6768 B/op 38 allocs/op
BenchmarkDeepCopy/MediumOAS2-4 107188 55728 ns/op 106258 B/op 387 allocs/op
BenchmarkSourceMapOverhead/Small/Default-4 15120 394820 ns/op 209211 B/op 2107 allocs/op
BenchmarkSourceMapOverhead/Small/SourceMapDisabled-4 15159 395354 ns/op 209226 B/op 2108 allocs/op
BenchmarkSourceMapOverhead/Small/SourceMapEnabled-4 10000 532842 ns/op 278717 B/op 2742 allocs/op
BenchmarkSourceMapOverhead/Medium/Default-4 1800 3328000 ns/op 1622803 B/op 17657 allocs/op
BenchmarkSourceMapOverhead/Medium/SourceMapDisabled-4 1796 3408227 ns/op 1622832 B/op 17658 allocs/op
BenchmarkSourceMapOverhead/Medium/SourceMapEnabled-4 1322 4563781 ns/op 2191208 B/op 23131 allocs/op
BenchmarkSourceMapOverhead/Large/Default-4 150 39936377 ns/op 18305642 B/op 196762 allocs/op
BenchmarkSourceMapOverhead/Large/SourceMapDisabled-4 150 40001336 ns/op 18305661 B/op 196763 allocs/op
BenchmarkSourceMapOverhead/Large/SourceMapEnabled-4 100 53514669 ns/op 24061307 B/op 257458 allocs/op
BenchmarkParseURL_CustomClient-4 5859 1055582 ns/op 436501 B/op 4700 allocs/op
BenchmarkParseURL_DefaultClient-4 5601 1063379 ns/op 436573 B/op 4700 allocs/op
BenchmarkMarshalBufferPool-4 286246280 20.93 ns/op 0 B/op 0 allocs/op
BenchmarkMarshalBufferNoPool-4 4432258 1394 ns/op 4144 B/op 2 allocs/op
BenchmarkMarshalBufferPool_LargePayload-4 4294100 1397 ns/op 0 B/op 0 allocs/op
BenchmarkParameterSlice_WithPool-4 21021024 277.0 ns/op 704 B/op 2 allocs/op
BenchmarkParameterSlice_WithoutPool-4 23465559 255.8 ns/op 704 B/op 2 allocs/op
BenchmarkServerSlice_WithPool-4 67230010 85.11 ns/op 96 B/op 2 allocs/op
BenchmarkServerSlice_WithoutPool-4 88958514 69.26 ns/op 96 B/op 2 allocs/op
BenchmarkStringSlice_WithPool-4 337619882 17.78 ns/op 0 B/op 0 allocs/op
BenchmarkStringSlice_WithoutPool-4 1000000000 5.000 ns/op 0 B/op 0 allocs/op
BenchmarkDeepCopyWork_WithPool-4 132810178 45.21 ns/op 0 B/op 0 allocs/op
BenchmarkDeepCopyWork_WithoutPool-4 158961255 37.73 ns/op 0 B/op 0 allocs/op
BenchmarkMarshalToJSON-4 5640981 1045 ns/op 368 B/op 11 allocs/op
PASS
ok github.com/erraggy/oastools/parser 577.731s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/validator
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkValidate/SmallOAS3-4 16335 366026 ns/op 216352 B/op 2195 allocs/op
BenchmarkValidate/MediumOAS3-4 2035 2987101 ns/op 1676417 B/op 18649 allocs/op
BenchmarkValidate/LargeOAS3-4 153 38766311 ns/op 18812337 B/op 207715 allocs/op
BenchmarkValidate/SmallOAS2-4 16858 355052 ns/op 192012 B/op 2161 allocs/op
BenchmarkValidate/MediumOAS2-4 2266 2666093 ns/op 1432971 B/op 17134 allocs/op
BenchmarkValidateNoWarnings/SmallOAS3-4 16359 369636 ns/op 216694 B/op 2196 allocs/op
BenchmarkValidateNoWarnings/MediumOAS3-4 1956 3068250 ns/op 1681428 B/op 18650 allocs/op
BenchmarkValidateNoWarnings/LargeOAS3-4 151 39472506 ns/op 18812618 B/op 207714 allocs/op
BenchmarkValidateParsed/SmallOAS3-4 465638 12767 ns/op 6173 B/op 92 allocs/op
BenchmarkValidateParsed/MediumOAS3-4 50018 119032 ns/op 43231 B/op 996 allocs/op
BenchmarkValidateParsed/LargeOAS3-4 4070 1426571 ns/op 471902 B/op 10948 allocs/op
BenchmarkValidateStrictMode/SmallOAS3-4 16063 372959 ns/op 217156 B/op 2196 allocs/op
BenchmarkValidateStrictMode/MediumOAS3-4 1992 3045808 ns/op 1681611 B/op 18651 allocs/op
BenchmarkValidateStrictMode/LargeOAS3-4 154 38826591 ns/op 18813515 B/op 207715 allocs/op
BenchmarkValidateWithOptions/FilePath/SmallOAS3-4 15937 376223 ns/op 217352 B/op 2200 allocs/op
BenchmarkValidateWithOptions/Parsed/SmallOAS3-4 462200 12635 ns/op 6426 B/op 95 allocs/op
PASS
ok github.com/erraggy/oastools/validator 95.699s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/fixer
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkFixDocuments/SmallOAS3-4 16870 359247 ns/op 211107 B/op 2115 allocs/op
BenchmarkFixDocuments/MediumOAS3-4 2053 2987516 ns/op 1648327 B/op 17767 allocs/op
BenchmarkFixDocuments/LargeOAS3-4 163 36721710 ns/op 18400563 B/op 197328 allocs/op
BenchmarkFixDocuments/SmallOAS2-4 17161 351938 ns/op 187311 B/op 2097 allocs/op
BenchmarkFixDocuments/MediumOAS2-4 2216 2680713 ns/op 1405160 B/op 16340 allocs/op
BenchmarkFixWithInferTypes/SmallOAS3-4 16521 363693 ns/op 211046 B/op 2115 allocs/op
BenchmarkFixWithInferTypes/MediumOAS3-4 1999 2998996 ns/op 1644140 B/op 17769 allocs/op
BenchmarkFixWithInferTypes/LargeOAS3-4 162 36734021 ns/op 18400306 B/op 197328 allocs/op
BenchmarkFixParsed/SmallOAS3-4 918354 6393 ns/op 9129 B/op 56 allocs/op
BenchmarkFixParsed/MediumOAS3-4 77112 77610 ns/op 136138 B/op 580 allocs/op
BenchmarkFixParsed/LargeOAS3-4 6260 950743 ns/op 1378745 B/op 5442 allocs/op
BenchmarkFixWithOptions/FilePath/SmallOAS3-4 16798 358174 ns/op 211615 B/op 2121 allocs/op
BenchmarkFixWithOptions/Parsed/SmallOAS3-4 890161 6738 ns/op 9759 B/op 61 allocs/op
BenchmarkFix-4 536484 11146 ns/op 14990 B/op 108 allocs/op
PASS
ok github.com/erraggy/oastools/fixer 84.016s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/httpvalidator
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkValidateRequest/SmallOAS3-4 11632644 496.7 ns/op 528 B/op 8 allocs/op
BenchmarkValidateRequest/MediumOAS3-4 8587710 618.7 ns/op 528 B/op 8 allocs/op
BenchmarkValidateRequest/LargeOAS3-4 5254360 1140 ns/op 528 B/op 8 allocs/op
BenchmarkValidateRequestWithParams-4 11683833 516.0 ns/op 528 B/op 8 allocs/op
BenchmarkValidateRequestWithBody-4 5326581 1129 ns/op 1520 B/op 16 allocs/op
BenchmarkValidateResponse-4 24431198 245.8 ns/op 256 B/op 2 allocs/op
BenchmarkValidateStrictMode-4 12220186 488.9 ns/op 528 B/op 8 allocs/op
BenchmarkValidateRequestWithOptions/FilePath/SmallOAS3-4 16294 372664 ns/op 218443 B/op 2236 allocs/op
BenchmarkValidateRequestWithOptions/Parsed/SmallOAS3-4 653374 8785 ns/op 9268 B/op 130 allocs/op
BenchmarkPathMatching/SmallOAS3-4 12069435 498.2 ns/op 528 B/op 8 allocs/op
BenchmarkPathMatching/MediumOAS3-4 9274020 648.6 ns/op 528 B/op 8 allocs/op
BenchmarkPathMatching/LargeOAS3-4 2582797 2316 ns/op 528 B/op 8 allocs/op
BenchmarkParameterDeserialization-4 11975976 496.3 ns/op 528 B/op 8 allocs/op
BenchmarkSchemaValidation-4 5249088 1152 ns/op 1520 B/op 16 allocs/op
PASS
ok github.com/erraggy/oastools/httpvalidator 83.034s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/converter
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkConvertOAS2ToOAS3/Small-4 17427 343186 ns/op 196340 B/op 2171 allocs/op
BenchmarkConvertOAS2ToOAS3/Medium-4 2324 2641922 ns/op 1522433 B/op 16932 allocs/op
BenchmarkConvertOAS3ToOAS2/Small-4 16245 368846 ns/op 222285 B/op 2255 allocs/op
BenchmarkConvertOAS3ToOAS2/Medium-4 1914 3159881 ns/op 1814504 B/op 19849 allocs/op
BenchmarkConvertParsedOAS2ToOAS3/Small-4 749757 8003 ns/op 11138 B/op 86 allocs/op
BenchmarkConvertParsedOAS2ToOAS3/Medium-4 63570 94295 ns/op 135431 B/op 702 allocs/op
BenchmarkConvertParsedOAS3ToOAS2/Small-4 437866 13522 ns/op 11864 B/op 151 allocs/op
BenchmarkConvertParsedOAS3ToOAS2/Medium-4 28632 209840 ns/op 182087 B/op 2196 allocs/op
BenchmarkConvertNoInfo/Small-4 17307 345944 ns/op 196339 B/op 2171 allocs/op
BenchmarkConvertNoInfo/Medium-4 2292 2618578 ns/op 1522405 B/op 16932 allocs/op
BenchmarkConvertWithOptions/FilePath/Small-4 17373 345380 ns/op 196493 B/op 2175 allocs/op
BenchmarkConvertWithOptions/Parsed/Small-4 741537 8268 ns/op 11466 B/op 90 allocs/op
BenchmarkConvertOAS30ToOAS31/Small-4 16804 356759 ns/op 217886 B/op 2175 allocs/op
PASS
ok github.com/erraggy/oastools/converter 78.234s
2026/02/13 05:48:12 joiner: template execution error for schema "User": template "{{.InvalidField}}": template: rename:1:2: executing "rename" at <.InvalidField>: can't evaluate field InvalidField in type joiner.RenameContext
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/joiner
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkCompareSchemas/SimpleSchemas-4 22314805 272.9 ns/op 128 B/op 1 allocs/op
BenchmarkCompareSchemas/ObjectWithProperties-4 4620028 1297 ns/op 192 B/op 3 allocs/op
BenchmarkCompareSchemas/NestedSchemas-4 2649883 2261 ns/op 128 B/op 1 allocs/op
BenchmarkCompareSchemas/AllOfComposition-4 2637136 2275 ns/op 137 B/op 4 allocs/op
BenchmarkCompareSchemas/DeeplyNested-4 2687959 2231 ns/op 384 B/op 2 allocs/op
BenchmarkCompareSchemas/ShallowMode-4 25995847 230.7 ns/op 128 B/op 1 allocs/op
BenchmarkComparePath/StringConcat-4 52556830 111.6 ns/op 72 B/op 3 allocs/op
BenchmarkComparePath/ComparePathSlice-4 48441937 122.3 ns/op 160 B/op 2 allocs/op
BenchmarkComparePath/ComparePathSliceDeep-4 44818915 133.5 ns/op 160 B/op 2 allocs/op
BenchmarkCompareSchemasDifferences/SingleDifference-4 18470268 322.8 ns/op 224 B/op 2 allocs/op
BenchmarkCompareSchemasDifferences/MultipleDifferences-4 12869912 466.7 ns/op 448 B/op 5 allocs/op
BenchmarkCompareSchemasDifferences/NestedDifference-4 4949047 1212 ns/op 272 B/op 3 allocs/op
BenchmarkJoin/TwoDocs-4 23978 249951 ns/op 147939 B/op 1519 allocs/op
BenchmarkJoin/ThreeDocs-4 16233 369883 ns/op 219464 B/op 2237 allocs/op
BenchmarkJoin/FiveDocs-4 9526 627107 ns/op 369325 B/op 3821 allocs/op
BenchmarkJoinParsed/TwoDocs-4 3447171 1742 ns/op 1992 B/op 22 allocs/op
BenchmarkJoinParsed/ThreeDocs-4 2811454 2137 ns/op 2184 B/op 23 allocs/op
BenchmarkJoinParsed/FiveDocs-4 784554 7604 ns/op 6025 B/op 110 allocs/op
BenchmarkJoinStrategy/AcceptLeft-4 23930 250613 ns/op 147939 B/op 1519 allocs/op
BenchmarkJoinStrategy/AcceptRight-4 23923 250716 ns/op 147940 B/op 1519 allocs/op
BenchmarkJoinOptions/MergeArrays-4 23834 251342 ns/op 147938 B/op 1519 allocs/op
BenchmarkJoinOptions/DeduplicateTags-4 23835 251533 ns/op 147938 B/op 1519 allocs/op
BenchmarkJoinWithOptions/FilePaths-4 23745 252535 ns/op 148531 B/op 1526 allocs/op
BenchmarkJoinWithOptions/Parsed-4 2576371 2328 ns/op 3288 B/op 29 allocs/op
BenchmarkJoinWriteResult-4 26988 220961 ns/op 90499 B/op 416 allocs/op
BenchmarkJoinHelpers/DefaultConfig-4 143265277 41.92 ns/op 48 B/op 1 allocs/op
BenchmarkJoinHelpers/IsValidStrategy-4 517871852 11.70 ns/op 0 B/op 0 allocs/op
BenchmarkJoinHelpers/ValidStrategies-4 138194398 43.36 ns/op 112 B/op 1 allocs/op
PASS
ok github.com/erraggy/oastools/joiner 167.858s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/differ
cpu: AMD EPYC 9V74 80-Core Processor
BenchmarkDiff/FilePath-4 5388 1106489 ns/op 666112 B/op 7375 allocs/op
BenchmarkDiff/Parsed-4 199622 30365 ns/op 21723 B/op 369 allocs/op
BenchmarkDiffMode/Simple-4 198921 30166 ns/op 21723 B/op 369 allocs/op
BenchmarkDiffMode/Breaking-4 199461 30141 ns/op 21723 B/op 369 allocs/op
BenchmarkDiffIncludeInfo/WithInfo-4 197200 30058 ns/op 21723 B/op 369 allocs/op
BenchmarkDiffIncludeInfo/WithoutInfo-4 196287 30842 ns/op 23516 B/op 370 allocs/op
BenchmarkDiffIdentical-4 244306 24758 ns/op 16706 B/op 325 allocs/op
BenchmarkDiffWithOptions/FilePath-4 5397 1096048 ns/op 666385 B/op 7383 allocs/op
BenchmarkChangeString-4 7503099 801.6 ns/op 400 B/op 15 allocs/op
PASS
ok github.com/erraggy/oastools/differ 54.044s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/generator
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkGenerate/Types-4 1992 3004817 ns/op 85063 B/op 1436 allocs/op
BenchmarkGenerate/Client-4 812 7344060 ns/op 444334 B/op 8907 allocs/op
BenchmarkGenerate/Server-4 1012 5877133 ns/op 181477 B/op 2762 allocs/op
BenchmarkGenerate/All-4 604 10027104 ns/op 495572 B/op 8793 allocs/op
BenchmarkTemplateBuffer_WithPool-4 274685570 21.88 ns/op 0 B/op 0 allocs/op
BenchmarkTemplateBuffer_WithoutPool-4 645428 11451 ns/op 32816 B/op 2 allocs/op
PASS
ok github.com/erraggy/oastools/generator 39.459s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/builder
cpu: AMD EPYC 7763 64-Core Processor
BenchmarkBuilderNew-4 8799820 679.8 ns/op 1152 B/op 18 allocs/op
BenchmarkBuilderSetInfo-4 8328523 734.7 ns/op 1264 B/op 19 allocs/op
BenchmarkSchemaFrom/Primitive-4 6799950 887.7 ns/op 2048 B/op 19 allocs/op
BenchmarkSchemaFrom/Struct-4 643069 9464 ns/op 17400 B/op 92 allocs/op
BenchmarkSchemaFrom/NestedStruct-4 437724 13902 ns/op 26600 B/op 110 allocs/op
BenchmarkSchemaFrom/Slice-4 614226 9750 ns/op 18296 B/op 93 allocs/op
BenchmarkSchemaFrom/Map-4 618534 9759 ns/op 18296 B/op 93 allocs/op
BenchmarkBuilderAddOperation/Simple-4 498556 11763 ns/op 21205 B/op 117 allocs/op
BenchmarkBuilderAddOperation/WithParams-4 366259 16326 ns/op 29831 B/op 159 allocs/op
BenchmarkBuilderAddOperation/WithRequestBody-4 302904 19917 ns/op 35944 B/op 170 allocs/op
BenchmarkBuilderBuild-4 272344 21991 ns/op 38449 B/op 232 allocs/op
BenchmarkBuilderMarshal/YAML-4 69973 84888 ns/op 94574 B/op 500 allocs/op
BenchmarkBuilderMarshal/JSON-4 141735 42963 ns/op 8499 B/op 38 allocs/op
BenchmarkOASTag/Apply-4 9002251 664.3 ns/op 1280 B/op 7 allocs/op
BenchmarkOASTag/Parse-4 15080199 397.7 ns/op 368 B/op 4 allocs/op
BenchmarkBuilderFormParams/OAS2-4 1000000 5857 ns/op 12163 B/op 81 allocs/op
BenchmarkBuilderFormParams/OAS3-4 896785 6805 ns/op 15324 B/op 87 allocs/op
BenchmarkSchemaNaming/default-4 1000000 5709 ns/op 10698 B/op 63 allocs/op
BenchmarkSchemaNaming/pascal-4 992674 5869 ns/op 10722 B/op 66 allocs/op
BenchmarkSchemaNaming/camel-4 1000000 6035 ns/op 10738 B/op 67 allocs/op
BenchmarkSchemaNaming/snake-4 1000000 5907 ns/op 10730 B/op 66 allocs/op
BenchmarkSchemaNaming/kebab-4 1000000 6013 ns/op 10746 B/op 67 allocs/op
BenchmarkSchemaNaming/type_only-4 1000000 5620 ns/op 10658 B/op 62 allocs/op
BenchmarkSchemaNaming/full_path-4 1000000 5687 ns/op 10754 B/op 63 allocs/op
BenchmarkGenericNaming/underscore-4 712916 8214 ns/op 13195 B/op 81 allocs/op
BenchmarkGenericNaming/of-4 718173 8268 ns/op 13195 B/op 81 allocs/op
BenchmarkGenericNaming/for-4 728221 8209 ns/op 13219 B/op 81 allocs/op
BenchmarkGenericNaming/flat-4 744210 8154 ns/op 13179 B/op 80 allocs/op
BenchmarkGenericNaming/angle_brackets-4 729524 8182 ns/op 13195 B/op 81 allocs/op
BenchmarkSchemaNameTemplate/simple-4 353331 16692 ns/op 20093 B/op 136 allocs/op
BenchmarkSchemaNameTemplate/pascal-4 254953 23613 ns/op 21190 B/op 179 allocs/op
BenchmarkSchemaNameTemplate/complex-4 228262 26196 ns/op 21822 B/op 195 allocs/op
BenchmarkSchemaNameTemplate/generic_aware-4 265960 22735 ns/op 21245 B/op 173 allocs/op
BenchmarkCaseConversions/toPascalCase-4 31841292 187.0 ns/op 56 B/op 3 allocs/op
BenchmarkCaseConversions/toCamelCase-4 17100352 348.0 ns/op 80 B/op 4 allocs/op
BenchmarkCaseConversions/toSnakeCase-4 29486035 201.9 ns/op 56 B/op 3 allocs/op
BenchmarkCaseConversions/toKebabCase-4 21046974 282.8 ns/op 80 B/op 4 allocs/op
BenchmarkCaseConversions_Separators/toPascalCase-4 27259572 219.5 ns/op 56 B/op 3 allocs/op
BenchmarkCaseConversions_Separators/toCamelCase-4 14679606 409.9 ns/op 88 B/op 4 allocs/op
BenchmarkCaseConversions_Separators/toSnakeCase-4 27746836 214.9 ns/op 56 B/op 3 allocs/op
BenchmarkCaseConversions_Separators/toKebabCase-4 18989769 316.2 ns/op 88 B/op 4 allocs/op
BenchmarkExtractGenericParams/simple-4 61514334 95.26 ns/op 24 B/op 2 allocs/op
BenchmarkExtractGenericParams/multi-4 31000824 193.4 ns/op 64 B/op 4 allocs/op
BenchmarkExtractGenericParams/nested-4 36779875 162.1 ns/op 40 B/op 3 allocs/op
BenchmarkExtractGenericParams/triple-4 26264348 228.9 ns/op 136 B/op 6 allocs/op
BenchmarkExtractGenericParams/deeply_nested-4 23268848 258.7 ns/op 72 B/op 4 allocs/op
BenchmarkExtractGenericParams/none-4 461243526 13.02 ns/op 0 B/op 0 allocs/op
BenchmarkExtractBaseTypeName/generic-4 1000000000 5.930 ns/op 0 B/op 0 allocs/op
BenchmarkExtractBaseTypeName/non_generic-4 915059918 6.551 ns/op 0 B/op 0 allocs/op
BenchmarkExtractBaseTypeName/nested-4 916037734 6.553 ns/op 0 B/op 0 allocs/op
BenchmarkSanitizeSchemaName/clean-4 99599983 60.27 ns/op 0 B/op 0 allocs/op
BenchmarkSanitizeSchemaName/brackets-4 40460192 148.6 ns/op 32 B/op 2 allocs/op
BenchmarkSanitizeSchemaName/complex-4 21645194 276.4 ns/op 96 B/op 4 allocs/op
BenchmarkSanitizeSchemaName/spaces-4 50382097 117.1 ns/op 16 B/op 1 allocs/op
BenchmarkSchemaNamer_Name/default_simple-4 27561075 216.2 ns/op 72 B/op 2 allocs/op
BenchmarkSchemaNamer_Name/default_generic-4 6329254 946.4 ns/op 272 B/op 10 allocs/op
BenchmarkSchemaNamer_Name/pascal_simple-4 15606124 382.2 ns/op 96 B/op 5 allocs/op
BenchmarkSchemaNamer_Name/pascal_generic-4 4852875 1235 ns/op 336 B/op 14 allocs/op
BenchmarkSchemaNamer_Name/snake_nested-4 14830155 403.5 ns/op 104 B/op 5 allocs/op
BenchmarkSchemaNamer_BuildContext/simple-4 40421427 145.7 ns/op 48 B/op 1 allocs/op
BenchmarkSchemaNamer_BuildContext/generic-4 6736214 891.0 ns/op 240 B/op 9 allocs/op
BenchmarkSchemaNamer_BuildContext/nested_generic-4 6524769 892.4 ns/op 240 B/op 9 allocs/op
BenchmarkGenericNamingConfig/default-4 706245 8364 ns/op 13243 B/op 81 allocs/op
BenchmarkGenericNamingConfig/of_strategy-4 727395 8343 ns/op 13243 B/op 81 allocs/op
BenchmarkGenericNamingConfig/include_package-4 704544 8531 ns/op 13443 B/op 82 allocs/op
BenchmarkGenericNamingConfig/apply_casing-4 727342 8305 ns/op 13243 B/op 81 allocs/op
BenchmarkGenericNamingConfig/custom_separators-4 729356 8300 ns/op 13267 B/op 81 allocs/op
BenchmarkBuilderWithNamingOptions/default-4 386962 15426 ns/op 26391 B/op 139 allocs/op
BenchmarkBuilderWithNamingOptions/with_pascal_naming-4 368696 16159 ns/op 26527 B/op 150 allocs/op
BenchmarkBuilderWithNamingOptions/with_template-4 180711 33611 ns/op 34945 B/op 252 allocs/op
BenchmarkBuilderWithNamingOptions/with_custom_func-4 370107 16062 ns/op 26526 B/op 150 allocs/op
BenchmarkBuilderWithNamingOptions/combined_pascal_of-4 370728 16073 ns/op 26543 B/op 151 allocs/op
BenchmarkSchemaNameFunc/simple_func_non_generic-4 35111400 170.6 ns/op 48 B/op 1 allocs/op
BenchmarkSchemaNameFunc/simple_func_generic-4 6667104 897.2 ns/op 240 B/op 9 allocs/op
BenchmarkSchemaNameFunc/complex_func_non_generic-4 19274282 310.6 ns/op 80 B/op 3 allocs/op
BenchmarkSchemaNameFunc/complex_func_generic-4 6429694 932.3 ns/op 264 B/op 10 allocs/op
BenchmarkFormatGenericSuffix/underscore-4 65751168 90.57 ns/op 32 B/op 2 allocs/op
BenchmarkFormatGenericSuffix/of-4 66172322 89.06 ns/op 32 B/op 2 allocs/op
BenchmarkFormatGenericSuffix/for-4 67226798 89.82 ns/op 32 B/op 2 allocs/op
BenchmarkFormatGenericSuffix/flat-4 149877048 40.04 ns/op 16 B/op 1 allocs/op
BenchmarkFormatGenericSuffix/angle-4 66218428 89.85 ns/op 32 B/op 2 allocs/op
BenchmarkSanitizeGenericParams/exclude_package-4 26017639 230.3 ns/op 48 B/op 1 allocs/op
BenchmarkSanitizeGenericParams/include_package-4 14893228 402.2 ns/op 96 B/op 4 allocs/op
BenchmarkSanitizeGenericParams/apply_casing-4 14700897 408.7 ns/op 72 B/op 4 allocs/op
BenchmarkTemplateParsing/simple-4 983875 5966 ns/op 6041 B/op 45 allocs/op
BenchmarkTemplateParsing/pascal-4 672274 8935 ns/op 6673 B/op 66 allocs/op
BenchmarkTemplateParsing/complex-4 554943 10862 ns/op 7233 B/op 81 allocs/op
BenchmarkTemplateParsing/full-4 599022 9923 ns/op 7249 B/op 77 allocs/op
BenchmarkSanitizePath/short-4 437737048 13.73 ns/op 0 B/op 0 allocs/op
BenchmarkSanitizePath/medium-4 85532083 69.75 ns/op 24 B/op 1 allocs/op
BenchmarkSanitizePath/long-4 53038454 111.6 ns/op 64 B/op 1 allocs/op
PASS
ok github.com/erraggy/oastools/builder 543.386s
goos: linux
goarch: amd64
pkg: github.com/erraggy/oastools/walker
cpu: Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz
BenchmarkWalk_WithPooling-4 3039277 1965 ns/op 856 B/op 16 allocs/op
BenchmarkWalk_WithMapRefTracking-4 4312093 1392 ns/op 784 B/op 11 allocs/op
BenchmarkWalk_WithParentTracking/without_parent_tracking-4 1920457 3124 ns/op 1272 B/op 21 allocs/op
BenchmarkWalk_WithParentTracking/with_parent_tracking-4 1671706 3588 ns/op 1904 B/op 33 allocs/op
BenchmarkWalk_WithPostHandler-4 73424 80996 ns/op 32278 B/op 708 allocs/op
BenchmarkWalk_WithRefTracking-4 2678750 2237 ns/op 928 B/op 14 allocs/op
BenchmarkWalk_WithoutRefTracking-4 2545462 2358 ns/op 880 B/op 13 allocs/op
BenchmarkWalkSmallDocument-4 4265974 1413 ns/op 720 B/op 12 allocs/op
BenchmarkWalkMediumDocument-4 79802 74973 ns/op 20340 B/op 457 allocs/op
BenchmarkWalkNoHandlers-4 7090351 845.0 ns/op 616 B/op 8 allocs/op
BenchmarkWalkAllHandlers-4 2652052 2260 ns/op 1016 B/op 27 allocs/op
BenchmarkWalkSchemaOnly-4 3351180 1789 ns/op 864 B/op 12 allocs/op
BenchmarkWalkWithStop-4 785720 7567 ns/op 2232 B/op 6 allocs/op
BenchmarkWalkOAS2-4 4169600 1439 ns/op 744 B/op 13 allocs/op
PASS
ok github.com/erraggy/oastools/walker 83.866s
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Note: Hardware inconsistency in benchmark results.

The benchmark results show different CPU architectures were used:

  • Most packages: AMD EPYC 7763 64-Core Processor
  • Walker package (lines 353-372): Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz

This inconsistency makes it difficult to directly compare the walker package's performance against other packages. For release documentation purposes, consider either:

  1. Noting this hardware difference in the release notes
  2. Re-running benchmarks on consistent hardware
  3. Separating walker benchmarks into a different artifact with hardware context
🤖 Prompt for AI Agents
In `@benchmarks/benchmark-v1.50.0.txt` around lines 10 - 372, The benchmark
artifact shows inconsistent CPU info: most packages list "AMD EPYC 7763 64-Core
Processor" while the walker package lists "Intel(R) Xeon(R) Platinum 8370C CPU @
2.80GHz" (see package blocks for github.com/erraggy/oastools/walker and
benchmark names like BenchmarkWalk_WithPooling); update the release materials to
either document this hardware discrepancy next to the walker benchmarks, re-run
the walker benchmarks on the same AMD EPYC hardware (or re-run all benchmarks on
the Intel Xeon) to make results comparable, or split the walker benchmarks into
a separate artifact clearly labeled with the Intel Xeon CPU information so
consumers can interpret the numbers correctly.

@erraggy erraggy merged commit d4cf516 into main Feb 13, 2026
10 checks passed
@erraggy erraggy deleted the chore/v1.50.0-release-prep branch February 13, 2026 06:02
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