Skip to content

Commit db601e1

Browse files
authored
Merge pull request #599 from projectbluefin/feature/improve-label-categorization
Improve label categorization in monthly reports
2 parents 32f6666 + 8b7f76e commit db601e1

File tree

4 files changed

+216
-30
lines changed

4 files changed

+216
-30
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Todo: Improve Label Categorization in Monthly Reports
2+
3+
**Created:** 2026-01-28
4+
**Status:** Pending
5+
**Estimated Effort:** 30-45 minutes
6+
**Priority:** Medium
7+
8+
## Objective
9+
10+
Expand label categorization in monthly reports to include uncategorized `area/*` labels and add descriptive text for each category section.
11+
12+
## Background
13+
14+
Currently, several labels from `projectbluefin/common` appear in the "Other" section because they're not mapped to report categories. This todo addresses the remaining uncategorized labels while maintaining the established pattern of only showing `area/*` labels in sections (with exceptions for specific `kind/*` labels already included).
15+
16+
## Changes Required
17+
18+
### 1. Add Missing Labels to Categories
19+
20+
**File:** `scripts/lib/label-mapping.mjs`
21+
22+
Add these labels to existing categories:
23+
24+
```javascript
25+
export const LABEL_CATEGORIES = {
26+
Desktop: ["area/gnome", "area/aurora", "area/bling"],
27+
Development: ["area/dx"],
28+
Ecosystem: ["area/brew", "area/bluespeed", "area/flatpak"],
29+
"System Services & Policies": ["area/services", "area/policy"],
30+
Hardware: ["area/hardware", "area/nvidia", "aarch64"], // ADD aarch64
31+
Infrastructure: [
32+
"area/iso",
33+
"area/upstream",
34+
"area/buildstream",
35+
"area/finpilot",
36+
"area/just",
37+
"area/testing",
38+
],
39+
Documentation: ["kind/documentation"],
40+
"Tech Debt": ["kind/tech-debt", "kind/parity"], // ADD kind/parity
41+
Automation: ["kind/automation", "kind/github-action", "kind/renovate"],
42+
Localization: ["kind/translation"],
43+
};
44+
```
45+
46+
### 2. Add Category Descriptions
47+
48+
**File:** `scripts/lib/markdown-generator.mjs`
49+
50+
Modify `generateCategorySection()` to include italic descriptions below each category header. Use these descriptions (derived from label descriptions in GitHub):
51+
52+
- **Desktop:** _GNOME desktop environment, Aurora variant (KDE), and terminal enhancements_
53+
- **Development:** _Development tools and IDE integrations_
54+
- **Ecosystem:** _Homebrew packages, AI/ML tools (Bluespeed), and Flatpak applications_
55+
- **System Services & Policies:** _Systemd services and system-level policies_
56+
- **Hardware:** _Hardware support, drivers, NVIDIA GPU, and ARM64 architecture_
57+
- **Infrastructure:** _ISO images, upstream integration, build systems, and testing frameworks_
58+
- **Documentation:** _Documentation improvements and additions_
59+
- **Tech Debt:** _Maintenance work and feature parity between variants_
60+
- **Automation:** _CI/CD pipelines, GitHub Actions, and automated dependency updates_
61+
- **Localization:** _Translation and internationalization work_
62+
63+
### 3. Ignore Specific Labels
64+
65+
Ensure these labels are excluded from all categories and "Other" section:
66+
67+
- `dependencies` (meta label for Renovate)
68+
- `lgtm`, `size/*`, `stale`, `duplicate`, `invalid`, `wontfix`, `question`
69+
- `good first issue`, `help wanted`
70+
71+
## Implementation Steps
72+
73+
1. **Update label mapping:**
74+
- Add `aarch64` to Hardware array
75+
- Add `kind/parity` to Tech Debt array
76+
77+
2. **Create category descriptions map:**
78+
79+
```javascript
80+
const CATEGORY_DESCRIPTIONS = {
81+
Desktop:
82+
"GNOME desktop environment, Aurora variant (KDE), and terminal enhancements",
83+
Development: "Development tools and IDE integrations",
84+
// ... etc
85+
};
86+
```
87+
88+
3. **Modify markdown generator:**
89+
- Update `generateCategorySection()` to inject descriptions
90+
- Format: `## Category Name\n\n*Description text*\n\n### Planned Work`
91+
92+
4. **Test changes:**
93+
94+
```bash
95+
npm run generate-report -- --month=2026-01
96+
npm run generate-report -- --month=2025-12
97+
```
98+
99+
5. **Verify results:**
100+
- Check that `aarch64` PRs appear in Hardware section
101+
- Check that `kind/parity` PRs appear in Tech Debt section
102+
- Check that "Other" section is further reduced
103+
- Check that category descriptions render correctly
104+
105+
6. **Preview in browser:**
106+
```bash
107+
npm run start
108+
# Navigate to /reports and verify formatting
109+
```
110+
111+
## Success Criteria
112+
113+
- [ ] `aarch64` label mapped to Hardware category
114+
- [ ] `kind/parity` label mapped to Tech Debt category
115+
- [ ] All category sections have italic descriptions
116+
- [ ] "Other" section reduced by items now in Hardware/Tech Debt
117+
- [ ] Reports regenerate without errors
118+
- [ ] Descriptions render correctly in browser
119+
- [ ] Git commit follows conventional commit format
120+
121+
## Expected Impact
122+
123+
- **"Other" section reduction:** Additional ~2-5% reduction (depends on aarch64/parity PR count)
124+
- **Improved clarity:** Category descriptions help readers understand what types of work fall under each area
125+
- **Better organization:** All relevant `area/*` labels now properly categorized
126+
127+
## Notes
128+
129+
- This follows the pattern established in commit `e568ef8` (translation label implementation)
130+
- Maintains the "no emojis in headers" rule from commit `e417e45`
131+
- Category descriptions should use **italic** format (`*text*`) not bold
132+
- Keep "New Lights" section name unchanged (Guardian theme)
133+
134+
## References
135+
136+
- Label mapping: `scripts/lib/label-mapping.mjs`
137+
- Markdown generator: `scripts/lib/markdown-generator.mjs`
138+
- GitHub labels: https://github.com/projectbluefin/common/labels
139+
- Previous work: `.planning/translation-label-proposal.md`

0 commit comments

Comments
 (0)