AdrPlus.Abstractions 1.0.0-rc1

This is a prerelease version of AdrPlus.Abstractions.
dotnet add package AdrPlus.Abstractions --version 1.0.0-rc1
                    
NuGet\Install-Package AdrPlus.Abstractions -Version 1.0.0-rc1
                    
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="AdrPlus.Abstractions" Version="1.0.0-rc1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AdrPlus.Abstractions" Version="1.0.0-rc1" />
                    
Directory.Packages.props
<PackageReference Include="AdrPlus.Abstractions" />
                    
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 AdrPlus.Abstractions --version 1.0.0-rc1
                    
#r "nuget: AdrPlus.Abstractions, 1.0.0-rc1"
                    
#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 AdrPlus.Abstractions@1.0.0-rc1
                    
#: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=AdrPlus.Abstractions&version=1.0.0-rc1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=AdrPlus.Abstractions&version=1.0.0-rc1&prerelease
                    
Install as a Cake Tool

<div align="center"> <img src="icon.png" alt="AdrPlus" width="120" height="120" />

AdrPlus.Abstractions

</div>

The plugin contract for AdrPlus, a .NET CLI tool for managing Architecture Decision Records (ADRs). Reference this package to write a plugin that reacts to ADR lifecycle events (created, approved, rejected, superseded, etc.) without depending on the AdrPlus source tree.

Minimal example

using AdrPlus.Abstractions;

public sealed class MyPlugin : IAdrPlugin
{
    public string Name => "MyPlugin";
    public string Version => "1.0.0";

    public Task InitializeAsync(IPluginContext context, IPluginConfiguration config, CancellationToken ct) =>
        Task.CompletedTask;

    public bool ShouldHandle(AdrEventContext context) => true;

    public Task<PluginResult> OnAdrEventAsync(AdrEventContext context, CancellationToken ct)
    {
        // React to context.EventType / context.Adr / context.GetAdrRenderedContent() here.
        return Task.FromResult(new PluginResult { Status = PluginResultStatus.Success });
    }

    public ValueTask DisposeAsync()
    {
        GC.SuppressFinalize(this);
        return ValueTask.CompletedTask;
    }
}

AdrPluginBase (also in this package) can help if you'd rather not repeat the exception-shielding boilerplate OnAdrEventAsync needs across several plugins — it's entirely optional, see the full guide below for that variant.

Drop the compiled plugin, its plugin.json manifest, and dependencies into a subfolder under %UserProfile%/AdrPlus.Plugins/<name>/ — installed once per machine, AdrPlus discovers and loads it automatically. Each repository then controls activation independently via activeplugins/disableplugins in its own adr-config.adrplus.

Full guide

For which events to subscribe to, retry/timeout semantics, the ExternalKey/adrKey identity rules, and the manifest schema, see PluginDevelopmentGuide.md in the main AdrPlus repository.

For the full generated API reference (every type and member in this package), see doc/api-abstractions.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  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.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

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
1.0.0-rc1 72 8/7/2026