From 27342ba13a6ddcd77ecddd237274e1ca6cfd6172 Mon Sep 17 00:00:00 2001 From: Piotr Zajac Date: Sun, 12 Apr 2026 23:34:45 +0200 Subject: [PATCH] docs(backlog): Update backlog --- ...1 - Add-PR-template-and-issue-templates.md | 0 ...ages-across-all-projects-in-a-single-PR.md | 0 .../task-11 - Fix-snyk-workflow.md | 0 ...liminate-intermediate-array-allocations.md | 0 .../task-2 - Add-CONTRIBUTING.md.md | 0 .../task-3 - Enforce-Conventional-Commits.md | 0 .../task-4 - Add-AI-powered-PR-review.md | 0 ...messages-to-follow-Conventional-Commits.md | 0 ...ons-workflow-to-use-dotnet-tool-restore.md | 0 ...pgrade-test-projects-from-net8-to-net10.md | 45 +++++++++++++ .../tasks/task-14 - Prepare-documentation.md | 65 +++++++++++++++++++ AGENTS.md | 2 +- 12 files changed, 111 insertions(+), 1 deletion(-) rename .backlog/{tasks => completed}/task-1 - Add-PR-template-and-issue-templates.md (100%) rename .backlog/{tasks => completed}/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md (100%) rename .backlog/{tasks => completed}/task-11 - Fix-snyk-workflow.md (100%) rename .backlog/{tasks => completed}/task-12 - Eliminate-intermediate-array-allocations.md (100%) rename .backlog/{tasks => completed}/task-2 - Add-CONTRIBUTING.md.md (100%) rename .backlog/{tasks => completed}/task-3 - Enforce-Conventional-Commits.md (100%) rename .backlog/{tasks => completed}/task-4 - Add-AI-powered-PR-review.md (100%) rename .backlog/{tasks => completed}/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md (100%) rename .backlog/{tasks => completed}/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md (100%) create mode 100644 .backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md create mode 100644 .backlog/tasks/task-14 - Prepare-documentation.md diff --git a/.backlog/tasks/task-1 - Add-PR-template-and-issue-templates.md b/.backlog/completed/task-1 - Add-PR-template-and-issue-templates.md similarity index 100% rename from .backlog/tasks/task-1 - Add-PR-template-and-issue-templates.md rename to .backlog/completed/task-1 - Add-PR-template-and-issue-templates.md diff --git a/.backlog/tasks/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md b/.backlog/completed/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md similarity index 100% rename from .backlog/tasks/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md rename to .backlog/completed/task-10 - Ensure-dependabot-updates-NuGet-packages-across-all-projects-in-a-single-PR.md diff --git a/.backlog/tasks/task-11 - Fix-snyk-workflow.md b/.backlog/completed/task-11 - Fix-snyk-workflow.md similarity index 100% rename from .backlog/tasks/task-11 - Fix-snyk-workflow.md rename to .backlog/completed/task-11 - Fix-snyk-workflow.md diff --git a/.backlog/tasks/task-12 - Eliminate-intermediate-array-allocations.md b/.backlog/completed/task-12 - Eliminate-intermediate-array-allocations.md similarity index 100% rename from .backlog/tasks/task-12 - Eliminate-intermediate-array-allocations.md rename to .backlog/completed/task-12 - Eliminate-intermediate-array-allocations.md diff --git a/.backlog/tasks/task-2 - Add-CONTRIBUTING.md.md b/.backlog/completed/task-2 - Add-CONTRIBUTING.md.md similarity index 100% rename from .backlog/tasks/task-2 - Add-CONTRIBUTING.md.md rename to .backlog/completed/task-2 - Add-CONTRIBUTING.md.md diff --git a/.backlog/tasks/task-3 - Enforce-Conventional-Commits.md b/.backlog/completed/task-3 - Enforce-Conventional-Commits.md similarity index 100% rename from .backlog/tasks/task-3 - Enforce-Conventional-Commits.md rename to .backlog/completed/task-3 - Enforce-Conventional-Commits.md diff --git a/.backlog/tasks/task-4 - Add-AI-powered-PR-review.md b/.backlog/completed/task-4 - Add-AI-powered-PR-review.md similarity index 100% rename from .backlog/tasks/task-4 - Add-AI-powered-PR-review.md rename to .backlog/completed/task-4 - Add-AI-powered-PR-review.md diff --git a/.backlog/tasks/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md b/.backlog/completed/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md similarity index 100% rename from .backlog/tasks/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md rename to .backlog/completed/task-8 - Fix-Dependabot-commit-messages-to-follow-Conventional-Commits.md diff --git a/.backlog/tasks/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md b/.backlog/completed/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md similarity index 100% rename from .backlog/tasks/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md rename to .backlog/completed/task-9 - Fix-test-mutations-workflow-to-use-dotnet-tool-restore.md diff --git a/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md b/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md new file mode 100644 index 00000000..2323d8e0 --- /dev/null +++ b/.backlog/tasks/task-13 - Upgrade-test-projects-from-net8-to-net10.md @@ -0,0 +1,45 @@ +--- +id: TASK-13 +title: 'Upgrade test projects from net8.0 to net10.0' +status: To Do +assignee: [] +created_date: '2026-04-12' +labels: + - feature +dependencies: [] +priority: low +--- + +## Description + + +Replace `net8.0` with `net10.0` in all four test projects. .NET 10 is LTS (supported until November 2028), making it the right long-term target. .NET 9 STS reaches end of support in May 2026 and is not worth targeting. .NET 8 LTS ends November 2026. Library projects already target `netstandard2.0`/`netstandard2.1` which covers all modern .NET versions — no change is needed there. + +**Current state:** + +- Library projects (Core, AutoMoq, AutoFakeItEasy, AutoNSubstitute): `netstandard2.0;netstandard2.1` + `net472;net48` on Windows +- Test projects (all four `*.Tests`): `net8.0` + `net472;net48` on Windows + +**Proposed change:** + +- Replace `net8.0` with `net10.0` in all four test projects +- Verify all dependencies support `net10.0` (AutoFixture, xUnit, Moq, FakeItEasy, NSubstitute, Microsoft.NET.Test.Sdk) +- Update CI (`windows-latest` runner already supports .NET 10) +- Update `AGENTS.md` Target Frameworks table + + +## Acceptance Criteria + +- [ ] #1 `net10.0` replaces `net8.0` in the `` in all four test `.csproj` files +- [ ] #2 All tests pass across `net10.0`, `net472`, and `net48` +- [ ] #3 CI pipeline passes without errors on all framework slices +- [ ] #4 `AGENTS.md` Target Frameworks table is updated to reflect `net10.0` for test projects + + +## Files Affected + +- `src/Objectivity.AutoFixture.XUnit2.Core.Tests/Objectivity.AutoFixture.XUnit2.Core.Tests.csproj` +- `src/Objectivity.AutoFixture.XUnit2.AutoMoq.Tests/Objectivity.AutoFixture.XUnit2.AutoMoq.Tests.csproj` +- `src/Objectivity.AutoFixture.XUnit2.AutoFakeItEasy.Tests/Objectivity.AutoFixture.XUnit2.AutoFakeItEasy.Tests.csproj` +- `src/Objectivity.AutoFixture.XUnit2.AutoNSubstitute.Tests/Objectivity.AutoFixture.XUnit2.AutoNSubstitute.Tests.csproj` +- `AGENTS.md` (Target Frameworks table) diff --git a/.backlog/tasks/task-14 - Prepare-documentation.md b/.backlog/tasks/task-14 - Prepare-documentation.md new file mode 100644 index 00000000..fa69a5fb --- /dev/null +++ b/.backlog/tasks/task-14 - Prepare-documentation.md @@ -0,0 +1,65 @@ +--- +id: TASK-14 +title: 'feat(docs): Migrate README into structured /docs site served via GitHub Pages' +status: To Do +assignee: [] +created_date: '2026-04-12' +labels: + - doc +dependencies: [] +priority: low +--- + +## Description + + +All documentation currently lives in `README.md` — a single flat file covering installation, all attributes, data filtering attributes, and tips & tricks. As the library grows this becomes hard to navigate and limits discoverability. + +**Goal:** Migrate `README.md` content into a structured documentation site under a `/docs` folder, served via GitHub Pages with a dedicated GitHub Actions workflow. + +**Phase 1 — Investigation (required before implementation):** +Evaluate and select a documentation tool. Candidates: + +| Tool | Runtime | Notes | +| --- | --- | --- | +| [MkDocs + Material](https://squidfunk.github.io/mkdocs-material/) | Python | Markdown-native, mature, excellent search, widely used in OSS | +| [VitePress](https://vitepress.dev/) | Node.js | Vue-powered, fast, clean default theme | +| [Docusaurus](https://docusaurus.io/) | Node.js | React-powered, more opinionated, better for larger doc sets | + +Selection criteria: Markdown-native, GitHub Pages compatible, minimal config, good built-in search, low maintenance burden, minimal CI runtime dependency. + +**Phase 2 — Implementation:** + +1. **Create `/docs` folder** — break `README.md` content into logical pages, e.g.: + - Getting started (installation, quick example) + - Attributes: `AutoMockData`, `InlineAutoMockData`, `MemberAutoMockData` + - Parameter attributes: `Frozen`, `IgnoreVirtualMembers`, `CustomizeWith` + - Data filtering attributes: `Except`, `PickFromRange`, `PickFromValues`, `PickNegative` + - Tips & tricks +2. **Add tool config** (e.g. `mkdocs.yml`, `vitepress.config.ts`) at the repo root or `/docs`. +3. **Add GitHub Actions workflow** under `.github/workflows/docs.yml` — build and deploy to GitHub Pages on push to `master` using `actions/upload-pages-artifact` + `actions/deploy-pages`. **Requires explicit approval before implementation** (per `AGENTS.md`). +4. **Slim down `README.md`** — keep project summary, badges, and a link to the full docs site. + +**Constraints:** + +- Docs build workflow can run on `ubuntu-latest` (CI currently runs on `windows-latest` for .NET Framework — docs are independent). +- Changes to `.github/workflows/` require explicit approval before implementation. + + + +## Acceptance Criteria + + +- [ ] #1 A documentation tool is selected and justified based on the evaluation criteria above +- [ ] #2 `/docs` folder exists with content migrated from `README.md` into logical pages +- [ ] #3 A GitHub Actions workflow builds and deploys the site to GitHub Pages on push to `master` +- [ ] #4 GitHub Pages is enabled on the repository and the site is publicly accessible +- [ ] #5 `README.md` is slimmed down to a project summary with a link to the docs site + + +## Files Affected + +- `/docs/` (new folder) +- `README.md` (slimmed down) +- `.github/workflows/docs.yml` (new — requires explicit approval) +- Tool-specific config file at repo root (e.g. `mkdocs.yml`, `vitepress.config.ts`) diff --git a/AGENTS.md b/AGENTS.md index ccbd8b95..0a4aa497 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -441,7 +441,7 @@ These rules apply to all AI coding assistants working in this repository. ### Before Making Changes - **Propose before acting** on any non-trivial change (new attribute, refactor, CI change). Describe the approach and wait for approval. -- **Suggest creating a backlog task** if one does not already exist before implementation begins. Search the backlog first to avoid duplicates. +- **Suggest creating a backlog task** if one does not already exist before implementation begins. Search the backlog first to avoid duplicates. Use short, plain-English titles (e.g. "Prepare documentation", "Upgrade test projects to net10.0") — do not apply Conventional Commits prefixes to task titles. - **Suggest a branch checkout** for any non-trivial change before implementation begins. Use the Conventional Commits type as a prefix and a short kebab-case description, e.g. `git checkout -b fix/enumerable-extensions-allocation`. Common prefixes: `feat/`, `fix/`, `refactor/`, `chore/`, `ci/`, `docs/`. - **Prefer `dotnet build` over reading files** to verify correctness — the analyser stack catches style and correctness issues that are hard to spot by inspection alone.