assembly-differ 0.9.1

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global assembly-differ --version 0.9.1
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local assembly-differ --version 0.9.1
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=assembly-differ&version=0.9.1
nuke :add-package assembly-differ --version 0.9.1

<p> <img align="right" src="nuget-icon.png">

assembly-differ

</p>

Compare and Diff assemblies from different sources. Useful for determining what changes are introduced across versions, and if any are breaking.

Outputs differences in XML, Markdown or AsciiDoc.

Differ builds on the amazing work done by JustAssembly, licensed under Apache 2.0

Installation

Distributed as a .NET tool so install using the following

dotnet tool install assembly-differ

Run

dotnet assembly-differ

You can omit dotnet if you install this as a global tool

to see the supported Assembly Providers and outputs:

assembly-differ <Old Assembly Provider> <New Assembly Provider> [Options]

Supported Assembly Providers:

  assembly|<assembly path>
  directory|<directory path>
  nuget|<package id>|<version>|[framework version]
  previous-nuget|<package id>|<version>|[framework version]
  github|<owner>/<repo>|<commit>|<build command>|<relative output path>

Options:
  -t, --target=VALUE         the assembly targets. Defaults to *all* assemblies
                               located by the provider
  -f, --format=VALUE         the format of the diff output. Supported formats
                               are xml, markdown, asciidoc. Defaults to xml
  -o, --output=VALUE         the output directory. Defaults to current directory
  -h, -?, --help             show this message and exit
Examples:

Diff between two local assemblies:

dotnet assembly-differ "assembly|C:\6.1.0\Nest.dll" "assembly|C:\6.2.0\Nest.dll"

Diff between all assemblies in directories, matched by name:

dotnet assembly-differ "directory|C:\6.1.0" "directory|C:\6.2.0"

Diff NuGet packages:

dotnet assembly-differ "nuget|NEST|6.1.0|net46" "nuget|NEST|6.2.0|net46"

Diff Previous NuGet packages:

Imagine you want to release 6.2.0 and want to diff with whatever is the latest nuget package before 6.2.0 previous-nuget will do the heavy lifting of finding that previous release

dotnet assembly-differ "previous-nuget|NEST|6.2.0|net46" "directory|C:\6.2.0" 

Diff GitHub commits:

dotnet assembly-differ "github|elastic/elasticsearch-net|6.1.0|cmd /C call build.bat skiptests skipdocs|build\output\Nest\net46" "github|elastic/elasticsearch-net|6.2.0|cmd /C call build.bat skiptests skipdocs|build\output\Nest\net46"

Any of the above can be mixed. For example, to compare GitHub HEAD against last NuGet package, and output in Markdown

dotnet assembly-differ --format markdown "nuget|NEST|6.2.0|net46" "github|elastic/elasticsearch-net|HEAD|cmd /C call build.bat skiptests skipdocs|build\output\Nest\net46"

FUTURE PLANS

  • Instruct the tool to emit errors if breaking changes exists
  • Pass the tool with the version you intend to release and have the tool report the version it thinks it should be based on the differences between the assemblies
  • Wrap all of this in Github Actions
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp3.0 is compatible.  netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.15.0 1,887 1/5/2024
0.14.0 23,284 2/8/2022
0.13.0 50,914 11/16/2020
0.12.5 929 5/28/2020
0.12.4 471 5/28/2020
0.12.3 465 5/27/2020
0.12.2 475 5/27/2020
0.12.1 505 5/27/2020
0.12.0 3,832 5/20/2020
0.11.2 533 5/15/2020
0.11.1 555 5/15/2020
0.11.0 445 5/15/2020
0.10.1 482 5/14/2020
0.10.0 463 5/12/2020
0.9.2 489 5/12/2020
0.9.1 503 5/1/2020
0.9.0 633 3/6/2020