Skip to content

Commit bd33a5f

Browse files
committed
Refactor TinyLlama inference tests and update LLM configuration
- Updated EmbeddedLLM configuration in test_llm_tinyllama_inference.cpp to use new parameters (n_ctx, n_batch). - Changed skipIfNoModel() to void return type and adjusted its usage in multiple tests. - Improved test readability by removing unnecessary return statements. - Updated test cases to ensure proper handling of model availability. - Renamed getSolution to getRecoveryHint in test_utils_llm_path_focused.cpp for clarity. - Introduced a Workflow Filename Rename Matrix to standardize workflow file naming conventions. - Added a canonical milestone registry to manage project milestones effectively. - Created maintenance workflows for issue closure recommendations and milestone synchronization.
1 parent 3643b14 commit bd33a5f

60 files changed

Lines changed: 1618 additions & 412 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/GOVERNANCE.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,8 @@ Use version milestones when a fix or feature must ship in a specific release, in
130130
- Every milestone **MUST** have a due date.
131131
- Milestone names use the exact formats above — no variations.
132132
- When an issue slips, move it to the next milestone; do not leave it unassigned.
133+
- Milestones are managed canonically via `.github/milestones.yml` and synchronized by `.github/workflows/maintenance-milestones.yml`.
134+
- Hotfix and strategic lanes are supported via dedicated milestones (`HOTPATCH`, `LONG-TERM`) and label-driven auto-assignment rules.
133135

134136
---
135137

.github/PR_LABELING_GOVERNANCE.md

Lines changed: 35 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
This document defines the governance for automatic PR labeling and milestone assignment in ThemisDB. The system uses three complementary labeling mechanisms to ensure comprehensive PR classification:
66

77
1. **Path-based labeling** (`.github/labeler.yml`) — automatic label application based on changed files
8-
2. **Milestone assignment** (`automation-community.yml`) — automatic milestone mapping based on ROADMAP Waves
8+
2. **Milestone assignment** (`maintenance-milestones.yml`) — automatic milestone sync + assignment based on labels and Target Version
99
3. **AI semantic labeling** (optional, `automation-community.yml`) — semantic analysis of PR title/body
1010

1111
## Label Taxonomy
@@ -84,36 +84,30 @@ Labels indicating release or quality status.
8484

8585
### Automatic Milestone Logic
8686

87-
The `assign-milestone` job in `automation-community.yml` automatically assigns milestones based on changed files:
88-
89-
1. **Wave A modules**`Q4-2026`
90-
- Includes: access_model, search, sharding, replication, utils, updates, process, audit
91-
92-
2. **Wave B modules**`Q4-2026`
93-
- Includes: llm, retrieval, tensor, gpu, acceleration
94-
95-
3. **Wave C modules**`Q4-2026`
96-
- Includes: security, auth, governance
97-
98-
4. **Wave D modules**`Q1-2027`
99-
- Includes: observability, maintenance, docs/operability
100-
101-
5. **Documentation-only changes**`Documentation`
102-
- Detected by PR title or `.github`, `docs` patterns
103-
104-
6. **Other changes**`Backlog`
105-
- Changes not matching any Wave or documentation pattern
87+
The `assign-milestone` job in `maintenance-milestones.yml` automatically assigns milestones based on label rules and optional Target Version override:
88+
89+
1. **Hot patch labels** (`hot-patch`, `priority:critical`, `severity:critical`, etc.) → `HOTPATCH`
90+
2. **Long-term labels** (`long-term`, `roadmap/long-term`, etc.) → `LONG-TERM`
91+
3. **Wave D labels** (`wave:D`) → `Q1 2027`
92+
4. **Wave A/B/C labels** (`wave:A`, `wave:B`, `wave:C`) → `Q4 2026`
93+
5. **Documentation labels** (`type:documentation`, `docs`) → `Documentation`
94+
6. **Explicit backlog label** (`backlog`) → `Backlog`
95+
7. **Fallback** → default milestone from `.github/milestones.yml`
96+
97+
If a PR includes `Target Version` in the body, that value can override label mapping (`allow_target_version_override`).
10698

10799
### Valid Milestones
108100

109-
The following milestones should exist in the repository:
101+
The following milestones are maintained canonically in `.github/milestones.yml` and synchronized automatically:
110102

111-
- **Q4-2026** — Q4 2026 delivery cycle (Wave A, B, C exit criteria)
112-
- **Q1-2027** — Q1 2027 delivery cycle (Wave D)
103+
- **Q4 2026** — Q4 2026 delivery cycle (Wave A, B, C exit criteria)
104+
- **Q1 2027** — Q1 2027 delivery cycle (Wave D)
113105
- **Documentation** — Documentation and governance updates
106+
- **HOTPATCH** — Urgent production fixes/security incidents
107+
- **LONG-TERM** — Long-term roadmap items
114108
- **Backlog** — Future work or unscoped items
115109

116-
> **Note:** If a milestone does not exist in the repository, the milestone assignment job will skip assignment and log a message. Milestones must be created manually via repository settings.
110+
When `auto_create_missing_milestones` is enabled, missing milestones are auto-created during assignment.
117111

118112
## AI Semantic Labeling
119113

@@ -149,10 +143,10 @@ Detected classifications are converted to labels and merged with existing labels
149143

150144
### Milestone Assignment
151145

152-
- Triggered on PR `opened`, `synchronize` (not draft PRs)
153-
- Configuration: `assign-milestone` job in `automation-community.yml`
154-
- Permissions: `pull-requests:write`, `contents:read`
155-
- **Skips** if the repository lacks required milestones (logs warning)
146+
- Triggered on `issues` and `pull_request_target` events (`opened`, `labeled`, `unlabeled`, `edited`, etc.)
147+
- Configuration: `.github/workflows/maintenance-milestones.yml` + `.github/milestones.yml`
148+
- Permissions: `issues:write`, `pull-requests:write`, `contents:read`
149+
- Supports hot-patch and long-term lanes out of the box
156150

157151
### AI Semantic Labeling
158152

@@ -166,24 +160,24 @@ Detected classifications are converted to labels and merged with existing labels
166160

167161
### When to Update Labels
168162

169-
- **New modules added to Wave A/B/C/D** → Update `labeler.yml` and `assign-milestone` job
163+
- **New modules added to Wave A/B/C/D** → Update `labeler.yml` and `.github/milestones.yml` assignment rules
170164
- **ROADMAP Wave structure changes** → Update milestone mapping and wave labels
171165
- **Build/CI infrastructure changes** → Update type:ci label patterns
172166

173-
### When to Create Milestones
167+
### When to Update Milestones
174168

175-
Create milestones in repository settings when:
176-
- New quarterly cycle begins (e.g., Q2-2027)
169+
Update `.github/milestones.yml` when:
170+
- New quarterly cycle begins (e.g., Q2 2027)
177171
- New Wave is introduced to ROADMAP
178-
- New governance phase is needed
172+
- New governance lane is needed (e.g., emergency hotfix stream)
179173

180174
## Governance
181175

182176
**Maintainer Responsibilities:**
183177
- Keep `.github/labeler.yml` synchronized with module structure
184-
- Ensure `automation-community.yml` milestone logic matches `ROADMAP.md` Waves
178+
- Ensure `.github/milestones.yml` assignment rules match `ROADMAP.md` waves and label taxonomy
185179
- Monitor AI labeling accuracy and disable if producing false positives
186-
- Create/retire milestones as needed
180+
- Create/retire milestones via config changes (synchronized by workflow)
187181

188182
**Documentation Synchronization:**
189183
- Changes to labeling rules must update this file
@@ -202,7 +196,7 @@ Expected labels:
202196
- type:test (path-based)
203197
- release_critical (path-based)
204198
205-
Expected milestone: Q4-2026
199+
Expected milestone: Q4 2026
206200
```
207201

208202
### Documentation-Only PR
@@ -230,23 +224,23 @@ AI detected labels:
230224
231225
Combined with path-based labels: area:access-model, wave:A
232226
Final labels: area:access-model, wave:A, breaking-change, severity:high, impact:api
233-
Expected milestone: Q4-2026
227+
Expected milestone: Q4 2026
234228
```
235229

236230
## Troubleshooting
237231

238232
### PR not assigned expected milestone
239233

240234
**Possible causes:**
241-
1. Repository lacks required milestone — create it in Settings > Milestones
235+
1. Assignment rule in `.github/milestones.yml` does not match current labels
242236
2. Changed files don't match any Wave pattern — assign manually or verify labeler.yml
243237
3. PR is draft — milestones only assigned to open PRs
244238
4. PR is targeting a non-develop branch (conditional logic may exclude it)
245239

246240
**Resolution:**
247-
- Check `automation-community.yml` job logs for "Milestone not found" messages
248-
- Verify changed files against Wave patterns in `labeler.yml`
249-
- Create missing milestones manually if needed
241+
- Check `.github/workflows/maintenance-milestones.yml` run logs for rule resolution and API results
242+
- Verify labels on the issue/PR and the configured `assignment_rules` in `.github/milestones.yml`
243+
- Verify `allow_target_version_override` and `auto_create_missing_milestones` settings
250244

251245
### AI semantic labels not applied
252246

.github/TODO_KI_WORKFLOW_IMPROVEMENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Zieldatei: `.vscode/launch.json` (repo-versioniert via `.vscode.example/launch.j
127127
- [x] Ziel: dynamische Prüfung auf Laufzeitfehler in KI-generiertem C++-Code
128128

129129
### 4.3 CodeQL-Workflow auf `paths:` eingrenzen
130-
- [x] `codeql.yml` aktuell triggert auf alle PRs nach `develop` ohne `paths:`
130+
- [x] `security-codeql.yml` aktuell triggert auf alle PRs nach `develop` ohne `paths:`
131131
— prüfen ob dies WORKFLOW_GUIDELINES-konform ist
132132
- [x] `paths:` auf `src/**`, `include/**` begrenzen (Docs/Meta-Änderungen
133133
lösen keinen CodeQL-Scan aus)

0 commit comments

Comments
 (0)