Skip to content

Commit 4161aba

Browse files
Copilotewdlop
andcommitted
Add comprehensive labels and milestones configuration
Co-authored-by: ewdlop <25368970+ewdlop@users.noreply.github.com>
1 parent da6308c commit 4161aba

6 files changed

Lines changed: 502 additions & 0 deletions

File tree

.github/LABELS.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Labels and Milestones Guide
2+
3+
This document describes the label system and milestones used in the Luthetus.Ide repository for organizing issues and pull requests.
4+
5+
## Labels
6+
7+
Labels are organized into several categories to help classify and filter issues effectively.
8+
9+
### Type Labels
10+
11+
These labels identify the kind of work involved:
12+
13+
- **type: bug** - Something isn't working correctly
14+
- **type: enhancement** - Improvement to existing functionality
15+
- **type: feature** - New feature or capability
16+
- **type: documentation** - Documentation improvements or additions
17+
- **type: refactor** - Code refactoring without changing functionality
18+
- **type: test** - Adding or updating tests
19+
- **type: maintenance** - Repository maintenance and infrastructure
20+
21+
### Priority Labels
22+
23+
These labels indicate urgency:
24+
25+
- **priority: critical** - Must be fixed immediately (security, data loss, complete breakage)
26+
- **priority: high** - Should be addressed soon (significant impact)
27+
- **priority: medium** - Normal priority (standard development work)
28+
- **priority: low** - Nice to have (minor improvements)
29+
30+
### Status Labels
31+
32+
These labels track the current state of an issue or PR:
33+
34+
- **status: wip** - Work in progress
35+
- **status: blocked** - Blocked by another issue or external factor
36+
- **status: help-wanted** - Extra attention or help is needed
37+
- **status: good-first-issue** - Good for newcomers to the project
38+
- **status: needs-review** - Waiting for review
39+
- **status: needs-testing** - Needs testing before completion
40+
41+
### Component Labels
42+
43+
These labels identify which part of the codebase is affected:
44+
45+
- **component: ide** - IDE-specific functionality
46+
- **component: text-editor** - Text editor component
47+
- **component: compiler-services** - Compiler services (C#, Python, JavaScript, etc.)
48+
- **component: common** - Common library components
49+
- **component: extensions** - Extensions (Git, DotNet, Config, Website)
50+
51+
### Platform Labels
52+
53+
These labels indicate platform-specific issues:
54+
55+
- **platform: linux** - Linux-specific issue
56+
- **platform: windows** - Windows-specific issue
57+
- **platform: mac** - macOS-specific issue
58+
- **platform: wasm** - WebAssembly/Browser-specific issue
59+
- **platform: photino** - Photino webview-specific issue
60+
61+
### Language Labels
62+
63+
These labels relate to language parser/compiler work:
64+
65+
- **lang: csharp** - C# language support
66+
- **lang: python** - Python language support
67+
- **lang: javascript** - JavaScript language support
68+
- **lang: fsharp** - F# language support
69+
- **lang: css** - CSS language support
70+
- **lang: razor** - Razor language support
71+
72+
### Other Labels
73+
74+
- **dependencies** - Dependency updates
75+
- **security** - Security-related issue or update
76+
- **performance** - Performance improvements
77+
- **accessibility** - Accessibility improvements
78+
- **breaking-change** - Breaking change that requires major version bump
79+
- **duplicate** - Duplicate of another issue
80+
- **wontfix** - Will not be fixed or implemented
81+
- **invalid** - Invalid issue or request
82+
- **question** - Question or discussion
83+
84+
## Using Labels
85+
86+
### For Issue Authors
87+
88+
When creating an issue, try to apply at least:
89+
1. One **type** label (bug, enhancement, feature, etc.)
90+
2. One **component** label (what part of the code)
91+
3. A **platform** label if the issue is platform-specific
92+
93+
### For Maintainers
94+
95+
Maintainers should additionally apply:
96+
1. A **priority** label
97+
2. **status** labels as appropriate
98+
3. Additional labels as needed for filtering and organization
99+
100+
### Label Combinations
101+
102+
Good examples of label combinations:
103+
104+
- `type: bug` + `priority: high` + `component: text-editor` + `platform: windows`
105+
- `type: feature` + `priority: medium` + `component: compiler-services` + `lang: csharp`
106+
- `type: enhancement` + `priority: low` + `component: ide` + `status: help-wanted`
107+
- `type: bug` + `priority: critical` + `security` + `component: common`
108+
109+
## Milestones
110+
111+
Milestones are used to group issues and PRs into releases or development phases.
112+
113+
### Current Milestones
114+
115+
- **v1.0.0 - Initial Stable Release** - First production-ready release
116+
- **v0.10.0 - Beta Improvements** - Stability and performance focus
117+
- **v0.11.0 - Extended Language Support** - Multi-language support expansion
118+
- **v0.12.0 - Developer Experience** - Productivity features
119+
- **v0.13.0 - Collaboration Features** - Team collaboration tools
120+
- **Backlog** - Planned features not yet scheduled
121+
- **Community Contributions** - Issues suitable for external contributors
122+
123+
### Using Milestones
124+
125+
Issues should be assigned to milestones based on:
126+
1. When the feature/fix is planned to be released
127+
2. The priority and dependencies
128+
3. Available resources and timeline
129+
130+
Issues without a milestone are typically in triage or not yet planned for a specific release.
131+
132+
## Automated Label Syncing
133+
134+
The repository uses a GitHub Actions workflow to automatically sync labels from `.github/labels.yml` to the repository. This ensures consistency and makes it easy to update labels across the project.
135+
136+
The workflow runs:
137+
- When `.github/labels.yml` is modified and pushed to main
138+
- When manually triggered via workflow dispatch
139+
140+
## Contributing
141+
142+
When contributing to the project, please:
143+
1. Label your issues and PRs appropriately
144+
2. Check existing labels before creating new ones
145+
3. Suggest new labels via issue if needed
146+
4. Follow the labeling conventions described above
147+
148+
For questions about labels or milestones, please open a discussion or issue with the `question` label.

.github/README.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# GitHub Configuration
2+
3+
This directory contains GitHub-specific configuration files for the Luthetus.Ide repository.
4+
5+
## Contents
6+
7+
- **labels.yml** - Label definitions for issues and pull requests
8+
- **milestones.yml** - Milestone definitions for project planning
9+
- **LABELS.md** - Documentation for labels and milestones usage
10+
- **workflows/** - GitHub Actions workflows
11+
- **main.yml** - Builds and deploys to GitHub Pages
12+
- **sync-labels.yml** - Automatically syncs labels to the repository
13+
14+
## Labels
15+
16+
The repository uses a comprehensive label system to organize and categorize issues and pull requests. Labels are organized into categories:
17+
18+
- **Type** - What kind of work (bug, feature, enhancement, etc.)
19+
- **Priority** - How urgent (critical, high, medium, low)
20+
- **Status** - Current state (wip, blocked, help-wanted, etc.)
21+
- **Component** - Which part of the codebase
22+
- **Platform** - Which platform (Linux, Windows, Mac, WASM, Photino)
23+
- **Language** - Which language parser/compiler
24+
25+
See [LABELS.md](LABELS.md) for complete documentation.
26+
27+
## Milestones
28+
29+
Milestones are used to track progress toward releases and major development phases. Current milestones include:
30+
31+
- v1.0.0 - Initial Stable Release
32+
- v0.10.0 through v0.13.0 - Beta releases with specific focus areas
33+
- Backlog - Future planned work
34+
- Community Contributions - Issues suitable for external contributors
35+
36+
## Automated Workflows
37+
38+
### Label Syncing
39+
40+
The `sync-labels.yml` workflow automatically applies the labels defined in `labels.yml` to the repository. This ensures consistency and makes it easy to update labels.
41+
42+
To sync labels manually:
43+
1. Go to Actions tab in GitHub
44+
2. Select "Sync Labels" workflow
45+
3. Click "Run workflow"
46+
47+
### GitHub Pages Deployment
48+
49+
The `main.yml` workflow builds and deploys the Blazor WebAssembly application to GitHub Pages on every push to the main branch.
50+
51+
## Contributing
52+
53+
When contributing:
54+
- Apply appropriate labels to your issues and PRs
55+
- Refer to [LABELS.md](LABELS.md) for label usage guidelines
56+
- See [../CONTRIBUTING.md](../CONTRIBUTING.md) for general contribution guidelines

.github/labels.yml

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# GitHub Labels Configuration
2+
# This file defines all labels used in the repository for issue and PR management
3+
4+
# Type Labels - What kind of work is this?
5+
- name: "type: bug"
6+
description: "Something isn't working correctly"
7+
color: "d73a4a"
8+
9+
- name: "type: enhancement"
10+
description: "Improvement to existing functionality"
11+
color: "a2eeef"
12+
13+
- name: "type: feature"
14+
description: "New feature or capability"
15+
color: "0e8a16"
16+
17+
- name: "type: documentation"
18+
description: "Documentation improvements or additions"
19+
color: "0075ca"
20+
21+
- name: "type: refactor"
22+
description: "Code refactoring without changing functionality"
23+
color: "fbca04"
24+
25+
- name: "type: test"
26+
description: "Adding or updating tests"
27+
color: "c5def5"
28+
29+
- name: "type: maintenance"
30+
description: "Repository maintenance and infrastructure"
31+
color: "f9d0c4"
32+
33+
# Priority Labels - How urgent is this?
34+
- name: "priority: critical"
35+
description: "Must be fixed immediately"
36+
color: "b60205"
37+
38+
- name: "priority: high"
39+
description: "Should be addressed soon"
40+
color: "d93f0b"
41+
42+
- name: "priority: medium"
43+
description: "Normal priority"
44+
color: "fbca04"
45+
46+
- name: "priority: low"
47+
description: "Nice to have"
48+
color: "0e8a16"
49+
50+
# Status Labels - What's the current state?
51+
- name: "status: wip"
52+
description: "Work in progress"
53+
color: "ededed"
54+
55+
- name: "status: blocked"
56+
description: "Blocked by another issue or external factor"
57+
color: "d73a4a"
58+
59+
- name: "status: help-wanted"
60+
description: "Extra attention or help is needed"
61+
color: "008672"
62+
63+
- name: "status: good-first-issue"
64+
description: "Good for newcomers to the project"
65+
color: "7057ff"
66+
67+
- name: "status: needs-review"
68+
description: "Waiting for review"
69+
color: "fbca04"
70+
71+
- name: "status: needs-testing"
72+
description: "Needs testing before completion"
73+
color: "1d76db"
74+
75+
# Component Labels - Which part of the codebase?
76+
- name: "component: ide"
77+
description: "IDE-specific functionality"
78+
color: "c2e0c6"
79+
80+
- name: "component: text-editor"
81+
description: "Text editor component"
82+
color: "bfdadc"
83+
84+
- name: "component: compiler-services"
85+
description: "Compiler services (C#, Python, JavaScript, etc.)"
86+
color: "d4c5f9"
87+
88+
- name: "component: common"
89+
description: "Common library components"
90+
color: "fef2c0"
91+
92+
- name: "component: extensions"
93+
description: "Extensions (Git, DotNet, Config, Website)"
94+
color: "c5def5"
95+
96+
# Platform Labels - Which platforms are affected?
97+
- name: "platform: linux"
98+
description: "Linux-specific issue"
99+
color: "ffa500"
100+
101+
- name: "platform: windows"
102+
description: "Windows-specific issue"
103+
color: "0078d7"
104+
105+
- name: "platform: mac"
106+
description: "macOS-specific issue"
107+
color: "999999"
108+
109+
- name: "platform: wasm"
110+
description: "WebAssembly/Browser-specific issue"
111+
color: "5319e7"
112+
113+
- name: "platform: photino"
114+
description: "Photino webview-specific issue"
115+
color: "006b75"
116+
117+
# Language Labels - Which language parser/compiler?
118+
- name: "lang: csharp"
119+
description: "C# language support"
120+
color: "68217a"
121+
122+
- name: "lang: python"
123+
description: "Python language support"
124+
color: "3776ab"
125+
126+
- name: "lang: javascript"
127+
description: "JavaScript language support"
128+
color: "f7df1e"
129+
130+
- name: "lang: fsharp"
131+
description: "F# language support"
132+
color: "378bba"
133+
134+
- name: "lang: css"
135+
description: "CSS language support"
136+
color: "1572b6"
137+
138+
- name: "lang: razor"
139+
description: "Razor language support"
140+
color: "512bd4"
141+
142+
# Other Labels
143+
- name: "dependencies"
144+
description: "Dependency updates"
145+
color: "0366d6"
146+
147+
- name: "security"
148+
description: "Security-related issue or update"
149+
color: "ee0701"
150+
151+
- name: "performance"
152+
description: "Performance improvements"
153+
color: "d4c5f9"
154+
155+
- name: "accessibility"
156+
description: "Accessibility improvements"
157+
color: "c5def5"
158+
159+
- name: "breaking-change"
160+
description: "Breaking change that requires major version bump"
161+
color: "b60205"
162+
163+
- name: "duplicate"
164+
description: "Duplicate of another issue"
165+
color: "cfd3d7"
166+
167+
- name: "wontfix"
168+
description: "Will not be fixed or implemented"
169+
color: "ffffff"
170+
171+
- name: "invalid"
172+
description: "Invalid issue or request"
173+
color: "e4e669"
174+
175+
- name: "question"
176+
description: "Question or discussion"
177+
color: "d876e3"

0 commit comments

Comments
 (0)