getsentry / getsentry/sentry-dotnet

Verify in CI that required packages are being prepared/published

Open
#2,609 4 comments 0 reactions 0 assignees View on GitHub
.NET Repository Maintenance Task
Dominant language
C#
Stars
770
Forks
248
Avg merge
3d 4h
Merged PRs (30d)
49

Description

## Problem

The change from fixed slfn to generating the list: https://github.com/getsentry/sentry-dotnet/pull/2576/files#diff-46881cdd7821ad7176579363f56637c65f5f5fb0bf7e7ef39e7d6bd8b5e803a6 resulted in missing `Sentry.AspNet` which [stayed on 3.36.0](https://www.nuget.org/packages/Sentry.AspNet/3.36.0) while the rest went on to 3.39.0 (not sure what happened to 37 and 38).

This is easy to break since we have no checks and guards. I found this by accident while browsing Sentry's NuGet packages and noticing the different logos: (we changed logos between 36 and 39.

![image](https://github.com/getsentry/sentry-dotnet/assets/1633368/8fff894f-9ee0-4a8c-a0fa-e966e703354a)

## Suggestion

We mark projects as `IsPackable:true` to generate nuget packages but besides that, now we need to build the right sln/slnf. Due to this complexity such mistakes can happen.

Regardless of these .NET specific things, we release to NuGet with `craft`. And we must mark what gets published on the craft config file:

https://github.com/getsentry/sentry-dotnet/blob/9d52929356ef8285ba188aea81809902b587f4fd/.craft.yml#L8-L19

Craft won't complain if something is missing but we know that we want to pack and publish everything we have listed there, everytime. And if we're packing something that isnt' getting published, we probably don't want to pack either so we could also break the build there (optional) to alert there's some useless packing happening.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.