Skip to content

Releases: ncosentino/curb

Curb fork 0.7.4-canary.0.28

Pre-release

Choose a tag to compare

@github-actions github-actions released this 05 Oct 15:49
c04e8d8

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license, and NOTICE remain intact. This is not an official Nullean distribution.

[0.7.4-canary.0.28] - 2026-10-05

Added

  • Opt-in attached-expression-lambda layout for sole invocation callbacks with nonlogical expression bodies, including pattern predicates and projections
  • Compact enclosing if and else if headers for selected callbacks, with width-driven continuation indentation
  • Exact-output, width-boundary, token-verification, composition, trivia-safety, and first-pass idempotency coverage, plus managed and native CLI installation checks

Changed

  • Logical and nonlogical callback recipes share header rendering, validation, indentation anchors, and closing-delimiter handling
  • An explicitly selected layout-only CI route reduces iteration fan-out; full validation and publication retain all release gates

Default formatting remains unchanged. The new recipe does not select multiple-argument calls or block-bodied lambdas, and it does not rewrite pattern combinators.

Enable the layout

Add this rule to the existing rules array in .curb-layout.json. Keep the existing logical-lambda rule to cover top-level && and || bodies; the two selectors are disjoint.

{
  "id": "expression-lambdas",
  "files": ["**/*.cs"],
  "match": {
    "kind": "expression-lambda-argument",
    "owner": "sole-invocation-argument",
    "body": "nonlogical-expression"
  },
  "layout": {
    "recipe": "attached-expression-lambda",
    "wrap": "if-long",
    "header": "inline-if-fits",
    "continuation": "one-indent",
    "closeParen": "with-body"
  }
}

The recipe requires finite width, deterministic layout, and canonical binary spacing. Unsafe moved-boundary trivia fails explicitly without output. Constructor and nested invocation arguments retain their configured wrapping policy.

if (entries.Any(entry =>
    entry.Status is not (ResultStatus.Unavailable or ResultStatus.NotApplicable)))
{
    return false;
}

return entries.Select(entry => new SearchResult(
    entry.Id,
    Map(entry.CurrentValue),
    Map(entry.PreviousValue)
));

Delivered in #33.

Source: c04e8d86d174b317bc3c49197614ebd5d64e26fd.

Complete release validation precedes publication. All eight .nupkg assets share this version; SHA256SUMS records their exact release bytes.

Layout contract and installation and publication policy.

Curb fork 0.7.4-canary.0.27

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Oct 22:45
dae62eb

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.27. Source: dae62eb.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.26

Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Sep 18:26

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.26. Source: 6c7638a.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.25

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 16:55

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.25. Source: 566c7c0.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.24

Pre-release

Choose a tag to compare

@github-actions github-actions released this 20 Sep 07:57

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.24. Source: 11e5629.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.23

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 15:12

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.23. Source: 7944048.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.22

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 01:20

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.22. Source: 290563c.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.17

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Sep 18:43

Independently maintained Curb fork. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

Version: 0.7.4-canary.0.17. Source: ab4765e.

Complete validation precedes publication. Download all eight nupkg assets into one local feed; SHA256SUMS records their exact bytes.

Installation and publication policy. This is not an official Nullean distribution.

Curb fork 0.7.4-canary.0.16

Pre-release

Choose a tag to compare

@ncosentino ncosentino released this 16 Sep 17:36
2980eed

This is an independently maintained Curb fork, not an official Nullean distribution. Nullean and contributor attribution, the MIT license and NOTICE remain intact.

These packages are the unchanged outputs of the complete fork validation run for commit 2980eed3d0ae07d702e07c7a89daa377466194a1. They include initializer stability, switch/accessor layout corrections, safe parse-error reporting, diagnostic-driven parentheses cleanup and preview union printing.

The CLI package is ncosentino.curb-cli; the build integration package is ncosentino.curb. All packages in this release use version 0.7.4-canary.0.16. This is a prerelease.

Install

Download all eight .nupkg assets into one folder. The root CLI package resolves the matching native package from that local feed. SHA256SUMS records the exact package bytes.

Save this configuration as NuGet.Config in that folder:

<configuration>
  <packageSources>
    <clear />
    <add key="fork" value="." />
  </packageSources>
</configuration>

From the package folder, install to an isolated tool directory:

$feed = (Get-Location).Path
$tools = Join-Path $feed '.tools'
dotnet tool install ncosentino.curb-cli --version 0.7.4-canary.0.16 --tool-path $tools --configfile (Join-Path $feed 'NuGet.Config')
& (Join-Path $tools 'curb') --version

The .NET 10 SDK installs the tool; supported platforms run the Native-AOT payload. The portable fallback requires a compatible runtime.

For build integration, reference ncosentino.curb at the same version with PrivateAssets="all" and restore from this local feed. Do not reference both upstream and fork MSBuild packages in one project.

Scope

Razor remains deferred. The existing option generator is retained, and the documented expression-body/comment-alignment limitations are not claimed fixed. NuGet.org publication is separate from these downloadable release packages.