ForgeTrust.AppSurface.ReleaseContracts
0.2.0-preview.8
dotnet add package ForgeTrust.AppSurface.ReleaseContracts --version 0.2.0-preview.8
NuGet\Install-Package ForgeTrust.AppSurface.ReleaseContracts -Version 0.2.0-preview.8
<PackageReference Include="ForgeTrust.AppSurface.ReleaseContracts" Version="0.2.0-preview.8" />
<PackageVersion Include="ForgeTrust.AppSurface.ReleaseContracts" Version="0.2.0-preview.8" />
<PackageReference Include="ForgeTrust.AppSurface.ReleaseContracts" />
paket add ForgeTrust.AppSurface.ReleaseContracts --version 0.2.0-preview.8
#r "nuget: ForgeTrust.AppSurface.ReleaseContracts, 0.2.0-preview.8"
#:package ForgeTrust.AppSurface.ReleaseContracts@0.2.0-preview.8
#addin nuget:?package=ForgeTrust.AppSurface.ReleaseContracts&version=0.2.0-preview.8&prerelease
#tool nuget:?package=ForgeTrust.AppSurface.ReleaseContracts&version=0.2.0-preview.8&prerelease
ForgeTrust.AppSurface.ReleaseContracts
ForgeTrust.AppSurface.ReleaseContracts is the small, transitive package that keeps AppSurface's published Docs package and repository release tooling on the same release-metadata vocabulary. It is published so a clean consumer restore of ForgeTrust.AppSurface.Docs can resolve its exact dependency graph; application authors normally install Docs or use the appsurface release compose command instead of adding this package directly.
Public API
The package exposes immutable release-link vocabulary for package indexes and release-aware documentation:
PackageReleaseTrackhas two values.Coordinateduses the repository's checked-in current-release pointer, whileExplicituses a package row's ownrelease_notes_path.PackageReleaseLinkis a record withTrackandReleaseNotesPathproperties. ItsCoordinatedReleaseNotesPathconstant isreleases/current.md;CoordinatedReleaseSidecarPathis the permanent metadata sidecarreleases/current.md.yml. The record does not validate direct construction, so use the resolver for package-index values.PackageReleaseLinkResolver.TryResolve(string? releaseTrack, string? releaseNotesPath, out PackageReleaseLink? link, out string? error)trims inputs and accepts track names case-insensitively. It returnstruewith a non-null link when the declaration is valid, orfalsewith a null link and a maintainer-facing error when it is not. A missingrelease_trackplus a non-empty path preserves the legacyExplicitbehavior.coordinatedmust omitrelease_notes_path;explicitrequires one; a row that declares neither is invalid. Failures begin withpackage-release-track-invalid,package-release-link-missing, orpackage-release-link-conflictso callers can classify them.
Use these types when building an AppSurface package index or release-aware documentation integration. For application release notes, follow the append-only unreleased-entry workflow through the public CLI composition command instead.
Composition boundary
The package also contains the internal UnreleasedEntryComposer, UnreleasedEntry, and UnreleasedEntryException types shared by AppSurface Docs and the repository's release-preparation workflow. They accept a flat, filename-sorted entry directory whose files begin with ; templates declare each accepted section exactly once with . Section identifiers use lowercase letters, digits, and single hyphens. The internal workflow rejects undeclared or duplicate sections, malformed or code-block markers, source markers, top-level entry headings, and terminal control characters other than tabs and ordinary line breaks; it reports those failures as UnreleasedEntryException.
This support is intentionally not a second public authoring API. Consumer projects should invoke appsurface release compose, which provides the guarded preview and explicit-write contract, including link rebasing based on the selected destination and path protections around consumer-owned files.
Compatibility and pitfalls
- Treat this package as a transitive support dependency. Pinning or installing it independently can create a graph that does not match the Docs package that owns the consumer-facing workflow.
PackageReleaseLinkpaths describe repository release-note destinations; they are not filesystem authorization tokens and do not create or publish releases.- The command composes notes only. Changelog rollover, release preparation, tags, and package publication remain separate, repository-owned operations.
| Product | Versions 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. |
-
net10.0
- Markdig (>= 1.2.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ForgeTrust.AppSurface.ReleaseContracts:
| Package | Downloads |
|---|---|
|
ForgeTrust.AppSurface.Docs
ForgeTrust.AppSurface.Docs package for AppSurface application composition. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.0-preview.8 | 1,346 | 8/23/2026 |