Releases: TimeWarpEngineering/timewarp-amuru
v1.0.0-beta.32
What's Changed
- Removed the NuGet.Protocol dependency chain from Amuru to avoid exposing Newtonsoft.Json to AOT consumers.
- Replaced package version lookup with direct NuGet registration metadata calls while keeping NuGet.Versioning semantics.
- Excluded unlisted package versions by using registration metadata instead of flat-container listings.
🤖 Generated with opencode
Co-Authored-By: opencode noreply@opencode.ai
v1.0.0-beta.31
What's Changed
- chore: Update NuGet.* packages (7.3.0 → 7.3.1) and Microsoft.CodeAnalysis.NetAnalyzers (10.0.201 → 10.0.203)
- fix: Add
NU1902toNoWarnintools/Directory.Build.propsto prevent dev-cli build failures from transitive dependency vulnerability warnings (e.g., OpenTelemetry packages). The warnings are in dev tooling dependencies, not the Amuru library itself.
🤖 Generated with opencode
Co-Authored-By: opencode noreply@opencode.ai
v1.0.0-beta.30
What's Changed
feat: disable StreamJsonRpc-based JSON-RPC to unblock AOT consumers (#74)
- Temporarily disable the current
StreamJsonRpc-based JSON-RPC feature slice in Amuru so downstream AOT consumers no longer inherit the oldStreamJsonRpc -> Newtonsoft.Jsonpath - Disable JSON-RPC tests and sample to match the temporary feature removal while the replacement is developed
- Improve dev-cli failure behavior:
- report actual sample build failures instead of noisy CliWrap validation exceptions
- stop the workflow immediately after the first failed step instead of continuing
Tasks and follow-up tracking
- Added task 083 for replacing
StreamJsonRpcwith an Amuru-native minimal JSON-RPC client - Added task 084 for the temporary AOT unblock work
- Updated kanban/task state for related cleanup work
Verification
dotnet build source/timewarp-amuru/timewarp-amuru.csproj./bin/dev check-version- CI workflow updates validated locally in dev-cli
Follow-up
- Update
TimeWarp.Nuruto consume this newer Amuru version - Re-evaluate whether dev-cli
IL2104/IL3053suppressions are still needed after Nuru stops depending on old Amuru
Full Changelog: v1.0.0-beta.29...v1.0.0-beta.30
v1.0.0-beta.29
What's Changed
feat: Replace NuGet CLI lookup with NuGet Protocol API (#73)
- Replace
dotnet package searchCLI calls withNuGet.ProtocolFindPackageByIdResource.GetAllVersionsAsync()— fixes prerelease packages being reported as "not found" and eliminates per-package process startup overhead - Upgrade NuGet packages to 7.3.0 — uses
System.Text.Jsoninstead ofNewtonsoft.Json
Fixes
- Fix RS0030 violations — replaced all
ProcessStartInfousage withShell.Builderin tests and dev-cli - Fix prerelease package detection —
ganda nuget outdatedno longer shows prerelease packages as "(not found on NuGet)"
Style
- Kebab-case file renames across
source/timewarp-amuru/core/andsource/timewarp-amuru/nu-get/ - Consolidated
global-usings.csinto single project-level file - Collocated source documentation with richer
#region Purpose/Design/Responsibilitiesblocks - Deleted stale sidecar markdown docs (
command-extensions.md,command-result.md) AGENTS.mdupdated to reflect dev-cli usesShell.Builder
Chores
- ModelContextProtocol.Core updated to 1.0.0
- Dev-cli:
TreatWarningsAsErrorsenabled,global-usings.csadded to compilation, trim warnings suppressed *.lscacheadded to.gitignore
Full Changelog: v1.0.0-beta.28...v1.0.0-beta.29
v1.0.0-beta.28
What's Changed
Breaking Changes
-
Removed config-related files -
IRepoConfigService,RepoConfigService,RepoConfig, andRepoConfigJsonContexthave been deleted. These were application-level concerns that didn't belong in the Amuru library. -
Refactored
IRepoCheckVersionService- The singleCheckAsyncmethod with strategy switching has been replaced with two focused methods:CheckGitTagVersionAsync(string? tag = null, CancellationToken)→GitTagCheckResultCheckNuGetVersionAsync(IReadOnlyList<string> packages, CancellationToken)→NuGetCheckResult
Migration Guide
Before:
CheckVersionResult result = await service.CheckAsync(strategy: "nuget-search", package: "My.Package");After:
NuGetCheckResult result = await service.CheckNuGetVersionAsync(["My.Package"]);
// or
GitTagCheckResult result = await service.CheckGitTagVersionAsync();Other Changes
- Removed "ganda" branding leak from public repo
- Updated dev-cli
check-versioncommand to use new API
Full Changelog: v1.0.0-beta.27...v1.0.0-beta.28
v1.0.0-beta.27
What's Changed
New Features
- Added
NuGet.Versioning6.11.0 package reference (AOT compatible) - Extended
INuGetPackageServicewith 4 new methods for semantic version handling - Added
PackageVersionInforecord for stable/prerelease version tracking
New API
public interface INuGetPackageService
{
// Existing
Task<NuGetSearchResult?> SearchAsync(string packageId, CancellationToken cancellationToken);
// New
Task<PackageVersionInfo?> GetLatestVersionsAsync(string packageId, CancellationToken cancellationToken);
string? ParseVersion(string version);
int CompareVersions(string version1, string version2);
string GetUpdateType(string currentVersion, string latestVersion);
}Bug Fixes
- Refactored
RepoCheckVersionServiceto use proper semantic comparison instead of brokenstring.Compare
Tests
- Added 22 new tests (26 total, all passing)
Full Changelog: v1.0.0-beta.25...v1.0.0-beta.27
v1.0.0-beta.25
What's Changed
- chore: bump version to 1.0.0-beta.25 by @StevenTCramer in #65
Full Changelog: v1.0.0-beta.24...v1.0.0-beta.25
v1.0.0-beta.24
What's Changed
- feat: enrich CheckVersionResult with strategy, latest tag/version, and checked packages by @StevenTCramer in #60
- chore: bump version to 1.0.0-beta.24 by @StevenTCramer in #61
- fix: release pipeline fails silently when version already exists by @StevenTCramer in #62
- fix: move check-version from release to PR workflow by @StevenTCramer in #63
- fix: add --no-symbols to nuget push to avoid empty snupkg rejection by @StevenTCramer in #64
Full Changelog: v1.0.0-beta.23...v1.0.0-beta.24
v1.0.0-beta.23
Bug Fix
- fix: check-version git-tag strategy uses exact tag lookup instead of git describe — Replaced
git describe --tags --abbrev=0withgit tag -l "v{version}"in bothRepoCheckVersionServiceand the dev CLIcheck-versioncommand. The old approach found the nearest ancestor tag reachable from HEAD, giving incorrect results on feature branches and causing failed NuGet pushes (409 Conflict). Fixes #57.
v1.0.0-beta.22
What's Changed
RS0030 Fix - Console → ITerminal Migration
- Migrated all
Console.WriteLine/Error/Writecalls toTimeWarpTerminal.Default - Updated
CliWrap(3.10.0 → 3.10.1) andTimeWarp.Terminal(1.0.0-beta.10 → 1.0.0-beta.12) - Removed RS0030 suppression from
Directory.Build.props
Repository Audit Cleanup (Task 074)
- Renamed
Source/tosource/for kebab-case convention - Removed unused packages:
Blockcore.Nostr.Client,TimeWarp.Multiavatar - Added
BannedSymbols.txtwithT:System.Consoleban - Deleted obsolete
scripts/,Spikes/,Analysis/directories
Dev-CLI Improvements (Task 075)
- Added repo services:
RepoCheckVersionService,RepoCleanService,RepoConfigService - Added
NuGetPackageServicefor package version checking - Renamed
cicommand toworkflowcommand
Analyzer Fixes
- CA1062: Added
ArgumentNullException.ThrowIfNull()to 9 methods - CA1031: Added targeted
[SuppressMessage]attributes with justifications
Full Changelog: v1.0.0-beta.21...v1.0.0-beta.22