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
4 changes: 2 additions & 2 deletions .agents/agents/sdk-consumer-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

## Goal

Help a consuming repository adopt or troubleshoot `Purview.DotNetProjectSdk` correctly, without breaking existing build behaviour.
Help a consuming repository adopt or troubleshoot `Purview.BuildSdk` correctly, without breaking existing build behaviour.

## Workflow

1. Confirm the SDK is imported in `Directory.Build.props`/`Directory.Build.targets` via
`<Import Sdk="Purview.DotNetProjectSdk" Project="Sdk.props" />` and the matching `Sdk.targets` import.
`<Import Sdk="Purview.BuildSdk" Project="Sdk.props" />` and the matching `Sdk.targets` import.
2. Check pre-import bootstrap properties are set **before** the `Sdk.props` import when they must affect
evaluation: `NamespacePrefix`, `UsePackageJsonVersion`, `RootPackageJson`.
3. If version resolution looks wrong, verify `package.json` discovery: explicit `RootPackageJson`, then CI
Expand Down
2 changes: 1 addition & 1 deletion .agents/prompts/sdk-diagnose-agent-folder-copy.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# sdk-diagnose-agent-folder-copy (generic prompt spec)

Diagnose why the bundled `.agents/**` folder from `Purview.DotNetProjectSdk` did not appear at the expected
Diagnose why the bundled `.agents/**` folder from `Purview.BuildSdk` did not appear at the expected
destination in a consuming repository.

## Required behaviour
Expand Down
8 changes: 4 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This repository contains the `Purview.EventSourcing` framework, its incremental
- This file is the repository-wide source of truth for AI agents. More-specific `AGENTS.md` files, if added later, take precedence for their subtrees.
- `.github/copilot-instructions.md` bootstraps GitHub Copilot into this file; keep it aligned if instruction locations change.
- Follow explicit user instructions first, then the nearest applicable repository instructions, then established code patterns.
- Operate only in this repository unless the user explicitly expands the scope. `P:\GitHub\purview-dev\purview-sourcegeneratorframework` may be inspected as read-only reference material, but do not edit it or assume its conventions override this repository.
- Operate only in this repository unless the user explicitly expands the scope. `P:\GitHub\purview-dev\sourcegenerator-framework` may be inspected as read-only reference material, but do not edit it or assume its conventions override this repository.
- Never read, copy, log, or commit secrets from excluded files, environment variables, user profiles, local configuration, test output, or provider credentials.

## Repository boundaries and working tree safety
Expand Down Expand Up @@ -56,7 +56,7 @@ Do not introduce a second version source, dependency-version location, or parall
Use repository-local skills when their trigger applies:

- `dotnet-tunit` for writing TUnit tests and `tunit-test-runner` for executing or filtering them.
- `project-placement-defaults`, `sdk-configuration-reference`, and `sdk-project-behavior-and-detection` for project layout or `Purview.DotNetProjectSdk` behavior.
- `project-placement-defaults`, `sdk-configuration-reference`, and `sdk-project-behavior-and-detection` for project layout or `Purview.BuildSdk` behavior.
- `git-conventional-commits` for commit work and `lefthook-integration` for Git-hook changes.

## Architecture and domain invariants
Expand Down Expand Up @@ -127,7 +127,7 @@ Use repository-local skills when their trigger applies:
- Prefer backward-compatible additions. Do not rename, remove, narrow accessibility, or alter semantics without explicit approval and corresponding migration/release documentation.
- Centralize package versions in `Directory.Packages.props`; project files should normally contain versionless `PackageReference` entries.
- Reuse existing dependencies when practical. New dependencies require a clear need, compatible target frameworks, acceptable licensing/security posture, and correct public/private asset flow.
- Respect `Purview.DotNetProjectSdk` inference before adding manual properties or references. Repository-wide bootstrap properties that affect `Sdk.props` belong before the SDK import in `src/Directory.Build.props`.
- Respect `Purview.BuildSdk` inference before adding manual properties or references. Repository-wide bootstrap properties that affect `Sdk.props` belong before the SDK import in `src/Directory.Build.props`.
- Place source projects under `src/src` and test projects under `src/tests`, beside the closest peer. Follow established suffixes such as `.UnitTests`, `.IntegrationTests`, and `.PerformanceTests`. Performance harnesses are console projects consolidated under `src/src/Benchmarks` (`Benchmarks.csproj`), not test projects.
- Keep packability explicit and package metadata consistent. Verify package contents when changing build assets, analyzers, transitive targets, README files, or project-reference packing.

Expand All @@ -151,7 +151,7 @@ Use repository-local skills when their trigger applies:
dotnet test --project src/EventSourcing.slnx --configuration Debug --treenode-filter "/*/*/*/*" --ignore-exit-code 8
```

- PR validation restores and builds the Release solution, then runs the unit-test tree filter `/*/*/*/*[Category=Unit]` (the `Purview.DotNetProjectSdk` applies `[assembly: TUnit.Core.Category("Unit")]` to unit-test projects) and emits TRX results.
- PR validation restores and builds the Release solution, then runs the unit-test tree filter `/*/*/*/*[Category=Unit]` (the `Purview.BuildSdk` applies `[assembly: TUnit.Core.Category("Unit")]` to unit-test projects) and emits TRX results.
- Unit tests should cover domain logic, contracts, failure behavior, and regressions without external infrastructure.
- Source-generator tests should assert generated code and diagnostics using the existing testing framework.
- Provider integration tests use `src/tests/SharedTestingFramework` and Testcontainers or provider infrastructure. Run affected-provider tests for translation, persistence, concurrency, or serialization changes when infrastructure is available.
Expand Down
2 changes: 1 addition & 1 deletion Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ restore *args:
# Displays the current package version from package.json
[group('Build and Test')]
current_version:
echo "==> Current version: {{ GREEN }}{{ current_version }}{{ NORMAL }} (defined in package.json and automatically included in the build output through the Purview.DotNetProjectSdk package)"
echo "==> Current version: {{ GREEN }}{{ current_version }}{{ NORMAL }} (defined in package.json and automatically included in the build output through the Purview.BuildSdk package)"

# Run the source-generator performance harness (pass --benchmark for larger runs; requires Release for meaningful numbers)
[group('Performance Tests')]
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Purview EventSourcing

[![NuGet](https://img.shields.io/nuget/v/Purview.EventSourcing.svg)](https://www.nuget.org/packages/Purview.EventSourcing)
[![Release](https://github.com/purview-dev/eventsourcing/actions/workflows/release.yml/badge.svg)](https://github.com/purview-dev/eventsourcing/actions/workflows/release.yml)
[![Release](https://github.com/purview-dev/event-sourcing/actions/workflows/release.yml/badge.svg)](https://github.com/purview-dev/event-sourcing/actions/workflows/release.yml)

Purview EventSourcing is a .NET event sourcing framework for building aggregate-based applications with provider-agnostic store facades, source-generated aggregates, transaction coordination, and storage packages for SQL Server, PostgreSQL, MongoDB, Azure Storage, Azure Cosmos DB, and in-memory.

Expand Down
2 changes: 1 addition & 1 deletion docs/wiki/Release-Flow.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ and releases. Consuming repositories own configuration (through `purview-build.j
Integration tests are never discovered in CI: `purview-build.json` sets `Build:TestPatterns` to `*Tests.csproj`,
`Build:TestProjects` to `*UnitTests.csproj`, and `Build:TestFilter` to
`/*/*/*/*[Category=Unit]`, so only unit-test
projects (tagged `[Category=Unit]` by the `Purview.DotNetProjectSdk`) are executed; provider integration tests
projects (tagged `[Category=Unit]` by the `Purview.BuildSdk`) are executed; provider integration tests
(which require Docker/Testcontainers) run only locally via `just test`.
The performance harnesses live under `src/src/Benchmarks` (a single non-test `Benchmarks.csproj`) and run locally
via `just perf-source-generator` / `just perf-runtime` / `just perf-sql-server`.
Expand Down
2 changes: 1 addition & 1 deletion global.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"allowPrerelease": false
},
"msbuild-sdks": {
"Purview.DotNetProjectSdk": "1.0.0-prerelease.55"
"Purview.BuildSdk": "1.0.0-prerelease.56"
},
"test": {
"runner": "Microsoft.Testing.Platform"
Expand Down
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
{
"name": "purview-eventsourcing",
"version": "2.0.0-prerelease.32",
"name": "purview-event-sourcing",
"version": "2.0.0-prerelease.33",
"license": "MIT",
"author": {
"name": "Kieron Lanning",
"url": "https://kieronlanning.dev/"
},
"homepage": "https://purview.dev/projects/event-sourcing/",
"bugs": {
"url": "https://github.com/purview-dev/eventsourcing/issues"
"url": "https://github.com/purview-dev/event-sourcing/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/purview-dev/eventsourcing.git"
"url": "git+https://github.com/purview-dev/event-sourcing.git"
}
}
4 changes: 2 additions & 2 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<NamespacePrefix>Purview.EventSourcing</NamespacePrefix>
</PropertyGroup>

<Import Sdk="Purview.DotNetProjectSdk" Project="Sdk.props" />
<Import Sdk="Purview.BuildSdk" Project="Sdk.props" />

<PropertyGroup>
<TargetsForTfmSpecificBuildOutput>
Expand Down Expand Up @@ -40,7 +40,7 @@
<Authors>Kieron Lanning</Authors>
<Company>Purview-Dev</Company>
<Copyright>Copyright © $(CurrentYear) Purview-Dev</Copyright>
<RepositoryUrl>https://github.com/purview-dev/eventsourcing.git</RepositoryUrl>
<RepositoryUrl>https://github.com/purview-dev/event-sourcing.git</RepositoryUrl>
<PackageProjectUrl>$(PurviewProjectUrl)</PackageProjectUrl>
<RepositoryType>git</RepositoryType>
<PackageIcon>purview-logo.png</PackageIcon>
Expand Down
2 changes: 1 addition & 1 deletion src/Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<Project>
<Import Sdk="Purview.DotNetProjectSdk" Project="Sdk.targets" />
<Import Sdk="Purview.BuildSdk" Project="Sdk.targets" />

<!-- Enforce XML documentation on public API for packable projects. IsPackable is only known after the
project body has been evaluated, so this cannot live in Directory.Build.props. The SDK re-adds CS1591
Expand Down
8 changes: 4 additions & 4 deletions src/src/Admin.API/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ Request validation uses [ZodSharp](https://github.com/RemiBou/ZodSharp); `ZodSha

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin client](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Client/Sdk/README.md): `Purview.EventSourcing.Admin.Client`
- [Admin security](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
- [Admin UI](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin client](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Client/Sdk/README.md): `Purview.EventSourcing.Admin.Client`
- [Admin security](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
- [Admin UI](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- Storage adapters: `Purview.EventSourcing.Admin.SqlServer`, `Purview.EventSourcing.Admin.MongoDB`, `Purview.EventSourcing.Admin.Postgres`, `Purview.EventSourcing.Admin.AzureStorage`
8 changes: 4 additions & 4 deletions src/src/Admin.Abstractions/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Event history uses separate `ViewEvents` and `ViewEventPayloads` permissions. Me

## Related packages

- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin security](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
- [Admin UI](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- [Provider feature matrix](https://github.com/purview-dev/eventsourcing/blob/main/docs/wiki/Provider-Feature-Matrix.md)
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin security](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
- [Admin UI](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- [Provider feature matrix](https://github.com/purview-dev/event-sourcing/blob/main/docs/wiki/Provider-Feature-Matrix.md)
4 changes: 2 additions & 2 deletions src/src/Admin.AzureStorage/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ builder.Services.AddPurviewEventSourcingAdminAzureStorage();

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
4 changes: 2 additions & 2 deletions src/src/Admin.Client/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,5 @@ Both the OpenAPI document and the generated client are committed, so consumers g

## Related packages

- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin site](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin site](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
4 changes: 2 additions & 2 deletions src/src/Admin.MongoDB/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@ An `IMongoClient` must be registered (for example, via `AddSingleton<IMongoClien

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
4 changes: 2 additions & 2 deletions src/src/Admin.Postgres/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@ builder.Services.AddPurviewEventSourcingAdminPostgres();

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
6 changes: 3 additions & 3 deletions src/src/Admin.Security/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,6 @@ builder.Services

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin UI](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin UI](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Site/Sdk/README.md): `Purview.EventSourcing.Admin.Site`
8 changes: 4 additions & 4 deletions src/src/Admin.Site/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Authorization is enforced at the API layer using the policies defined in `Purvie

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin client](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Client/Sdk/README.md): `Purview.EventSourcing.Admin.Client`
- [Admin security](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [Admin client](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Client/Sdk/README.md): `Purview.EventSourcing.Admin.Client`
- [Admin security](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Security/Sdk/README.md): `Purview.EventSourcing.Admin.Security`
6 changes: 3 additions & 3 deletions src/src/Admin.SqlServer/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ builder.Services.AddPurviewEventSourcingAdminSqlServer();

## Related packages

- [Admin abstractions](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/eventsourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [SQL Server guide](https://github.com/purview-dev/eventsourcing/blob/main/docs/wiki/SQL-Server-Guide.md)
- [Admin abstractions](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.Abstractions/Sdk/README.md): `Purview.EventSourcing.Admin.Abstractions`
- [Admin API](https://github.com/purview-dev/event-sourcing/blob/main/src/src/Admin.API/Sdk/README.md): `Purview.EventSourcing.Admin.Api`
- [SQL Server guide](https://github.com/purview-dev/event-sourcing/blob/main/docs/wiki/SQL-Server-Guide.md)
2 changes: 1 addition & 1 deletion src/src/AzureStorage/Sdk/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ builder.Services.AddAzureStorageEventStore();

- [Homepage](https://purview.dev/projects/event-sourcing/)
- [Documentation](https://purview.dev/docs/event-sourcing/)
- [Provider feature matrix](https://github.com/purview-dev/eventsourcing/blob/main/docs/wiki/Provider-Feature-Matrix.md)
- [Provider feature matrix](https://github.com/purview-dev/event-sourcing/blob/main/docs/wiki/Provider-Feature-Matrix.md)
Loading