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
25 changes: 25 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Code Owners for PatternKit
# These users will be automatically requested for review when PRs are opened

# Global owners
* @jerrettdavis

# Workflows and CI/CD
/.github/ @jerrettdavis

# Documentation
/docs/ @jerrettdavis
*.md @jerrettdavis

# Core library
/src/PatternKit.Core/ @jerrettdavis

# Generators
/src/PatternKit.Generators/ @jerrettdavis
/src/PatternKit.Generators.Abstractions/ @jerrettdavis

# Examples
/src/PatternKit.Examples/ @jerrettdavis

# Tests
/test/ @jerrettdavis
122 changes: 122 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: Bug Report
description: File a bug report to help us improve PatternKit
title: "[Bug]: "
labels: ["bug", "triage"]
assignees:
- jerrettdavis

body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!

- type: textarea
id: description
attributes:
label: Description
description: A clear and concise description of what the bug is.
placeholder: Tell us what happened!
validations:
required: true

- type: textarea
id: reproduce
attributes:
label: Steps to Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Create a pattern with '...'
2. Call method '....'
3. Pass parameters '....'
4. See error
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual Behavior
description: What actually happened instead.
validations:
required: true

- type: dropdown
id: component
attributes:
label: Component
description: Which component is affected?
options:
- Core Library
- Generators
- Source Generation
- Behavioral Patterns
- Creational Patterns
- Structural Patterns
- Documentation
- Examples
- Other
validations:
required: true

- type: input
id: version
attributes:
label: Version
description: What version of PatternKit are you using?
placeholder: "0.1.0"
validations:
required: true

- type: dropdown
id: dotnet-version
attributes:
label: .NET Version
description: What version of .NET are you using?
options:
- ".NET 10.0"
- ".NET 9.0"
- Other
validations:
required: true

- type: input
id: os
attributes:
label: Operating System
description: What operating system are you using?
placeholder: "Windows 11, Ubuntu 22.04, macOS 14"
validations:
required: true

- type: textarea
id: code-sample
attributes:
label: Code Sample
description: Please provide a minimal code sample that reproduces the issue.
render: csharp
placeholder: |
var strategy = Strategy<int, string>.Create()
.When(i => i > 0).Then(i => "positive")
.Build();

- type: textarea
id: logs
attributes:
label: Logs / Stack Trace
description: Please copy and paste any relevant log output or stack traces.
render: shell

- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context about the problem here.
104 changes: 104 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Feature Request
description: Suggest an idea for PatternKit
title: "[Feature]: "
labels: ["enhancement", "triage"]
assignees:
- jerrettdavis

body:
- type: markdown
attributes:
value: |
Thanks for suggesting a new feature!

- type: textarea
id: problem
attributes:
label: Problem Statement
description: Is your feature request related to a problem? Please describe.
placeholder: I'm always frustrated when...
validations:
required: true

- type: textarea
id: solution
attributes:
label: Proposed Solution
description: Describe the solution you'd like.
placeholder: A clear and concise description of what you want to happen.
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives Considered
description: Describe alternatives you've considered.
placeholder: A clear and concise description of any alternative solutions or features you've considered.

- type: dropdown
id: component
attributes:
label: Component
description: Which component would this feature affect?
options:
- Core Library
- Generators
- Source Generation
- New Pattern (Behavioral)
- New Pattern (Creational)
- New Pattern (Structural)
- Documentation
- Examples
- Build/CI
- Other
validations:
required: true

- type: dropdown
id: priority
attributes:
label: Priority
description: How important is this feature to you?
options:
- Low (Nice to have)
- Medium (Would improve workflow)
- High (Blocking current work)
- Critical (Blocking production use)
validations:
required: true

- type: checkboxes
id: contribution
attributes:
label: Contribution
description: Are you willing to contribute this feature?
options:
- label: I am willing to submit a PR to implement this feature
- label: I can help test this feature when implemented

- type: textarea
id: use-case
attributes:
label: Use Case
description: Describe a specific use case for this feature.
placeholder: |
As a [developer type], I want to [action] so that [benefit].

- type: textarea
id: code-example
attributes:
label: Example Usage (Optional)
description: If applicable, show how you envision using this feature.
render: csharp
placeholder: |
// Example of how the feature would be used
var pattern = NewPattern<T>.Create()
.Configure(...)
.Build();

- type: textarea
id: additional
attributes:
label: Additional Context
description: Add any other context, mockups, or examples about the feature request here.
48 changes: 48 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Description

Please include a summary of the changes and which issue is fixed. Include relevant motivation and context.

Fixes # (issue)

## Type of Change

Please delete options that are not relevant.

- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring
- [ ] Build/CI changes

## How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

- [ ] Unit tests
- [ ] Integration tests
- [ ] Manual testing

**Test Configuration**:
- .NET version:
- OS:

## Checklist

- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published

## Screenshots (if applicable)

Add screenshots to help explain your changes.

## Additional Context

Add any other context about the pull request here.
Loading
Loading