Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include symbols by default #7892

Open
loic-sharma opened this issue Mar 19, 2019 · 9 comments
Open

Include symbols by default #7892

loic-sharma opened this issue Mar 19, 2019 · 9 comments
Labels
Functionality:Pack Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. Status:Excluded from icebox cleanup Status:Inactive Icebox issues not updated for a specific long time Type:DCR Design Change Request

Comments

@loic-sharma
Copy link
Contributor

loic-sharma commented Mar 19, 2019

The snupkg spec mentions:

The default NuGet Client tooling will automatically generate and publish Symbols packages when creating NuGet packages.

Currently, symbols are not generated by default. We should consider making this the default experience. See also: #7815

/cc @rrelyea @karann-msft @anangaur

@nkolev92
Copy link
Member

I don't think symbols should be generated by default.

I'd say, we need at least > 50% of the pack runs to be with symbols generated.

Now we don't have the data for that, but can we comfortably say that 50% of all pack runs need symbols?
I'd say symbols are only needed by default when you are going to publish the build output on a feed.

In my opinion, this would just add unnecessary overhead, and I don't see it as the day-to-day dev scenario. Especially when considering changing a long-standing default.

@anangaur
Copy link
Member

I can argue both ways 😐. Let keep this open and see if it garners interest. We can come back to this once we have the community showing interest in it.

@loic-sharma
Copy link
Contributor Author

loic-sharma commented Mar 21, 2019

I'd say, we need at least > 50% of the pack runs to be with symbols generated.

Now we don't have the data for that, but can we comfortably say that 50% of all pack runs need symbols?
I'd say symbols are only needed by default when you are going to publish the build output on a feed.

I'm curious about this, when would someone pack a project but not publish to a feed?

I don't see it as the day-to-day dev scenario. Especially when considering changing a long-standing default.

The fact of the matter is, the vast majority of packages on nuget.org are not debuggable. This is largely because an author needs to opt-in to generate symbols. Could you imagine the benefits if instead authors had to opt-out? The .NET ecosystem would be dramatically better if developers could debug all of their dependencies.

@loic-sharma
Copy link
Contributor Author

I'm curious about this, when would someone pack a project but not publish to a feed?

Ah I forgot about PackOnBuild... Is this commonly used?

@nkolev92
Copy link
Member

We don't really have data on all those metrics unfortunately which our decision more difficult.

Take the dotnet repos (and the NuGet.Client repo itself).
Take PR/private builds for example. All of those pack. Most of those don't generate or archive symbols.

The fact of the matter is, the vast majority of packages on nuget.org are not debuggable.

I understand that and I agree with you. But, which packages don't have symbols is way more important than whether packages have symbols.
Metrics that'd more telling in my opinion are, how many of the most popular 1000 packages pushed in the last year have symbols? It's new submissions that count.

This is largely because an author needs to opt-in to generate symbols.

There could be so many other reasons. For starters lack of proper tooling to create/lack of proper infrastructure to submit symbols. Break-down in the general publishing process.

I don't believe strong-arming people with pack is the right decision.

Defaults are as much about what the user expects, as they are about some ideal case scenario.

Note that I'm not saying we should never do it. I'm just saying that the way everything is set-up right now, it's not the best direction.

@loic-sharma
Copy link
Contributor Author

loic-sharma commented Mar 21, 2019

Note that I'm not saying we should never do it. I'm just saying that the way everything is set-up right now, it's not the best direction.

Yeah, that's the sense I'm getting too now.

For starters lack of proper tooling to create/lack of proper infrastructure to submit symbols. Break-down in the general publishing process.

I think this would help. Should Visual Studio's Package pane for project properties have an Include symbols option?

@nkolev92
Copy link
Member

nkolev92 commented Mar 21, 2019

I think this would help. Should Visual Studio's Package pane for project properties have an Include symbols option?

Maybe. The trouble I'm having is getting a representative sample of what people do & how they do it to make an educated decision.
If people use the UI to model their packages, I agree with you.

We really need a "best practices" guidance from the team since we feel strongly about these topics.

@anangaur
Copy link
Member

We really need a "best practices" guidance from the team since we feel strongly about these topics.

Yup. We are indeed planning to make it a feature too, not just docs 🙂

@nkolev92
Copy link
Member

nuget <verb> -bestPractice 😆

@ghost ghost added the Status:Inactive Icebox issues not updated for a specific long time label Sep 1, 2022
@jeffkl jeffkl added Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. and removed Pipeline:Icebox labels Apr 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Functionality:Pack Priority:3 Issues under consideration. With enough upvotes, will be reconsidered to be added to the backlog. Status:Excluded from icebox cleanup Status:Inactive Icebox issues not updated for a specific long time Type:DCR Design Change Request
Projects
None yet
Development

No branches or pull requests

5 participants