Skip to content

Commit da556df

Browse files
committed
chore: sync repo structure, CI, and docs with modular platform design
1 parent 3176444 commit da556df

10 files changed

Lines changed: 390 additions & 407 deletions

File tree

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,68 @@
11
name: "🐞 Bug report"
2-
description: "Report a bug or unexpected behavior in generated clients or schema registration"
2+
description: "Report a bug or unexpected behavior in the OpenAPI Generics platform"
33
title: "bugfix: <short summary>"
44
labels: ["bug"]
55
assignees: []
6+
67
body:
78
- type: markdown
89
attributes:
910
value: |
10-
Thank you for taking the time to improve **spring-boot-openapi-generics-clients**!
11-
Please provide details so we can reproduce and fix the issue quickly.
11+
Thank you for taking the time to improve **openapi-generics**!
12+
Please provide enough detail so the issue can be reproduced deterministically.
13+
1214
- type: textarea
1315
id: description
1416
attributes:
1517
label: "Describe the bug"
16-
description: "A clear and concise description of what the bug is and how it affects the output."
17-
placeholder: "Example: Generated client omits x-data-item when using nested Page<T> response."
18+
description: "What is the incorrect behavior? Focus on observable output (OpenAPI, generated code, or runtime behavior)."
19+
placeholder: "Example: Generated client omits wrapper binding when using nested generic responses (ServiceResponse<Page<T>>)."
1820
validations:
1921
required: true
22+
2023
- type: textarea
2124
id: reproduction
2225
attributes:
2326
label: "Steps to reproduce"
24-
description: "List the minimal steps to reproduce the issue."
27+
description: "Provide minimal, deterministic steps to reproduce the issue. Prefer a clean build from repository root."
2528
placeholder: |
26-
1. Run `mvn clean install` on customer-service-client
27-
2. Inspect generated model under src/gen/java
28-
3. Observe missing type or mismatch
29+
1. Run `mvn clean verify` from repository root
30+
2. Inspect generated sources under target/generated-sources
31+
3. Observe missing/incorrect type or schema
32+
2933
- type: textarea
3034
id: expected
3135
attributes:
3236
label: "Expected behavior"
33-
description: "What did you expect instead?"
34-
placeholder: "The generator should create ServiceResponsePageCustomerDto extending ServiceClientResponse<Page<CustomerDto>>."
37+
description: "What should happen instead?"
38+
placeholder: "The generator should produce a wrapper type correctly binding generic parameters and preserving contract semantics."
39+
40+
- type: textarea
41+
id: scope
42+
attributes:
43+
label: "Affected area"
44+
description: "Which part of the platform is affected? (write one or more)"
45+
placeholder: |
46+
- contract (ServiceResponse<T>, Page, Meta)
47+
- server (contract → OpenAPI projection)
48+
- generator (OpenAPI → code)
49+
- templates / vendor extensions
50+
3551
- type: textarea
3652
id: environment
3753
attributes:
3854
label: "Environment"
39-
description: "Tool versions or environment details."
55+
description: "Tooling and runtime details"
4056
placeholder: |
4157
- Java: 21
42-
- OpenAPI Generator: 7.21.0
58+
- Maven: 3.9+
59+
- OpenAPI Generator: 7.x
4360
- Spring Boot: 3.5.x
4461
- OS: macOS / Windows / Linux
62+
4563
- type: textarea
4664
id: additional
4765
attributes:
4866
label: "Additional context"
49-
description: "Any logs, screenshots, or related discussions."
50-
placeholder: "Link to related discussion or stack trace."
67+
description: "Logs, snippets, spec fragments, or links to discussions"
68+
placeholder: "Include stack traces, generated code excerpts, or OpenAPI fragments if relevant."

.github/ISSUE_TEMPLATE/feature_request.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,30 @@ body:
77
- type: markdown
88
attributes:
99
value: |
10-
Thanks for helping evolve **spring-boot-openapi-generics-clients**!
10+
Thanks for helping evolve **openapi-generics**!
1111
Please share your idea and reasoning below.
12+
1213
- type: textarea
1314
id: problem
1415
attributes:
1516
label: "Is your feature request related to a problem?"
1617
description: "Describe what limitation or gap you're facing."
1718
placeholder: "I'm always frustrated when I have to manually mark generic containers for registration..."
19+
1820
- type: textarea
1921
id: solution
2022
attributes:
2123
label: "Describe the solution you'd like"
2224
description: "Describe the change or new capability you'd like to see."
2325
placeholder: "Automatically detect Page<T> and Slice<T> containers without configuration."
26+
2427
- type: textarea
2528
id: alternatives
2629
attributes:
2730
label: "Describe alternatives you've considered"
2831
description: "Mention any workarounds or similar ideas."
2932
placeholder: "I've tried extending AutoWrapperSchemaCustomizer manually, but it’s verbose."
33+
3034
- type: textarea
3135
id: additional
3236
attributes:

.github/workflows/build.yml

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,18 @@ jobs:
3232
distribution: "temurin"
3333
cache: maven
3434

35-
- name: Build all modules (tests + coverage)
35+
# -----------------------------
36+
# 🔧 Core modules (publishable)
37+
# -----------------------------
38+
- name: Build core modules
3639
run: mvn -B -q -ntp clean verify
3740

41+
# -----------------------------
42+
# 🧪 Samples (tests + coverage)
43+
# -----------------------------
44+
- name: Build samples (tests + coverage)
45+
run: mvn -B -q -ntp -f samples/pom.xml clean verify
46+
3847
# -----------------------------
3948
# 📦 Generated Client Sources
4049
# -----------------------------
@@ -58,27 +67,14 @@ jobs:
5867
retention-days: 7
5968

6069
# -----------------------------
61-
# 📊 Coverage - customer-service
62-
# -----------------------------
63-
- name: Upload coverage (customer-service)
64-
uses: codecov/codecov-action@v4
65-
with:
66-
token: ${{ secrets.CODECOV_TOKEN }}
67-
files: |
68-
samples/customer-service/target/site/jacoco*/jacoco.xml
69-
flags: customer-service
70-
name: customer-service
71-
fail_ci_if_error: false
72-
73-
# -----------------------------
74-
# 📊 Coverage - customer-service-client
70+
# 📊 Coverage (samples only)
7571
# -----------------------------
76-
- name: Upload coverage (customer-service-client)
72+
- name: Upload coverage (samples)
7773
uses: codecov/codecov-action@v4
7874
with:
7975
token: ${{ secrets.CODECOV_TOKEN }}
8076
files: |
81-
samples/customer-service-client/target/site/jacoco*/jacoco.xml
82-
flags: customer-service-client
83-
name: customer-service-client
77+
samples/**/target/site/jacoco*/jacoco.xml
78+
flags: samples
79+
name: samples
8480
fail_ci_if_error: false

.github/workflows/codeql.yml

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,17 @@ jobs:
2828
language: [java-kotlin]
2929

3030
steps:
31+
# -----------------------------
32+
# 📥 Checkout
33+
# -----------------------------
3134
- name: Checkout repository
3235
uses: actions/checkout@v4
3336
with:
3437
fetch-depth: 0
3538

39+
# -----------------------------
40+
# ☕ JDK
41+
# -----------------------------
3642
- name: Set up JDK 21
3743
uses: actions/setup-java@v4
3844
with:
@@ -49,11 +55,17 @@ jobs:
4955
languages: ${{ matrix.language }}
5056

5157
# -----------------------------
52-
# 🏗 Build (full reactor incl. samples)
58+
# 🏗 Build core (publishable modules)
5359
# -----------------------------
54-
- name: Build (Maven reactor)
60+
- name: Build core modules
5561
run: mvn -B -ntp -DskipTests clean package
5662

63+
# -----------------------------
64+
# 🧪 Build samples (runtime coverage)
65+
# -----------------------------
66+
- name: Build samples
67+
run: mvn -B -ntp -DskipTests -f samples/pom.xml clean package
68+
5769
# -----------------------------
5870
# 🔎 Analyze
5971
# -----------------------------

0 commit comments

Comments
 (0)