Skip to content

Commit d9d02d8

Browse files
authored
Update docs (#15589)
1 parent 88a6db1 commit d9d02d8

File tree

1 file changed

+9
-76
lines changed

1 file changed

+9
-76
lines changed

Documentation/CorePackages/Publishing.md

Lines changed: 9 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,7 @@ This document describes the infrastructure provided by the Arcade SDK for publis
44

55
### What is V1 publishing?
66

7-
The publishing infrastructure has multiple stage(s), these stages represent available channels. Only the stages corresponding to the default channel will execute. This is for arcade3.x only.
8-
9-
V1 came into existence when we branched for release/3.x in arcade. Main and arcade/3.x initially had the same publishing logic. Over time the publishing stage in arcade main evolved so that became V2 publishing.
10-
11-
Asset manifest Example :
12-
13-
`publishingVersion` is not present in V1.
14-
15-
```XML
16-
<Build Name="https://[email protected]/dnceng/internal/_git/dotnet-arcade-validation"
17-
BuildId="20200915.7"
18-
Branch="refs/heads/release/3.x"
19-
Commit="0f733414ac0a5e5d4b7233d47851a400204a7cac"
20-
AzureDevOpsAccount="dnceng"
21-
AzureDevOpsBranch="refs/heads/release/3.x"
22-
AzureDevOpsBuildDefinitionId="282"
23-
AzureDevOpsBuildId="816405"
24-
AzureDevOpsBuildNumber="20200915.7"
25-
AzureDevOpsProject="internal"
26-
AzureDevOpsRepository="https://[email protected]/dnceng/internal/_git/dotnet-arcade-validation"
27-
InitialAssetsLocation="https://dev.azure.com/dnceng/internal/_apis/build/builds/816405/artifacts"
28-
IsStable="False"
29-
Location="https://dotnetfeed.blob.core.windows.net/arcade-validation/index.json">
30-
31-
```
32-
All the 3.1 servicing branches of repos use this version of the infrastructure.
7+
V1 is a legacy publishing infrastructure that is no longer utilized.
338

349
### What is V2 publishing?
3510

@@ -45,6 +20,12 @@ Example from arcade-validation:
4520

4621
![V3-publishing](./images/V3-publishing.PNG)
4722

23+
### What is V4 publishing (In Development)?
24+
25+
V4 publishing is functionally very similar to V3 publishing, with the following tweaks/breaking changes:
26+
- **Stable symbol packages are no longer published to NuGet feeds** - https://github.com/dotnet/arcade/pull/15561 - Instead, symbol packages are always published to unique blob paths.
27+
- **IsStable manifest bit no longer used to determine whether to create stable feeds** - https://github.com/dotnet/arcade/pull/15561 - Instead, CouldBeStable==true is used to determine whether to create these feeds, and identify which files should go on these feeds.
28+
4829
## Basic onboarding scenario for new repositories to the current publishing version (V3)
4930

5031
In order to use the new publishing mechanism, the easiest way to start is by turning your existing build pipeline into an AzDO YAML stage, and then making use of a YAML template ([eng/common/templates/post-build/post-build.yml](https://github.com/dotnet/arcade/blob/66175ebd3756697a3ca515e16cd5ffddc30582cd/eng/common/templates/post-build/post-build.yml)) provided by Arcade to use the default publishing stages. The process is explained below step by step.
@@ -90,41 +71,6 @@ These steps are needed for Arcade versions before `10.0.0`. After that, V3 is th
9071
...
9172
```
9273

93-
1. You'll also need to pass the below MSBuild property to the Arcade build scripts.
94-
95-
| Name | Value |
96-
| ------------------------------ | ----- |
97-
| /p:DotNetPublishUsingPipelines | true |
98-
99-
For example, if the repo has the following configuration for invoking `cibuild.cmd`:
100-
101-
```YAML
102-
- _InternalBuildArgs: /p:DotNetSignType=$(_SignType)
103-
/p:TeamName=$(_TeamName)
104-
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
105-
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
106-
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
107-
108-
- script: eng\common\cibuild.cmd
109-
-configuration $(_BuildConfig)
110-
-prepareMachine
111-
$(_InternalBuildArgs)
112-
```
113-
after setting the needed MSBuild properties it should looks like this:
114-
```YAML
115-
- _InternalBuildArgs: /p:DotNetSignType=$(_SignType)
116-
/p:TeamName=$(_TeamName)
117-
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
118-
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
119-
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
120-
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
121-
122-
- script: eng\common\cibuild.cmd
123-
-configuration $(_BuildConfig)
124-
-prepareMachine
125-
$(_InternalBuildArgs)
126-
```
127-
12874
1. Transform your existing build-definition to a single stage. Do that by nesting the current job definition(s) under the `stages` keyword. For instance, this example build definition with a single job definition:
12975

13076
```YAML
@@ -291,7 +237,7 @@ However, if for some reason the infra in the default publishing stages don't mee
291237

292238
**Note:** We strongly suggest that you discuss with the *.Net Engineering* team the intended use case for this before starting your work. We might be able to give other options.
293239

294-
## PublishingUsingPipelines & Deprecated Properties
240+
## Deprecated Properties
295241

296242
Starting with Arcade SDK version **5.0.0-beta.20120.2** there is not support anymore for the old publishing infrastructure where the Arcade SDK handled publishing of all assets during the build stage. That means, that if:
297243

@@ -304,16 +250,7 @@ Starting with Arcade SDK version **5.0.0-beta.20120.2** there is not support any
304250
| DotNetPublishToBlobFeed |
305251
| DotNetSymbolServerTokenMsdl |
306252
| DotNetSymbolServerTokenSymWeb |
307-
308-
- **The build definition doesn't set `/p:DotNetPublishingUsingPipelines` or set it to false:** only symbols will be published and they will be controlled by the Arcade SDK. The build definition still needs to inform the `DotNetSymbolServerToken[Msdl/SymWeb]` properties, but the following properties aren't required anymore:
309-
310-
| Property |
311-
| ----------------------------- |
312-
| DotNetPublishBlobFeedKey |
313-
| DotNetPublishBlobFeedUrl |
314-
| DotNetPublishToBlobFeed |
315-
316-
Furthermore, starting with Arcade SDK version **5.0.0-beta.20120.2** the default value for the `DotNetArtifactsCategory` property is `.NETCore`, therefore you don't need to set that property anymore if you were setting it to `.NETCore`.
253+
| DotNetPublishusingPipelines |
317254

318255
## Frequently Asked Questions
319256

@@ -371,10 +308,6 @@ Yes, that's possible. You need to [use Darc to do that](https://github.com/dotne
371308

372309
Most frequent cause of this is that there is no Default Channel configured for the build. [Take a look here](https://github.com/dotnet/arcade/blob/ec191f3d706d740bc7a87fbb98d94d916f81f0cb/Documentation/Darc.md#get-default-channels) to see how to check that.
373310

374-
### Why do you need the DotNetPublishUsingPipelines parameter?
375-
376-
The `DotNetPublishUsingPipelines` is a flag that Arcade SDK uses to determine if the repo wants Maestro++ to control all aspects of publishing. If that parameter is not set (not advisable) Arcade SDK will only publish symbols produced by the build; publishing of other assets should be taken care of by the repo build definition.
377-
378311
### What's PackageArtifacts, BlobArtifacts, PdbArtifacts and ReleaseConfigs for?
379312

380313
- **PackageArtifacts**: contains all NuGet (.nupkg) packages to be published.

0 commit comments

Comments
 (0)