Skip to content

Commit 28aabca

Browse files
authored
Merge pull request #32 from oproto/feature/tag-groups-and-better-example-generation
docs: update changelog and task completion for tag groups and example…
2 parents 351128a + fd54145 commit 28aabca

2 files changed

Lines changed: 45 additions & 2 deletions

File tree

.kiro/specs/tag-groups-extension/tasks.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,8 @@ This implementation plan covers adding `x-tagGroups` extension support and autom
176176
- Add brief mention of new features in Features section
177177
- _Requirements: 1.1, 6.1_
178178

179-
- [ ] 12. Update CHANGELOG.md
180-
- [ ] 12.1 Add new version entry for tag groups and example generation features
179+
- [x] 12. Update CHANGELOG.md
180+
- [x] 12.1 Add new version entry for tag groups and example generation features
181181
- Document OpenApiTagGroupAttribute and x-tagGroups extension support
182182
- Document OpenApiExampleConfigAttribute and automatic example generation
183183
- Document tag group merging in merge tool

CHANGELOG.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,49 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [1.2.0] - 2025-12-22
9+
10+
### Added
11+
12+
- **Tag Groups Extension (`x-tagGroups`)**
13+
- New `OpenApiTagGroupAttribute` for organizing related tags into logical groups at assembly level
14+
- Generates `x-tagGroups` extension at the root level of OpenAPI documents
15+
- Supports hierarchical navigation in documentation tools like Redoc
16+
- Multiple tag groups can be defined with `AllowMultiple = true`
17+
- Tag groups preserve definition order in the output
18+
- Tag groups can reference tags that don't exist in the API (forward references)
19+
20+
- **Tag Group Merging**
21+
- Merge tool now combines `x-tagGroups` extensions from multiple OpenAPI specifications
22+
- Same-named tag groups are merged with tags deduplicated
23+
- Tag group order is preserved (first occurrence wins)
24+
- Tag groups from specs that have them are preserved even when other specs don't define tag groups
25+
26+
- **Automatic Example Generation**
27+
- New `OpenApiExampleConfigAttribute` for configuring automatic example generation at assembly level
28+
- Automatic composition of request/response examples from property-level `[OpenApiSchema(Example = "...")]` values
29+
- Type-aware example conversion: numeric types become JSON numbers, booleans become JSON booleans
30+
- Recursive example composition for nested object types
31+
- Array example generation with single element examples
32+
- Explicit `[OpenApiExample]` attributes take precedence over composed examples
33+
34+
- **Default Example Generation**
35+
- Format-based defaults for string properties (email, uuid, date-time, date, uri, hostname, ipv4, ipv6)
36+
- Constraint-based defaults for numeric properties respecting `Minimum`/`Maximum` bounds
37+
- Constraint-based defaults for string properties respecting `MinLength`/`MaxLength` bounds
38+
- Type-appropriate placeholder values for properties without constraints
39+
- Controlled via `GenerateDefaults` property on `OpenApiExampleConfigAttribute`
40+
41+
- **Configuration Options**
42+
- `ComposeFromProperties` (default: true) - Enable/disable automatic example composition
43+
- `GenerateDefaults` (default: false) - Enable/disable default example generation
44+
- Options operate independently for fine-grained control
45+
46+
### Changed
47+
48+
- Example generation is now enabled by default with `ComposeFromProperties = true`
49+
- Properties with `[OpenApiIgnore]` are excluded from composed examples
50+
851
## [1.1.0] - 2025-12-20
952

1053
### Added

0 commit comments

Comments
 (0)