Skip to content

Latest commit

 

History

History
88 lines (66 loc) · 3.61 KB

File metadata and controls

88 lines (66 loc) · 3.61 KB

clink C# Package

C# CI/CD Pipeline NuGet (clink) NuGet (library) GitHub Release

This directory contains the production .NET implementation, published as two NuGet packages from a shared source tree:

Package Project Install Use case
clink Foundation.Data.Doublets.Cli/ dotnet tool install --global clink Run the CLI without writing any C#.
Foundation.Data.Doublets.Cli Foundation.Data.Doublets.Cli.Library/ dotnet add package Foundation.Data.Doublets.Cli Embed the parser, query processors, decorators, named/pinned types, persistent transformation trigger decorator, and LiNo I/O in another .NET project.

The CLI csproj only contains Program.cs plus the System.CommandLine wiring; every reusable type lives in the library project so external apps can recreate or extend the CLI without re-implementing any of the internals.

Install

dotnet tool install --global clink

Update an existing installation:

dotnet tool update --global clink

To consume the library inside another .NET project:

dotnet add package Foundation.Data.Doublets.Cli

API documentation is generated by DocFX from the library's XML doc comments and is published to GitHub Pages alongside the Rust rustdoc site by .github/workflows/docs.yml.

Use

clink '() ((1 1))' --changes --after

The CLI exposes the complete command surface, including persistent transformation triggers with --always, --once, --never, --triggers, --triggers-file, and --embed-triggers. Each option is implemented in the public library, so other .NET applications can call into the same processors directly.

Optional Transactions and Version Control

Pass --transactions (or any flag in the family — --transactions-file, --commit-mode, --retention, --log) to record each Create/Update/Delete as a reversible transition in a sidecar doublets store. Pass --vc (or --vc-file, --branch, --branch-from, --checkout, --tag, --list-branches, --list-tags) to add a version-control layer over the recorded transitions log:

# Record reversible transitions into data.transitions.links
clink --db data.links --transactions --auto-create-missing-references '() ((1 1))'
clink --db data.links --log

# Branch and tag on top of the transitions log
clink --db data.links --vc --tag v1
clink --db data.links --vc --branch feature --branch-from 1
clink --db data.links --vc --list-branches

BeginTransaction() / Commit() / Rollback() are also exposed on the library API for explicit batches. End-to-end demo scripts live in examples/transactions/ and examples/version-control/.

Develop

dotnet restore
dotnet build --configuration Release
dotnet test --configuration Release

Release automation for this package lives in csharp/scripts/ and uses changesets from csharp/.changeset/.