dotnet / dotnet/arcade

Arcade publishing overhaul for efficiency, maintainability and compliance

Open
#15,520 0 comments 0 reactions 0 assignees View on GitHub
Epic
Dominant language
C#
Stars
729
Forks
397
Avg merge
3d 15m
Merged PRs (30d)
149

Description

This Epic covers clean-up and changes to arcade publishing, potentially across all versions of .NET, to improve the maintainability of the system and improve its efficiency. The big points right now:
- We use BuildArtifacts instead of PipelineArtifacts. They are significantly slower, and cannot take advantage of some other efficiency gains in 1ESPT, like incremental SDL. They are mutable. We should not use them.
- We use logging commands, which don't end up getting scanned by 1ESPT at all.
- Our publishing infra has too many old half-removed implementations and broken scenarios. For instance, DotNetPublishUsingPipelines is basically a required parameter. Yet it defaults to false. It should be removed altogether
- Our publishing infra has too many manifests and metadata sources. The merged manifest should be the sole source of metadata for publishing inputs. For instance, we have nice descriptions of packages and blobs, yet PDB artifacts is a side-car data source, and there is a separate list of PDBs not to publish. This all should just go into the manifest. The ReleaseConfigurations should NOT be a thing.

The end result of this work should **not** be another switch enabling a new version of publishing. If switches for updated behavior are needed, they should be removed in the end.

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.