Skip to content

Commit e5eb89b

Browse files
Copilotbenaadams
andcommitted
Add CONTRIBUTING.md and GitHub templates
Co-authored-by: benaadams <1142958+benaadams@users.noreply.github.com>
1 parent 562d479 commit e5eb89b

6 files changed

Lines changed: 719 additions & 1 deletion

File tree

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior in Magma
3+
title: "[Bug]: "
4+
labels: ["bug"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for taking the time to report a bug! Please fill out the information below to help us understand and fix the issue.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Description
15+
description: A clear and concise description of the bug.
16+
placeholder: What happened?
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: reproduction
22+
attributes:
23+
label: Steps to Reproduce
24+
description: Detailed steps to reproduce the bug.
25+
placeholder: |
26+
1. Create a network interface with...
27+
2. Send a packet using...
28+
3. Observe the error...
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: expected
34+
attributes:
35+
label: Expected Behavior
36+
description: What did you expect to happen?
37+
placeholder: The packet should be sent successfully...
38+
validations:
39+
required: true
40+
41+
- type: textarea
42+
id: actual
43+
attributes:
44+
label: Actual Behavior
45+
description: What actually happened?
46+
placeholder: An exception was thrown...
47+
validations:
48+
required: true
49+
50+
- type: dropdown
51+
id: component
52+
attributes:
53+
label: Affected Component
54+
description: Which component is affected by this bug?
55+
options:
56+
- Magma.Link (Ethernet/ARP)
57+
- Magma.Internet.Ip (IPv4/IPv6)
58+
- Magma.Internet.Icmp
59+
- Magma.Transport.Tcp
60+
- Magma.Transport.Udp
61+
- Magma.AF_XDP (Linux)
62+
- Magma.NetMap (Linux)
63+
- Magma.WinTun (Windows)
64+
- Magma.PCap
65+
- Magma.Network
66+
- Magma.Common
67+
- Documentation
68+
- Other
69+
validations:
70+
required: true
71+
72+
- type: dropdown
73+
id: os
74+
attributes:
75+
label: Operating System
76+
description: What operating system are you using?
77+
options:
78+
- Windows
79+
- Linux
80+
- macOS
81+
- Other
82+
validations:
83+
required: true
84+
85+
- type: input
86+
id: os-version
87+
attributes:
88+
label: OS Version
89+
description: What version of the operating system?
90+
placeholder: "e.g., Ubuntu 22.04, Windows 11, macOS 14"
91+
validations:
92+
required: true
93+
94+
- type: input
95+
id: dotnet-version
96+
attributes:
97+
label: .NET Version
98+
description: What version of .NET are you using?
99+
placeholder: "e.g., .NET 10.0.102"
100+
validations:
101+
required: true
102+
103+
- type: input
104+
id: magma-version
105+
attributes:
106+
label: Magma Version
107+
description: What version of Magma are you using?
108+
placeholder: "e.g., 1.0.0 or commit hash"
109+
validations:
110+
required: true
111+
112+
- type: textarea
113+
id: logs
114+
attributes:
115+
label: Logs and Stack Traces
116+
description: Paste any relevant logs, error messages, or stack traces.
117+
placeholder: |
118+
Exception details:
119+
System.InvalidOperationException: ...
120+
render: text
121+
122+
- type: textarea
123+
id: code
124+
attributes:
125+
label: Code Sample
126+
description: If applicable, provide a minimal code sample that reproduces the issue.
127+
placeholder: |
128+
var interface = new NetworkInterface(...);
129+
interface.SendPacket(...);
130+
render: csharp
131+
132+
- type: textarea
133+
id: additional
134+
attributes:
135+
label: Additional Context
136+
description: Any other information that might be relevant (network configuration, hardware details, etc.).
137+
placeholder: Using Intel X710 NIC with AF_XDP...
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
name: Feature Request
2+
description: Suggest a new feature or enhancement for Magma
3+
title: "[Feature]: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thank you for suggesting a new feature! Please provide as much detail as possible to help us understand your proposal.
10+
11+
- type: textarea
12+
id: problem
13+
attributes:
14+
label: Problem Statement
15+
description: Describe the problem or limitation you're experiencing.
16+
placeholder: I'm trying to implement custom protocol X, but there's no support for...
17+
validations:
18+
required: true
19+
20+
- type: textarea
21+
id: solution
22+
attributes:
23+
label: Proposed Solution
24+
description: Describe your proposed solution or feature.
25+
placeholder: Add a new IcmpV6 implementation that supports...
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: alternatives
31+
attributes:
32+
label: Alternatives Considered
33+
description: Describe any alternative solutions or workarounds you've considered.
34+
placeholder: I considered using raw sockets, but...
35+
36+
- type: dropdown
37+
id: component
38+
attributes:
39+
label: Target Component
40+
description: Which component would this feature affect or be added to?
41+
options:
42+
- Magma.Link (Ethernet/ARP)
43+
- Magma.Internet.Ip (IPv4/IPv6)
44+
- Magma.Internet.Icmp
45+
- Magma.Transport.Tcp
46+
- Magma.Transport.Udp
47+
- Magma.AF_XDP (Linux)
48+
- Magma.NetMap (Linux)
49+
- Magma.WinTun (Windows)
50+
- Magma.PCap
51+
- Magma.Network
52+
- Magma.Common
53+
- New component
54+
- Documentation
55+
- Other
56+
validations:
57+
required: true
58+
59+
- type: dropdown
60+
id: priority
61+
attributes:
62+
label: Priority
63+
description: How important is this feature to you?
64+
options:
65+
- Critical - blocking my project
66+
- High - would significantly improve my workflow
67+
- Medium - nice to have
68+
- Low - minor improvement
69+
validations:
70+
required: true
71+
72+
- type: textarea
73+
id: use-case
74+
attributes:
75+
label: Use Case
76+
description: Describe your specific use case for this feature.
77+
placeholder: I'm building a custom VPN solution that needs to...
78+
validations:
79+
required: true
80+
81+
- type: textarea
82+
id: examples
83+
attributes:
84+
label: Example Usage
85+
description: If applicable, provide example code showing how the feature would be used.
86+
placeholder: |
87+
var handler = new IcmpV6Handler(...);
88+
handler.ProcessPacket(packet);
89+
render: csharp
90+
91+
- type: textarea
92+
id: references
93+
attributes:
94+
label: References
95+
description: Links to relevant specifications, documentation, or prior art.
96+
placeholder: |
97+
- RFC 4443 (ICMPv6)
98+
- https://example.com/protocol-spec
99+
100+
- type: checkboxes
101+
id: contribution
102+
attributes:
103+
label: Contribution
104+
description: Are you willing to contribute to implementing this feature?
105+
options:
106+
- label: I am willing to submit a pull request for this feature
107+
required: false
108+
109+
- type: textarea
110+
id: additional
111+
attributes:
112+
label: Additional Context
113+
description: Any other context, screenshots, or information about the feature request.

.github/ISSUE_TEMPLATE/task.yml

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
name: Task
2+
description: Create a task for project work (documentation, refactoring, testing, etc.)
3+
title: "[Task]: "
4+
labels: ["task"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Use this template for tasks that don't fit into bug reports or feature requests, such as documentation updates, refactoring, testing improvements, or project maintenance.
10+
11+
- type: textarea
12+
id: description
13+
attributes:
14+
label: Task Description
15+
description: A clear description of the task to be completed.
16+
placeholder: Update documentation for AF_XDP setup on Ubuntu 24.04...
17+
validations:
18+
required: true
19+
20+
- type: dropdown
21+
id: category
22+
attributes:
23+
label: Task Category
24+
description: What type of task is this?
25+
options:
26+
- Documentation
27+
- Testing
28+
- Refactoring
29+
- Performance optimization
30+
- Build/CI improvements
31+
- Dependency updates
32+
- Code cleanup
33+
- Security
34+
- Other
35+
validations:
36+
required: true
37+
38+
- type: dropdown
39+
id: component
40+
attributes:
41+
label: Related Component
42+
description: Which component does this task relate to?
43+
options:
44+
- Magma.Link (Ethernet/ARP)
45+
- Magma.Internet.Ip (IPv4/IPv6)
46+
- Magma.Internet.Icmp
47+
- Magma.Transport.Tcp
48+
- Magma.Transport.Udp
49+
- Magma.AF_XDP (Linux)
50+
- Magma.NetMap (Linux)
51+
- Magma.WinTun (Windows)
52+
- Magma.PCap
53+
- Magma.Network
54+
- Magma.Common
55+
- Documentation
56+
- Build/CI
57+
- Multiple components
58+
- Other
59+
60+
- type: textarea
61+
id: subtasks
62+
attributes:
63+
label: Sub-tasks
64+
description: List specific sub-tasks or steps to complete this task (use markdown checkboxes).
65+
placeholder: |
66+
- [ ] Update README.md with new setup instructions
67+
- [ ] Add code examples to documentation
68+
- [ ] Update inline documentation
69+
value: |
70+
- [ ]
71+
72+
- type: textarea
73+
id: acceptance
74+
attributes:
75+
label: Acceptance Criteria
76+
description: Define what "done" means for this task.
77+
placeholder: |
78+
- Documentation is updated and builds successfully
79+
- Code examples compile and run
80+
- No broken links in documentation
81+
validations:
82+
required: true
83+
84+
- type: dropdown
85+
id: priority
86+
attributes:
87+
label: Priority
88+
description: How urgent is this task?
89+
options:
90+
- Critical
91+
- High
92+
- Medium
93+
- Low
94+
95+
- type: textarea
96+
id: dependencies
97+
attributes:
98+
label: Dependencies
99+
description: List any dependencies or blockers for this task.
100+
placeholder: |
101+
- Depends on #123
102+
- Blocked by feature implementation in #456
103+
104+
- type: textarea
105+
id: phase
106+
attributes:
107+
label: Project Phase
108+
description: Which project phase or milestone does this task belong to?
109+
placeholder: Phase 0 (Foundation), Phase 1, etc.
110+
111+
- type: checkboxes
112+
id: contribution
113+
attributes:
114+
label: Contribution
115+
description: Are you willing to work on this task?
116+
options:
117+
- label: I am willing to work on this task
118+
required: false
119+
120+
- type: textarea
121+
id: additional
122+
attributes:
123+
label: Additional Context
124+
description: Any other information relevant to this task.

0 commit comments

Comments
 (0)