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

Do not generate symbol packages in outer source-build #13931

Merged
merged 3 commits into from
Aug 3, 2023

Conversation

mmitche
Copy link
Member

@mmitche mmitche commented Jul 31, 2023

To double check:

mmitche added 2 commits July 28, 2023 10:58
Right now it's possible for a build to contain a set of assets with duplicated names. This can occur in various places:
- Merged manifest contains dupes
- Maestro build asset list contains dupes

These may not be exact dupes. You could have two assets with the same name but different versions. However, I think this scenario should generally be disallowed. A Maestro build with multiple assets with the same name would not be able to successfully flow dependencies downstream. What is chosen to flow downstream would essentially be arbitrary, which is not desirable.

So, I think we should take steps to disallow this scenario and harden against it. Fully hardening against it will require changes at multiple levels:
- Manifest merging (disallow duplicate entries even with same name + version)
- Maestro build asset upload
- Arcade publishing.

It's important to harden in multiple locations to improve error handling and avoid missing some code paths (e.g. if the merging code was updated in some branches but not others).

This PR begins this process by hardening the publishing phase. In addition, some general code cleanup and refactoring was performed.
The source build intermediates simply contain nupkgs, no symbols. Generating these packages just creates a copy of the original package.
@mmitche
Copy link
Member Author

mmitche commented Jul 31, 2023

@NikolaMilosavljevic
Copy link
Member

@mmitche is this going to prevent generation of various *.symbols.nupkg packages? We are considering using those in full source-build to get access to PBDs for sourcelink verification. See: dotnet/source-build#3547 (comment)

@mmitche
Copy link
Member Author

mmitche commented Jul 31, 2023

@mmitche is this going to prevent generation of various *.symbols.nupkg packages? We are considering using those in full source-build to get access to PBDs for sourcelink verification. See: dotnet/source-build#3547 (comment)

It may be that I want to avoid setting this in the inner build. Either way, this only prevents a file copy from Foo.nupkg to Foo.symbols.nupkg. In this case, the source build intermediates are just being copied over to a symbols nupkg but with identical content (a bunch of nupkgs).

@mmitche mmitche requested a review from a team August 2, 2023 17:52
@mmitche mmitche merged commit 6489e57 into dotnet:main Aug 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants