$ git log --oneline
Changelog
Every release across all Socigy.OpenSource packages. Newest first.
1 May 2026
Socigy.OpenSource.DBv0.1.81stable
Added
- —Initial public release of `Socigy.OpenSource.DB`.
- —Roslyn incremental source generator that produces typed `Insert()`, `Query()`, `Update()`, and `Delete()` extension methods from annotated C# classes at build time.
- —Attribute-based schema definition: `[Table]`, `[PrimaryKey]`, `[Column]`, `[Default]`, `[Nullable]`, `[Ignore]`, `[ForeignKey]`, `[Unique]`, `[Check]`, `[StringLength]`, `[Min]`, `[Max]`, and `[Renamed]`.
- —Fluent query builder with LINQ expression support for parameterised WHERE clauses.
- —JOIN support via `InnerJoin()`, `LeftJoin()`, `RightJoin()`, and `FullJoin()` with expression-based ON conditions.
- —Set operations: `Union()`, `UnionAll()`, `Intersect()`, and `Except()` across two compatible queries via the `ICompiledQuery` interface.
- —Value convertors: `IDbValueConvertor<T>` interface and `[ValueConvertor]` attribute for custom read/write transformation per column.
- —Procedure mapping: `.sql` files declared as `<AdditionalFiles>` are parsed by the generator and produce strongly-typed async method wrappers in `{Assembly}.Socigy.Generated.Procedures`.
- —`DateOnly` and `TimeOnly` support, mapping to PostgreSQL `DATE` and `TIME WITHOUT TIME ZONE` respectively.
- —`[FlaggedEnum]` attribute for flags enums — generates a junction table and syncs rows on INSERT/SELECT.
- —`[JsonColumn(typeof(TContext))]` and `[RawJsonColumn]` attributes for JSONB columns with optional AOT-safe typed serialisation.
- —`[AutoIncrement]` attribute and `CREATE SEQUENCE` generation for integer sequence columns.
- —CLI migration tool (`Socigy.OpenSource.DB.Tool`) that analyses compiled assemblies and generates PostgreSQL DDL, bundled inside the NuGet meta-package.
- —NuGet meta-package pattern: a single `PackageReference` installs the Core runtime, the Roslyn source generator, and the CLI tool.
- —GitHub Actions CI workflow: runs tests against a real PostgreSQL 14 service container and publishes to NuGet.org when the `PackageVersion` changes.
Initial development — pre-release
← all packages1 releases