https://github.com/unoplatform/uno.packagediff
A command line tool that compares two versions of a NuGet package and provides public API differences
https://github.com/unoplatform/uno.packagediff
cecil compare csharp dotnet nuget roslyn
Last synced: 3 months ago
JSON representation
A command line tool that compares two versions of a NuGet package and provides public API differences
- Host: GitHub
- URL: https://github.com/unoplatform/uno.packagediff
- Owner: unoplatform
- License: other
- Created: 2019-02-25T04:31:12.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2025-02-24T15:09:51.000Z (11 months ago)
- Last Synced: 2025-06-05T22:10:03.188Z (7 months ago)
- Topics: cecil, compare, csharp, dotnet, nuget, roslyn
- Language: C#
- Size: 77.1 KB
- Stars: 13
- Watchers: 27
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: License.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# NuGet Package Diffing Tool
A command line tool that compares two versions of a NuGet package and provides public API differences.
This tool has originally been built to fail a build when a breaking change is detected, using a
published nuget package (in nuget.org) and a local NuGet package.
## Installing
Run the following command from command line (requires .NET Core 2.1 installed):
```
dotnet tool install --global Uno.PackageDiff
```
## Diffing packages
```
generatepkgdiff --base=Uno.UI --other=C:\temp\Uno.UI.1.43.0-PullRequest0621.917.nupkg --outfile=diff.md
```
The tool returns a non-zero value when differences are found, otherwise zero.
## How to provide an ignore set
The diff tool accepts a "ignore set" file which gives the ability to ignore specific differences. Those differences appear strike-out in the resulting markdown file.
Here's the format:
```xml
```
The `baseVersion` attribute denotes the version for which the Ignore Set has been authored. This enables for the automatic discarding of existing sets when a new package version is published in nuget.org.
The `fullname` of members should be the exact string provided in the markdown file when a difference is identified.
You can also specifiy `isRegex="true"` to a `Member`, and the `fullName` will be treated as a Regex pattern to match against.