diff --git a/.github/ISSUE_TEMPLATE/architecture_spike.md b/.github/ISSUE_TEMPLATE/architecture_spike.md new file mode 100644 index 00000000..21a4aea9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/architecture_spike.md @@ -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 diff --git a/.github/ISSUE_TEMPLATE/epic.md b/.github/ISSUE_TEMPLATE/epic.md new file mode 100644 index 00000000..00da4c3a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/epic.md @@ -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 diff --git a/.github/ISSUE_TEMPLATE/infrastructure.md b/.github/ISSUE_TEMPLATE/infrastructure.md new file mode 100644 index 00000000..9ac7c5ff --- /dev/null +++ b/.github/ISSUE_TEMPLATE/infrastructure.md @@ -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 diff --git a/.github/ISSUE_TEMPLATE/refactoring.md b/.github/ISSUE_TEMPLATE/refactoring.md new file mode 100644 index 00000000..769a7c87 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/refactoring.md @@ -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 diff --git a/.github/ISSUE_TEMPLATE/test_implementation.md b/.github/ISSUE_TEMPLATE/test_implementation.md new file mode 100644 index 00000000..79ddfde4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/test_implementation.md @@ -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 diff --git a/Directory.Packages.props b/Directory.Packages.props index ab33855f..3b5264b2 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -33,10 +33,10 @@ - + - + @@ -126,7 +126,7 @@ - + @@ -143,7 +143,7 @@ - + @@ -156,7 +156,7 @@ - +