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
72 changes: 72 additions & 0 deletions .github/ISSUE_TEMPLATE/architecture_spike.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
name: Architecture Decision / Spike
about: Investigate a technical approach, evaluate options, or document an architecture decision
title: "[SPIKE] "
labels: investigation
assignees: ''
---

## Context

What is the problem or question that needs investigation? Why is this decision needed now?

## Options to Evaluate

### Option A: [Name]

- **Description**: How this option works
- **Pros**: Benefits
- **Cons**: Drawbacks
- **Effort**: Estimated complexity

### Option B: [Name]

- **Description**: How this option works
- **Pros**: Benefits
- **Cons**: Drawbacks
- **Effort**: Estimated complexity

### Option C: [Name] (if applicable)

- **Description**: How this option works
- **Pros**: Benefits
- **Cons**: Drawbacks
- **Effort**: Estimated complexity

## Decision Criteria

What factors will determine the best option?

- [ ] Performance impact
- [ ] Complexity / maintainability
- [ ] Ecosystem compatibility (.NET 10)
- [ ] Provider coverage (13 database providers)
- [ ] Breaking change impact
- [ ] Community/industry adoption
- [ ] Other: ___

## Scope

### In Scope

- What this investigation covers

### Out of Scope

- What this investigation does NOT cover

## Deliverables

- [ ] ADR document in `docs/architecture/adr/`
- [ ] Proof of concept / prototype
- [ ] Technical document in `docs/`
- [ ] Migration guide (if changing existing approach)
- [ ] Updated ROADMAP.md (if applicable)

## Time Box

Estimated investigation time: [e.g., 2 hours, 1 day]

## Related Issues

- #___ - Description
60 changes: 60 additions & 0 deletions .github/ISSUE_TEMPLATE/epic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
name: Epic
about: Group related work items that span multiple issues
title: "[EPIC] "
labels: epic
assignees: ''
---

## Objective

A clear description of what this epic achieves when complete (1-3 sentences).

## Motivation

Why is this epic needed? What business or technical value does it deliver?

## Scope

### In Scope

- What this epic covers

### Out of Scope

- What this epic explicitly does NOT cover

## Child Issues

> Link all sub-issues here. Create them first, then update this list.

### Phase 1: [Name]

- [ ] #___ - Description
- [ ] #___ - Description

### Phase 2: [Name]

- [ ] #___ - Description
- [ ] #___ - Description

## Acceptance Criteria

- [ ] All child issues completed
- [ ] Tests passing (coverage ≥85%)
- [ ] Zero build warnings
- [ ] Documentation updated
- [ ] CHANGELOG.md updated

## Milestone

Target milestone: [e.g., v0.13.0 - Security & Compliance]

## Dependencies

- [ ] #___ - Must be completed first
- [ ] External: [e.g., upstream library update]

## Related Issues

- #___ - Description
49 changes: 49 additions & 0 deletions .github/ISSUE_TEMPLATE/infrastructure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: Infrastructure / CI-CD
about: Build system, CI/CD workflows, Docker, tooling, and developer environment issues
title: "[INFRA] "
labels: area-ci-cd
assignees: ''
---

## Category

- [ ] CI/CD Workflow (GitHub Actions)
- [ ] Build System (MSBuild, .csproj, .slnx)
- [ ] Docker / Docker Compose
- [ ] Developer Tooling (CLI, scripts, dev containers)
- [ ] Test Infrastructure (fixtures, runners, parallelization)
- [ ] Package Publishing (NuGet)
- [ ] Repository Configuration (branch rules, templates)
- [ ] Other: ___

## Description

A clear description of the infrastructure issue or improvement.

## Component Affected

- **File(s)**: [e.g., `.github/workflows/quality-gate.yml`, `docker-compose.yml`]
- **Environment**: [e.g., GitHub Actions runner, local dev, Docker]

## Current Behavior

What currently happens (or doesn't work).

## Expected Behavior

What should happen after this issue is resolved.

## Impact

- **Developer Experience**: [How this affects day-to-day development]
- **CI/CD Time**: [Current duration → Expected duration, if applicable]
- **Reliability**: [How this affects build/test stability]

## Proposed Solution

High-level description of how to fix or improve this.

## Related Issues

- #___ - Description
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/refactoring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: Refactoring
about: Restructure existing code without changing external behavior
title: "[REFACTOR] "
labels: enhancement
assignees: ''
---

## Summary

A clear description of the refactoring (1-2 sentences).

## Motivation

Why is this refactoring needed? What problem does the current structure cause?

- [ ] Code duplication
- [ ] Poor separation of concerns
- [ ] Applying a design pattern (specify: ___)
- [ ] Simplifying complex code
- [ ] Improving testability
- [ ] Performance optimization
- [ ] Preparing for future feature work
- [ ] Other: ___

## Current Structure

Describe or show the current code organization.

```csharp
// Current approach (simplified)
```

## Proposed Structure

Describe or show the target code organization.

```csharp
// Proposed approach (simplified)
```

## Affected Files

- `src/Encina.*/...`
- `tests/Encina.*/...`

## Packages Affected

- [ ] Package 1
- [ ] Package 2

## Behavioral Guarantee

> Refactoring MUST NOT change external behavior. Describe how this is verified.

- [ ] Existing unit tests cover the refactored code
- [ ] Existing integration tests validate behavior
- [ ] New tests added to cover refactoring safety
- [ ] Contract tests verify public API unchanged

## Risk Assessment

- **Regression Risk**: [Low / Medium / High]
- **Affected Providers**: [All 13 / Specific subset]
- **Breaking Changes**: None (refactoring must not break public API)

## Related Issues

- #___ - Description
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/test_implementation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
name: Test Implementation
about: Plan new tests, benchmarks, load tests, or address coverage gaps
title: "[TEST] "
labels: area-testing
assignees: ''
---

## Test Category

- [ ] Unit Tests
- [ ] Integration Tests (Docker/Testcontainers)
- [ ] Property-Based Tests (FsCheck)
- [ ] Contract Tests
- [ ] Guard Clause Tests
- [ ] Load Tests (NBomber)
- [ ] Benchmark Tests (BenchmarkDotNet)
- [ ] Coverage Gap (below 85% target)

## Description

A clear description of the testing work needed.

## Packages / Providers Affected

- **Package(s)**: [e.g., Encina.Dapper.SqlServer, Encina.ADO.PostgreSQL]
- **Provider(s)**: [e.g., ADO-SqlServer, Dapper-PostgreSQL, EFCore-MySQL, MongoDB]

## Current Coverage

> Fill in if this is a coverage gap issue.

| Package | Line Coverage | Target | Gap |
|---------|:------------:|:------:|:---:|
| Example.Package | 62.3% | 85% | -22.7% |

## Infrastructure Required

- [ ] Docker / Testcontainers
- [ ] Real database (specify: SQLite / SQL Server / PostgreSQL / MySQL / MongoDB)
- [ ] Message broker (specify: RabbitMQ / Kafka / NATS / MQTT)
- [ ] NBomber load testing framework
- [ ] BenchmarkDotNet
- [ ] None (pure unit tests)

## Test Plan

### Tests to Implement

- [ ] Test 1: Description
- [ ] Test 2: Description

### Success Criteria

- [ ] All new tests pass
- [ ] Coverage meets ≥85% target (if coverage gap)
- [ ] No flaky tests introduced
- [ ] Tests run within acceptable time limits

## Collection Fixture (Integration Tests Only)

> Per CLAUDE.md: Integration tests MUST use shared `[Collection]` fixtures.

- **Collection**: [e.g., `ADO-PostgreSQL`, `Dapper-SqlServer`, `EFCore-MySQL`]
- **Fixture**: [e.g., `PostgreSqlFixture`, `SqlServerFixture`]

## Related Issues

- #___ - Description
10 changes: 5 additions & 5 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,10 @@
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.3" />
<PackageVersion Include="Microsoft.Extensions.Caching.Hybrid" Version="10.3.0" />
<PackageVersion Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="10.0.3" />
<PackageVersion Include="StackExchange.Redis" Version="2.10.14" />
<PackageVersion Include="StackExchange.Redis" Version="2.11.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" Version="3.3.4" />
<!-- Static Code Analyzers -->
<PackageVersion Include="Meziantou.Analyzer" Version="2.0.299" />
<PackageVersion Include="Meziantou.Analyzer" Version="2.0.302" />
<PackageVersion Include="SonarAnalyzer.CSharp" Version="10.19.0.132793" />
<PackageVersion Include="Roslynator.Analyzers" Version="4.15.0" />
<PackageVersion Include="xunit.analyzers" Version="1.27.0" />
Expand Down Expand Up @@ -126,7 +126,7 @@
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version="2.1.0" />
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Timer" Version="4.3.1" />
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues" Version="5.5.3" />
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.14.0" />
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.14.1" />
<!-- AWS Lambda -->
<PackageVersion Include="Amazon.Lambda.Core" Version="2.8.1" />
<PackageVersion Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.5" />
Expand All @@ -143,7 +143,7 @@
<PackageVersion Include="Testcontainers.Nats" Version="4.10.0" />
<PackageVersion Include="Testcontainers.LocalStack" Version="4.10.0" />
<!-- Aspire -->
<PackageVersion Include="Aspire.Hosting.Testing" Version="13.1.0" />
<PackageVersion Include="Aspire.Hosting.Testing" Version="13.1.1" />
<PackageVersion Include="Aspire.Hosting.PostgreSQL" Version="13.1.0" />
<!-- CLI -->
<PackageVersion Include="System.CommandLine" Version="2.0.3" />
Expand All @@ -156,7 +156,7 @@
<PackageVersion Include="Sentry" Version="5.5.0" />
<PackageVersion Include="Sentry.AspNetCore" Version="5.5.0" />
<PackageVersion Include="Sentry.OpenTelemetry" Version="5.5.0" />
<PackageVersion Include="Verify.XunitV3" Version="31.12.4" />
<PackageVersion Include="Verify.XunitV3" Version="31.13.0" />
<!-- Architecture Testing -->
<PackageVersion Include="TngTech.ArchUnitNET" Version="0.13.2" />
<PackageVersion Include="TngTech.ArchUnitNET.xUnitV3" Version="0.13.2" />
Expand Down
Loading