Skip to content

Commit

Permalink
Add documentation around aka.ms link creation (#7148)
Browse files Browse the repository at this point in the history
* Add documentation around aka.ms link creation

* Address feedback

* Fix link
  • Loading branch information
michellemcdaniel authored Mar 24, 2021
1 parent 8e9f54a commit 34636d1
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 1 deletion.
25 changes: 24 additions & 1 deletion Documentation/CorePackages/Publishing.md
Original file line number Diff line number Diff line change
Expand Up @@ -504,13 +504,15 @@ TargetChannelConfig takes the following attributes
| ChannelId | Id for channel to publish | |
| isInternal | Publishing to an internal Channel or public channel | true or false |
| PublishingInfraVersion | Which version of the publishing infra can use this configuration. | Enum = All(0), Legacy(1), Latest(2), Next(3) |
| AkaMSChannelName | The name that should be used for creating Aka.ms links for this channel. | |
| AkaMSChannelName | The name that should be used for creating Aka.ms links for this channel. A specified build quality will be appended to this value if supplied. | See [What build qualities are supported?](#what-build-qualities-are-supported) for valid build quality values |
| ShippingFeed | The URL (including the index.json suffix) of the *shipping* feed to be used for this channel. | |
| TransportFeed | The URL (including the index.json suffix) of the *transport* feed to be used for this channel. | |
| SymbolsFeed | The URL (including the index.json suffix) of the *symbols* feed to be used for this channel. | |
| ChecksumsFeed | The URL (including the index.json suffix) where *checksums* should be published to. | FeedForChecksums for public channel, FeedInternalForChecksums for internal |
| InstallersFeed | The URL (including the index.json suffix) where *installers* should be published to. | FeedForInstallers for public channel, FeedInternalForInstallers for internal channel |
| SymbolTargetType | Publish to MSDL or SymWeb symbol server | PublicAndInternalSymbolTargets -publishes to both Msdl and SymWeb or InternalSymbolTargets -publishes only to SymWeb |
| FilenamesToExclude | List of files to exclude from creating aka.ms links. Should be exact file names | For most channels, we exclude MergedManifest.xml |
| Flatten | Whether or not to flatten the path when creating the aka.ms links | Defaults to true, which means the path in the aka.ms link will be flattened. False will use the full path without the version information of the files being published |

```C#
Eg:
Expand Down Expand Up @@ -552,3 +554,24 @@ Publishing to General Testing channel : General Testing
| | https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json |
| dotnet3-transport | .NET Core 3 non-shipping packages |
| | https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json |

### Can the feeds be overriden?

Yes. The feeds can be overriden by adding the following options when calling PublishArtifactsInManifest.proj:

```
/p:AllowFeedOverrides=True
/p:InstallersFeedOverride=$(InstallersFeedOverride)
/p:ChecksumsFeedOverride=$(ChecksumsFeedOverride)
/p:ShippingFeedOverride=$(ShippingFeedOverride)
/p:TransportFeedOverride=$(TransportFeedOverride)
/p:SymbolsFeedOverride=$(SymbolsFeedOverride)
```

### How are the aka.ms links formatted?

The aka.ms links are generated using the `BuildQuality` parameter that is passed to PublishArtifactsInManifest.proj, and the `akaMsChannelName` parameter passed to the `TargetChannelConfig` constructor. When akaMsChannelName is specified, we will create aka.ms links for the assets being published to that channel. Additionally, these links are "flatten," meaning that only the filename is used in addition to the build quality and the channel name when constructing the links. Finally, all version information is stripped from the filename. For example, if the `buildQuality` is `daily`, `akaMsChannelName` is `6.0`, `flatten` is `true`, and the filename is `dotnet-sdk-6.0.100-12345.12-win-x64.zip`, the aka.ms link generated will be `aka.ms/dotnet/6.0/daily/dotnet-sdk-win-x64.zip`.

### What build qualities are supported?

The build qualities that are supported are daily, signed, validated, preview, and ga. All official daily builds that publish using V3 should use the `daily` build quality. Signed and validated builds are generated by the staging process of the release process. Preview and GA links are generated at release time, on release day. All builds that have preview in the release version will be of the `preview` quality. All other builds will be marked as `GA`. GA builds do not append a build quality to the links.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,15 @@
- AkaMSTenant : Tenant ID for aka.ms link generation. Defaults to ncd
- AkaMSOwners : Semi-colon delimited list of aliases of the owners of generated links. Defaults to dn-bot
- AkaMSCreatedBy : Semi-colon delimited list of aliases of the creator/updator links. Defaults to dn-bot
- BuildQuality : Build quality. Can be daily, signed, validated, preview or ga. Defaults to daily.
Optional feed override parameters:
- AllowFeedOverrides : Option to allow feed overrides if they are supplied. Defaults to false.
- InstallersFeedOverride : Override for the installers feed
- ChecksumsFeedOverride : Override for the checksums feed
- TransportFeedOverride : Override for the transport feed
- ShippingFeedOverride : Override for the shipping feed
- SymbolsFeedOverride : Override for the symbols feed
Parameters required by SetupTargetFeeds.proj:
- IsInternalBuild
Expand Down

0 comments on commit 34636d1

Please sign in to comment.