ANcpLua.OpenTelemetry.Conventions.Nuke 0.1.0

dotnet add package ANcpLua.OpenTelemetry.Conventions.Nuke --version 0.1.0
                    
NuGet\Install-Package ANcpLua.OpenTelemetry.Conventions.Nuke -Version 0.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ANcpLua.OpenTelemetry.Conventions.Nuke" Version="0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ANcpLua.OpenTelemetry.Conventions.Nuke" Version="0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="ANcpLua.OpenTelemetry.Conventions.Nuke" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ANcpLua.OpenTelemetry.Conventions.Nuke --version 0.1.0
                    
#r "nuget: ANcpLua.OpenTelemetry.Conventions.Nuke, 0.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ANcpLua.OpenTelemetry.Conventions.Nuke@0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ANcpLua.OpenTelemetry.Conventions.Nuke&version=0.1.0
                    
Install as a Cake Addin
#tool nuget:?package=ANcpLua.OpenTelemetry.Conventions.Nuke&version=0.1.0
                    
Install as a Cake Tool

ANcpLua.OpenTelemetry.Conventions.Nuke

Shared Nuke build-component policy for the ANcpLua OpenTelemetry semantic-conventions toolchain. This package does not generate or emit anything itself — it ships two INukeBuild component interfaces and one helper class that two sibling repositories implement to keep their generation and API surfaces in lockstep.

Not an official OpenTelemetry artifact. The conventions themselves come from the upstream open-telemetry/semantic-conventions repository; this package only defines the build policy used to mirror them.

Architecture

                       open-telemetry/semantic-conventions@v{SemconvVersion}
                                          |
                                          v
                      +---------------------------------------+
                      | ANcpLua/typespec-otel-semconv         |
                      | implements IUpstreamConventions       |
                      | publishes @ancplua/typespec-otel-     |
                      |   semconv@{SemconvVersion}-{n}        |
                      +---------------------------------------+
                                          |
                                  npm (GitHub Packages)
                                          |
                                          v
                      +---------------------------------------+
                      | O-ANcppLua/ANcpLua.OtelConventions.Api|
                      | implements IDomainConventionsApi      |
                      | publishes @o-ancpplua/otel-           |
                      |   conventions-api                     |
                      +---------------------------------------+

Both repositories take a PackageReference on this package and implement their respective interface. Interface targets are declared here so a change to the lockstep policy (a new verification gate, a renamed target, an added parameter) lands in one place.

Interface to consumer mapping

Interface Consumer repository npm package published
IUpstreamConventions ANcpLua/typespec-otel-semconv @ancplua/typespec-otel-semconv@{semconv}-{n}
IDomainConventionsApi O-ANcppLua/ANcpLua.OtelConventions.Api @o-ancpplua/otel-conventions-api

Install

<ItemGroup>
  <PackageReference Include="ANcpLua.OpenTelemetry.Conventions.Nuke" Version="0.1.0" />
</ItemGroup>

Use

Upstream generator

using Nuke.Common;
using ANcpLua.OpenTelemetry.Conventions.Nuke;

class Build : NukeBuild, IUpstreamConventions
{
    public static int Main() =>
        Execute<Build>(x => ((IUpstreamConventions)x).PublishTypeSpecLibrary);
}

Targets the consumer overrides (typical):

  • RestoreWeaver, FetchSemconvModel, GenerateOtelKeys
  • VerifyOtelKeysReproducible, VerifyOtelKeysScriptParity, VerifyOtelKeysCompile, RunSmokeTests, VerifyClean
  • PackTypeSpecLibrary, PublishTypeSpecLibrary

Downstream API

using Nuke.Common;
using ANcpLua.OpenTelemetry.Conventions.Nuke;

class Build : NukeBuild, IDomainConventionsApi
{
    public static int Main() =>
        Execute<Build>(x => ((IDomainConventionsApi)x).PublishApiPackage);
}

Targets the consumer overrides (typical):

  • RestoreTypeSpecDeps, VerifyKeysLockstep, CompileDomainSpec
  • EmitCSharp, EmitDuckDb, EmitTsTypes, LintConventions, EmitAll
  • VerifyEmitDeterministic, BuildCSharpEmit, VerifyNoManualEditsToGenerated
  • PackApiPackage, PublishApiPackage

Lockstep version scheme

The upstream npm package version is {semconv-version}-{n} where semconv-version mirrors the pinned open-telemetry/semantic-conventions release tag (e.g. 1.41.0) and n is a monotonic generator-revision counter starting at 1.

The downstream package must pin an exact {semconv}-{n} version in package-lock.json and verify that the keys file shipped by the upstream package matches its own generated/otel-keys.gen.tsp byte-for-byte. This is what IDomainConventionsApi.VerifyKeysLockstep enforces.

LockstepPolicy.ParseSemconvSuffixVersion("1.41.0-3") returns ("1.41.0", 3) and is the canonical parser shared by both builds.

Compatibility

  • Targets net10.0 (Nuke.Common 10.x ships only a net10.0 assembly).
  • Built against Nuke.Common 10.1.0.
  • SDK pinned via global.json to .NET 10.

License

Apache-2.0. Copyright 2026 Alexander Nachtmann.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0 0 5/19/2026