Repository navigation
Releases: Cratis/Fundamentals.Go
Releases · Cratis/Fundamentals.Go
Release list
Release v0.3.2
Changed
- The enum compatibility reference distinguishes historical source behavior, newer source behavior and packaged Chronicle serializer/schema outcomes, without treating them as equivalent or implying Go enum support. (part of #17)
Fixed
- Constructor-planning diagnostics for duplicate aliased existing registrations remain stable when registration order changes, while preserving duplicate rejection. (#45)
Release v0.3.1
Added
- A compiled package-loading recipe demonstrates constructor planning with coherent type identity, explicit lifetime directives and separate loading errors and planner diagnostics. (#42)
Fixed
- Concurrent service resolution shares failed construction errors when owned-result cleanup reports cancellation, instead of silently retrying. Genuine construction cancellation still permits retry, and cleanup errors remain inspectable. (#43)
Release v0.3.0
Added
concepts.ParseDotNetGUIDexplicitly converts .NET 10.0.12Guid.Parseinput forms to RFC-order UUID values. It supports N/D/B/P/X notation and the pinned runtime's compatibility behaviour without wideningParseUUID, JSON/text decoding, SQL scanning or consumer admission policies. (#28)- Pinned C# and typed-JavaScript dictionary-key fixtures, an opt-in reproducer and a compatibility reference covering embedded JSON property names, key equality, escaping and read/write/access differences. This evidence does not introduce a Go dictionary codec or shared serializer. (#18)
Changed
- Developer guides and installation references cover the v0.3.0 compatibility release while keeping historical fixture profiles and unsupported runtime/schema claims distinct. (#28)
- Repository-local quality gates select native Go build, vet and test phases for the root and recipes modules by default, rather than treating opt-in contract reproducers as a managed frontend application. (#29)
Release v0.2.0
Added
concepts/conceptstypesrecognizes domain concepts fromgo/typesusing the same scalar kinds and declaration rules as runtime recognition, for generators and analysis tools. (#15)dependencyinjection/bindingtypesplans constructor bindings, lifetimes and interface forwarding from checked Go packages and explicit configuration, with stable diagnostics. Generators own rendering; analysis never runs constructors. (part of #14)- Package
namingprovides acronym-friendly camel case, Pascal case and non-pluralizing default, camel-case and namespaced policies based on C# Fundamentals. Serializer defaults remain application-owned. (part of #21) - An unpublished
recipesmodule demonstrates UUID-library conversions, resolver-only samber/do and dig bridges, Fx hosting of the Fundamentals provider, and package loading for compile-time concept recognition. Optional dependencies stay outside the core module. (#22)
Changed
- Module gates cover explicitly allow-listed nested modules. Publishable modules have independent releases and protected tag prefixes; unpublished recipes cannot be released and may use the narrowly scoped local-root replacement. (part of #16)
Release v0.1.0
The first release of Fundamentals.Go: the shared domain values, concept recognition, correlation context and optional dependency injection that Arc.Go and Chronicle.Go build on, matching C# Cratis Fundamentals where both products use it. Requires Go 1.26 or later and has no dependencies beyond the standard library.
Added
- Package
conceptswithUUID,DateOnly,TimeOnlyandTimeSpan, using the canonical .NET wire forms: lowercase dashed UUIDs in RFC byte order,yyyy-MM-dddates, 100 nsTimeOnlyprecision, andTimeSpanin the .NET constant format across the full signed tick range. Parsing is strict and failure-atomic, and JSONnullis rejected for non-nullable values. (#2) concepts.Concept[T]for declaring a domain value's scalar representation,concepts.Underlyingfor recognizing concepts and shared scalars from type metadata alone (exact scalar type,ScalarKind, pointer depth, and inspectable*TypeErrorreasons with stable values), andconcepts.CheckJSONfor validating encoded concept values against their declared representation. See concept authoring and recognition. (#4)concepts.UUIDimplementsdatabase/sqlScannerandValuer. Usesql.Null[concepts.UUID]for nullable columns. (#19)- Package
correlationwithWithIDandFromContext, sharing one correlation ID throughcontext.Contextacross Arc.Go and Chronicle.Go. Reads never generate an ID. (#8) - Package
dependencyinjection, an optional contract with exact-type keys, typed bindings includingBindFunc1–BindFunc4that derive dependencies from parameter types, owned and borrowed lifetimes, scopes, and stable error categories. Plain constructors need none of it. (#11) - Package
dependencyinjection/container, a default container with graph validation at build time, singleton, scoped and transient lifetimes, reverse-order cleanup, a scope-factory facade and context guards. (#12) - Package
dependencyinjection/ditestwith conformance suites, so any container adapter can prove it meets the contract. See dependency injection. (#13) - A parity map recording, for every C# Fundamentals area, what is implemented, what is intentionally different and what is planned. (#10)