Add releasing doc (#1191)

* Add releaseing doc

* updating releasing document

* updating releasing document

* lint

* lint

* Modify doc

* more steps as per todays release

* replace old key with place holder

* lint errors

* Rename

* Rename again

* more comment addressed

* releae in github

* order

* min

Co-authored-by: Eddy Nakamura <ednakamu@microsoft.com>
This commit is contained in:
Cijo Thomas 2020-09-17 09:47:59 -07:00 committed by GitHub
parent 8a4621c71f
commit b361251911
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 101 additions and 1 deletions

View File

@ -16,6 +16,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
NuGet.config = NuGet.config
OpenTelemetry.proj = OpenTelemetry.proj
README.md = README.md
RELEASING.md = RELEASING.md
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{7CB2F02E-03FA-4FFF-89A5-C51F107623FD}"
@ -189,7 +190,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "extending-the-sdk", "docs\t
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "correlation", "docs\logs\correlation\correlation.csproj", "{B26BE278-C9DA-4067-A0EE-6A4227B3DC87}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTelemetry.Instrumentation.W3cTraceContext.Tests", "test\OpenTelemetry.Instrumentation.W3cTraceContext.Tests\OpenTelemetry.Instrumentation.W3cTraceContext.Tests.csproj", "{EAAC5A3C-708A-4609-A21F-8E5221AB58F2}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OpenTelemetry.Instrumentation.W3cTraceContext.Tests", "test\OpenTelemetry.Instrumentation.W3cTraceContext.Tests\OpenTelemetry.Instrumentation.W3cTraceContext.Tests.csproj", "{EAAC5A3C-708A-4609-A21F-8E5221AB58F2}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Examples.GrpcService", "examples\GrpcService\Examples.GrpcService.csproj", "{DB942F5A-D571-4DEA-B1A7-B6BE0E24E6ED}"
EndProject

99
RELEASING.md Normal file
View File

@ -0,0 +1,99 @@
# Release process
Only for Maintainers.
1.Tag with version to be released e.g.:
```sh
git tag -a 0.4.0-beta -m "0.4.0-beta"
git push origin 0.4.0-beta
```
2.Do Draft Github release. Run the following PowerShell from the root of the
repo.
```powershell
$changelogs = Get-ChildItem -Path . -Recurse -Filter changelog.md
foreach ($changelog in $changelogs)
{
Add-Content -Path .\combinedchangelog.md $changelog.Directory.Name
$lines = Get-Content -Path $changelog.FullName
$started = $false
$ended = $false
foreach ($line in $lines)
{
if($line -like "## *" -and $started -ne $true)
{
$started = $true
}
elseif($line -like "## *" -and $started -eq $true)
{
$ended = $true
break
}
else
{
if ($started -eq $true)
{
Add-Content -Path .\combinedchangelog.md $line
}
}
}
}
```
This generates combined changelog to be used in Github release.
3.Run the following PowerShell script from the root of the repo.
This updates all the changelog to have release date for the
current version being released.
Replace the date with actual date, version with actual version.
The actual version would be the tag name from step1 appended with
".1"
```powershell
$changelogs = Get-ChildItem -Path . -Recurse -Filter changelog.md
foreach ($changelog in $changelogs)
{
(Get-Content -Path $changelog.FullName) -replace "Unreleased", "Unreleased
## 0.6.0-beta.1
Released 2020-Sep-15" | Set-Content -Path $changelog.FullName
}
```
4.Submit PR with the above changes, and get it merged.
5.Open [Pack and publish to MyGet
workflow](https://github.com/open-telemetry/opentelemetry-dotnet/actions?query=workflow%3A%22Pack+and+publish+to+Myget%22)
and manually trigger a build. At the end of this, MyGet will have the
packages. The package name will be the tag name used in step1 appended with
".1".
6.Validate using MyGet packages. Basic sanity checks :)
7.From the above build, get the artifacts from the drop, which has all the
NuGet packages.
8.Copy all the NuGet files and symbols into a local folder.
9.Download latest [nuget.exe](https://www.nuget.org/downloads).
10.Obtain the API key from nuget.org (Only maintainers have access)
11.Run the following command from PowerShell from local folder used in step 8:
```powershell
.\nuget.exe setApiKey <actual api key>
get-childitem | where {$_.extension -eq
".nupkg"} | foreach ($_) {.\nuget.exe push $_.fullname -Source
https://api.nuget.org/v3/index.json}
```
12.Packages would be available in nuget.org in few minutes.
Validate that the package is uploaded.
13.Delete the API key generated in step 10.
14.Mark the Github release from draft to actual publish.