Skip to content
Open
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
111 changes: 111 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: Bug Report
description: Report a bug in ArchUnitNET
title: "[Bug]: "
labels: ["needs-triage", "kind/bug"]
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to report a bug in ArchUnitNET!
Please fill out the sections below to help us resolve the issue.
- type: textarea
id: description
attributes:
label: Description
description: A clear and detailed description of the bug.
placeholder: What went wrong?
validations:
required: true
- type: textarea
id: minimal-working-example
attributes:
label: Minimal Working Example
description: |
Provide a minimal, reproducible example that demonstrates the bug.
This should include the smallest possible code snippet and any necessary setup
(e.g., test classes, ArchUnitNET rules, or configuration) needed to reproduce the issue.
placeholder: |
using ArchUnitNET.Domain;
using ArchUnitNET.Fluent;
using ArchUnitNET.Loader;
using ArchUnitNET.xUnit;
using Xunit;
using static ArchUnitNET.Fluent.ArchRuleDefinition;

internal interface IExampleInterface { }

internal class ExampleClass : IExampleInterface { }

namespace ExampleTest
{
public class ExampleArchUnitTest
{
private static readonly Architecture Architecture = new ArchLoader()
.LoadAssemblies(typeof(ExampleClass).Assembly)
.Build();

private readonly IObjectProvider<IType> ExampleLayer = Types()
.That()
.ResideInAssembly("ExampleAssembly")
.As("Example Layer");

private readonly IObjectProvider<Class> ExampleClasses = Classes()
.That()
.ImplementInterface(typeof(IExampleInterface))
.As("Example Classes");

[Fact]
public void TypesShouldBeInCorrectLayer()
{
IArchRule exampleClassesShouldBeInExampleLayer = Classes()
.That()
.Are(ExampleClasses)
.Should()
.Be(ExampleLayer);

exampleClassesShouldBeInExampleLayer.Check(Architecture);
}
}
}
render: csharp
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected Behavior
description: What did you expect to happen?
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: Actual Behavior
description: What actually happened? Include any error messages or stack traces if applicable.
placeholder: |
Include the full exception message and stack trace if available.
validations:
required: true
- type: input
id: archunitnet-version
attributes:
label: ArchUnitNET Version
description: Which version of ArchUnitNET are you using?
placeholder: e.g., 0.12.0
validations:
required: true
- type: input
id: dotnet-version
attributes:
label: .NET Version
description: Which version of .NET are you targeting?
placeholder: e.g., .NET 10.0
validations:
required: false
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Any other context about the problem (workarounds tried, related issues, etc.).
validations:
required: false
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: true
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Feature Request
description: Are you missing a feature in ArchUnitNET?
title: "[Feature]: "
labels: ["needs-triage", "kind/feature"]
body:
- type: markdown
attributes:
value: |
Thank you for helping to improve ArchUnitNET!
Please fill out the sections below to help us understand your feature request.
- type: textarea
id: description
attributes:
label: Description
description: Provide an overview of the requested functionality.
placeholder: I would like to see a feature that allows me to...
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Use Case(s)
description: Provide any relevant use-cases.
placeholder: This feature would be useful in scenarios where...
validations:
required: false
Loading