Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
137 changes: 137 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
name: Bug Report
description: Report a bug or unexpected behavior in Magma
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug! Please fill out the information below to help us understand and fix the issue.

- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of the bug.
placeholder: What happened?
validations:
required: true

- type: textarea
id: reproduction
attributes:
label: Steps to Reproduce
description: Detailed steps to reproduce the bug.
placeholder: |
1. Create a network interface with...
2. Send a packet using...
3. Observe the error...
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: What did you expect to happen?
placeholder: The packet should be sent successfully...
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened?
placeholder: An exception was thrown...
validations:
required: true

- type: dropdown
id: component
attributes:
label: Affected Component
description: Which component is affected by this bug?
options:
- Magma.Link (Ethernet/ARP)
- Magma.Internet.Ip (IPv4/IPv6)
- Magma.Internet.Icmp
- Magma.Transport.Tcp
- Magma.Transport.Udp
- Magma.AF_XDP (Linux)
- Magma.NetMap (Linux)
- Magma.WinTun (Windows)
- Magma.PCap
- Magma.Network
- Magma.Common
- Documentation
- Other
validations:
required: true

- type: dropdown
id: os
attributes:
label: Operating System
description: What operating system are you using?
options:
- Windows
- Linux
- macOS
- Other
validations:
required: true

- type: input
id: os-version
attributes:
label: OS Version
description: What version of the operating system?
placeholder: "e.g., Ubuntu 22.04, Windows 11, macOS 14"
validations:
required: true

- type: input
id: dotnet-version
attributes:
label: .NET Version
description: What version of .NET are you using?
placeholder: "e.g., .NET 10.0.102"
validations:
required: true

- type: input
id: magma-version
attributes:
label: Magma Version
description: What version of Magma are you using?
placeholder: "e.g., 1.0.0 or commit hash"
validations:
required: true

- type: textarea
id: logs
attributes:
label: Logs and Stack Traces
description: Paste any relevant logs, error messages, or stack traces.
placeholder: |
Exception details:
System.InvalidOperationException: ...
render: text

- type: textarea
id: code
attributes:
label: Code Sample
description: If applicable, provide a minimal code sample that reproduces the issue.
placeholder: |
var interface = new NetworkInterface(...);
interface.SendPacket(...);
render: csharp

- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other information that might be relevant (network configuration, hardware details, etc.).
placeholder: Using Intel X710 NIC with AF_XDP...
113 changes: 113 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
name: Feature Request
description: Suggest a new feature or enhancement for Magma
title: "[Feature]: "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thank you for suggesting a new feature! Please provide as much detail as possible to help us understand your proposal.

- type: textarea
id: problem
attributes:
label: Problem Statement
description: Describe the problem or limitation you're experiencing.
placeholder: I'm trying to implement custom protocol X, but there's no support for...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe your proposed solution or feature.
placeholder: Add a new IcmpV6 implementation that supports...
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Describe any alternative solutions or workarounds you've considered.
placeholder: I considered using raw sockets, but...

- type: dropdown
id: component
attributes:
label: Target Component
description: Which component would this feature affect or be added to?
options:
- Magma.Link (Ethernet/ARP)
- Magma.Internet.Ip (IPv4/IPv6)
- Magma.Internet.Icmp
- Magma.Transport.Tcp
- Magma.Transport.Udp
- Magma.AF_XDP (Linux)
- Magma.NetMap (Linux)
- Magma.WinTun (Windows)
- Magma.PCap
- Magma.Network
- Magma.Common
- New component
- Documentation
- Other
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
description: How important is this feature to you?
options:
- Critical - blocking my project
- High - would significantly improve my workflow
- Medium - nice to have
- Low - minor improvement
validations:
required: true

- type: textarea
id: use-case
attributes:
label: Use Case
description: Describe your specific use case for this feature.
placeholder: I'm building a custom VPN solution that needs to...
validations:
required: true

- type: textarea
id: examples
attributes:
label: Example Usage
description: If applicable, provide example code showing how the feature would be used.
placeholder: |
var handler = new IcmpV6Handler(...);
handler.ProcessPacket(packet);
render: csharp

- type: textarea
id: references
attributes:
label: References
description: Links to relevant specifications, documentation, or prior art.
placeholder: |
- RFC 4443 (ICMPv6)
- https://example.com/protocol-spec

- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Are you willing to contribute to implementing this feature?
options:
- label: I am willing to submit a pull request for this feature
required: false

- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other context, screenshots, or information about the feature request.
124 changes: 124 additions & 0 deletions .github/ISSUE_TEMPLATE/task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Task
description: Create a task for project work (documentation, refactoring, testing, etc.)
title: "[Task]: "
labels: ["task"]
body:
- type: markdown
attributes:
value: |
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.

- type: textarea
id: description
attributes:
label: Task Description
description: A clear description of the task to be completed.
placeholder: Update documentation for AF_XDP setup on Ubuntu 24.04...
validations:
required: true

- type: dropdown
id: category
attributes:
label: Task Category
description: What type of task is this?
options:
- Documentation
- Testing
- Refactoring
- Performance optimization
- Build/CI improvements
- Dependency updates
- Code cleanup
- Security
- Other
validations:
required: true

- type: dropdown
id: component
attributes:
label: Related Component
description: Which component does this task relate to?
options:
- Magma.Link (Ethernet/ARP)
- Magma.Internet.Ip (IPv4/IPv6)
- Magma.Internet.Icmp
- Magma.Transport.Tcp
- Magma.Transport.Udp
- Magma.AF_XDP (Linux)
- Magma.NetMap (Linux)
- Magma.WinTun (Windows)
- Magma.PCap
- Magma.Network
- Magma.Common
- Documentation
- Build/CI
- Multiple components
- Other

- type: textarea
id: subtasks
attributes:
label: Sub-tasks
description: List specific sub-tasks or steps to complete this task (use markdown checkboxes).
placeholder: |
- [ ] Update README.md with new setup instructions
- [ ] Add code examples to documentation
- [ ] Update inline documentation
value: |
- [ ]

- type: textarea
id: acceptance
attributes:
label: Acceptance Criteria
description: Define what "done" means for this task.
placeholder: |
- Documentation is updated and builds successfully
- Code examples compile and run
- No broken links in documentation
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
description: How urgent is this task?
options:
- Critical
- High
- Medium
- Low

- type: textarea
id: dependencies
attributes:
label: Dependencies
description: List any dependencies or blockers for this task.
placeholder: |
- Depends on #123
- Blocked by feature implementation in #456

- type: textarea
id: phase
attributes:
label: Project Phase
description: Which project phase or milestone does this task belong to?
placeholder: Phase 0 (Foundation), Phase 1, etc.

- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Are you willing to work on this task?
options:
- label: I am willing to work on this task
required: false

- type: textarea
id: additional
attributes:
label: Additional Context
description: Any other information relevant to this task.
Loading
Loading