From 2f1590afcc86c90deaf865915e6af9157dee0f64 Mon Sep 17 00:00:00 2001 From: dt Date: Sun, 26 Jul 2026 17:38:41 +1000 Subject: [PATCH] Release 0.5.1: C# adapter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - __version__ -> 0.5.1 - CHANGELOG: 0.5.1 section; repair the stale link refs (missing [0.5.0], [Unreleased] still compared v0.4.0...HEAD) - contracts: confirm LanguageAdapter — .cs routing invariant reviewed, status inferred -> confirmed (rides along per review of #95) --- CHANGELOG.md | 24 +++++++++++++++++++++++- contracts/LanguageAdapter.yaml | 2 +- src/hashloom/__init__.py | 2 +- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 394cbcf..cff275f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,26 @@ follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +## [0.5.1] - 2026-07-26 + +### Added +- **C# language adapter** (`.cs`), the fifth language behind the + `LanguageAdapter` seam. Hashing runs a Roslyn token-stream helper that + hashloom compiles once per SDK version with the .NET SDK's *own* `csc` + against its *own* bundled `Microsoft.CodeAnalysis*` assemblies — no NuGet + package, no network; the compiled helper is cached in the user cache dir + keyed by SDK version + helper source. The hash is trivia-free, + length-prefixed, and CRLF-normalised: formatting/comment/XML-doc edits + never move it, signature/body changes always do. Tests run via + `dotnet test` on the root project/solution with the VSTest + `FullyQualifiedName~` contains-filter (xUnit, NUnit, and MSTest all ride + it); node ids follow the Java convention (`tests/CalcTests.cs::TotalSums`, + class from the file stem, nested classes as `Outer+Inner`). The toolchain + identity is `dotnet ` plus the dependency-set suffix over + `packages.lock.json` / `Directory.Packages.props`; config key + `{"dotnet": "..."}`. Needs the .NET SDK >= 8; CI installs 9. Follow-ups + (example project, live NUnit/MSTest/MTP coverage) are ISSUES.md #23. + ## [0.5.0] - 2026-07-26 **Shared → hosted.** The v0.5 theme lands whole: the shared verification @@ -324,7 +344,9 @@ stay `heddle`). - CI (tests on Python 3.10 through 3.13 plus the >5x benchmark guard) and PyPI Trusted Publishing on version tags. -[Unreleased]: https://github.com/davet47/hashloom/compare/v0.4.0...HEAD +[Unreleased]: https://github.com/davet47/hashloom/compare/v0.5.1...HEAD +[0.5.1]: https://github.com/davet47/hashloom/compare/v0.5.0...v0.5.1 +[0.5.0]: https://github.com/davet47/hashloom/compare/v0.4.0...v0.5.0 [0.4.0]: https://github.com/davet47/hashloom/compare/v0.3.3...v0.4.0 [0.3.3]: https://github.com/davet47/hashloom/compare/v0.3.2...v0.3.3 [0.3.2]: https://github.com/davet47/hashloom/compare/v0.3.1...v0.3.2 diff --git a/contracts/LanguageAdapter.yaml b/contracts/LanguageAdapter.yaml index 562bcba..a336666 100644 --- a/contracts/LanguageAdapter.yaml +++ b/contracts/LanguageAdapter.yaml @@ -14,4 +14,4 @@ tests: - tests/test_dep_identity.py::test_bare_root_identity_is_byte_identical_to_version_only - tests/test_dep_identity.py::test_python_identity_gains_dep_suffix impl: src/hashloom/langs/__init__.py::LanguageAdapter -status: inferred +status: confirmed diff --git a/src/hashloom/__init__.py b/src/hashloom/__init__.py index ec2e8cc..9ed2d71 100644 --- a/src/hashloom/__init__.py +++ b/src/hashloom/__init__.py @@ -5,4 +5,4 @@ Contracts are warp. Code is weft. """ -__version__ = "0.5.0" +__version__ = "0.5.1"