add full description about normal releases

This commit is contained in:
Christian Schabesberger 2019-02-20 23:39:25 +01:00
parent b0dc490911
commit 04b60af15b
6 changed files with 646 additions and 1 deletions

Binary file not shown.

BIN
assets/release_branch.dia Normal file

Binary file not shown.

View File

@ -43,14 +43,51 @@ After the maintainer merged the new feature into the dev branch he should add th
### Creating a new release ### Creating a new release
Once there are enough features together, and the maintainer feels like releasing he should create a new release. Here is a list of things he will want to do then. Once there are enough features together, and the maintainer feels like releasing he should create a new release. Here is a list of things he will want to do then.
Be aware of the rule that a release should never be done on a frieday. For NewPipe this mean don't do a release if you don't have time for it!!!
1. Fork the __dev__ branch into a new __release_x.y.z__ branch. 1. Fork the __dev__ branch into a new __release_x.y.z__ branch.
2. Increase the [version number](#versioning) 2. Increase the [version number](#versioning)
3. Copy the [release note](#release-notes) from the github version draft into the corresponding fastlane file (see [release note](#release-notes)). 3. Copy the [release note](#release-notes) from the github version draft into the corresponding fastlane file (see [release note](#release-notes)).
4. Open up a pull request form the new __release_x.y.z__ branch into the __master__ branch. 4. Open up a pullrequest form the new __release_x.y.z__ branch into the __master__ branch.
5. Create an Issue pointing to the new Pullrequest. The reason for opening an issue is that from my perception more people are reading issues then they read pullrequests. Put the release-note into this pull request.
6. Build a signed release version of NewPipe using schabis signing keys. This is a release candidate (RC). Name the build apk file `NewPipe_<versionNumber>_RC1.apk`.
Zip it and post it into the head of the release issue. This way other people can test the release candidate.
7. Test and QA the new version with the help of other people
8. Leave the PR open for a few days and advertise people to help testing.
While being in release phase no new pullrequests must be merged into __dev__ branch.
This procedure does not have to be done for the extractor as extractor will be tested together with the fronted.
### Quckfixes
When issuing a new release you will most likely encounter new bugs. These bugs are called __regressions__ as they where not there before.
If you notice a regression during release phase you are allowed to push fixes directly into the release branch without having to fork a branch away from it.
All maintainers (people who have write access to the release branch) have to be aware that they might be required to fix regressions so plan your release on a time when
you have time for coding. Do not introduce new features while being in release phase.
When you have pushed a quickfix you will want to updated the __release candidate__ you put into the __issue__ corresponding to the __release pull request__.
Increase the version number in the filename of the Release candidate. e.g. `NewPipe_<versionNumber>_RC2.apk` etc. _Don't update the actuall version number however :P_.
![release_branch](img/release_branch.svg)
### Releasing ### Releasing
Once the glories day of all days has come, and you feel like fulfilling the ceremony of releasing. This is what you will want to do.
After going through the release procedure of having [created a new release](#create_a_new_release) and maybe having done [quickfixes](#quickfixes) on the new release,
you will want to do these steps:
1. Hit merge Pullreqest
2. Create a GPG signed tag with the name `v0.x.y`
3. Merge __dev__ into master on the extractor
4. Create a GPG signed tag with the name `v0.x.y` on the extractor
5. Make sure the draft name equals the tag name ![draft_name](img/draft_name.png)
6. Make sure to not have forgotten enything
7. Hit `Publish Release`
8. Rebase quickfix changes back into __dev__ if quickfixes where made
![rebase_back](img/rebase_back_release.svg)
## Hotfix releases ## Hotfix releases
![this_is_fine](img/could_not_decrypt.png) ![this_is_fine](img/could_not_decrypt.png)

BIN
docs/img/draft_name.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,338 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="400"
viewBox="182 94 204.25833 203.3114"
version="1.1"
id="svg115"
sodipodi:docname="rebase_back_release.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata121">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs119" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="740"
id="namedview117"
showgrid="false"
units="px"
inkscape:zoom="0.92953528"
inkscape:cx="185.27914"
inkscape:cy="250.74271"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg115" />
<g
id="Hintergrund"
transform="matrix(0.53220791,0,0,0.53220791,84.333466,54.284818)">
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="418"
y="106.636"
id="text4">
<tspan
x="418"
y="106.636"
id="tspan2">dev</tspan>
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="424.68799"
cy="360.51599"
id="ellipse6"
r="24" />
<g
id="g12">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="424.68799"
y1="384.51599"
x2="424.95801"
y2="453.056"
id="line8" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="419.928,445.312 424.967,455.292 429.928,445.272 "
id="polyline10" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="115.1"
y="-31.450001"
id="text16">
<tspan
x="115.1"
y="-31.450001"
id="tspan14" />
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="323.354"
cy="266.09799"
id="ellipse18"
r="23.25" />
<g
id="g24">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
d="m 323.354,289.348 c 1.648,35.872 101.078,15.636 101.298,42.696"
id="path20"
inkscape:connector-curvature="0" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="419.589,324.321 424.67,334.28 429.588,324.24 "
id="polyline22" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="488.254"
y="106.059"
id="text28">
<tspan
x="488.254"
y="106.059"
id="tspan26" />
</text>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="494"
y="104"
id="text32">
<tspan
x="494"
y="104"
id="tspan30" />
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="207.51199"
cy="354.78201"
id="ellipse34"
r="23" />
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="287"
y="106"
id="text38">
<tspan
x="287"
y="106"
id="tspan36">release_x.y.z</tspan>
</text>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="190"
y="107"
id="text42">
<tspan
x="190"
y="107"
id="tspan40">master</tspan>
</text>
<g
id="g48">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="207.51199"
y1="377.78201"
x2="207.052"
y2="450.29199"
id="line44" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="202.102,442.496 207.038,452.528 212.101,442.56 "
id="polyline46" />
</g>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="208.517"
cy="163.239"
id="ellipse50"
r="20" />
<g
id="g56">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
d="m 208.543,184.117 c 0.048,39.375 113.375,7.702 114.685,54.261"
id="path52"
inkscape:connector-curvature="0" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="318.012,230.757 323.291,240.613 328.008,230.476 "
id="polyline54" />
</g>
<g
id="g62">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="208.51801"
y1="183.239"
x2="207.54201"
y2="327.31"
id="line58" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="202.595,319.512 207.527,329.546 212.595,319.58 "
id="polyline60" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="517.79999"
y="196.278"
id="text66">
<tspan
x="517.79999"
y="196.278"
id="tspan64">quickfix</tspan>
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="425.49799"
cy="265.04001"
id="ellipse68"
r="20" />
<g
id="g74">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="425.49799"
y1="285.04001"
x2="424.758"
y2="332.04401"
id="line70" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="419.881,324.203 424.723,334.28 429.88,324.36 "
id="polyline72" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="523.09601"
y="151.021"
id="text78">
<tspan
x="523.09601"
y="151.021"
id="tspan76" />
</text>
<g
id="g84">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="505.672"
y1="196.871"
x2="349.52399"
y2="231.189"
id="line80" />
<polygon
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="339.757,233.335 350.597,236.072 348.45,226.305 "
id="polygon82" />
</g>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="426.63599"
cy="169.187"
id="ellipse86"
r="20" />
<g
id="g92">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="426.63599"
y1="189.187"
x2="425.58899"
y2="240.569"
id="line88" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="420.748,232.705 425.544,242.804 430.746,232.908 "
id="polyline90" />
</g>
<g
id="g98">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="505.672"
y1="195.95399"
x2="455.58701"
y2="235.86501"
id="line94" />
<polygon
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="447.766,242.097 458.703,239.775 452.471,231.955 "
id="polygon96" />
</g>
<g
id="g104">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-dasharray:20;stroke-opacity:1"
x1="248.914"
y1="161.79601"
x2="375.14499"
y2="163.259"
id="line100" />
<polygon
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="385.144,163.374 375.203,158.259 375.087,168.258 "
id="polygon102" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="358.03601"
y="151.479"
id="text108">
<tspan
x="358.03601"
y="151.479"
id="tspan106">REBASE</tspan>
</text>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="380.04401"
y="141.392"
id="text112">
<tspan
x="380.04401"
y="141.392"
id="tspan110" />
</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

270
docs/img/release_branch.svg Normal file
View File

@ -0,0 +1,270 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="330"
viewBox="187 94 205.41288 170.74445"
version="1.1"
id="svg89"
sodipodi:docname="release_branch.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata95">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs93" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="740"
id="namedview91"
showgrid="false"
units="px"
inkscape:zoom="0.98117613"
inkscape:cx="108.31366"
inkscape:cy="166.90326"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg89" />
<g
id="Hintergrund"
transform="matrix(0.48713258,0,0,0.48713258,94.55635,48.360262)">
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="399"
y="107.15"
id="text4">
<tspan
x="399"
y="107.15"
id="tspan2">dev</tspan>
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="424.771"
cy="344.20001"
id="ellipse6"
r="24" />
<g
id="g12">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="424.771"
y1="368.20001"
x2="423.82999"
y2="439.729"
id="line8" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="418.933,431.9 423.801,441.964 428.932,432.031 "
id="polyline10" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="115.1"
y="-31.450001"
id="text16">
<tspan
x="115.1"
y="-31.450001"
id="tspan14" />
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="328.021"
cy="253.45"
id="ellipse18"
r="23.25" />
<g
id="g24">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
d="m 328.021,276.7 c 1.65,35.871 96.496,11.967 96.714,39.028"
id="path20"
inkscape:connector-curvature="0" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="419.673,308.005 424.753,317.964 429.672,307.924 "
id="polyline22" />
</g>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="488.254"
y="106.059"
id="text28">
<tspan
x="488.254"
y="106.059"
id="tspan26" />
</text>
<text
font-size="12.8"
style="font-style:normal;font-weight:normal;font-size:12.80000019px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="494"
y="104"
id="text32">
<tspan
x="494"
y="104"
id="tspan30" />
</text>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="212.17999"
cy="342.13501"
id="ellipse34"
r="23" />
<text
font-size="12.7998"
style="font-style:normal;font-weight:normal;font-size:12.79979992px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="287"
y="106"
id="text38">
<tspan
x="287"
y="106"
id="tspan36">release_x.y.z</tspan>
</text>
<text
font-size="12.7998"
style="font-style:normal;font-weight:normal;font-size:12.79979992px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="190"
y="107"
id="text42">
<tspan
x="190"
y="107"
id="tspan40">master</tspan>
</text>
<g
id="g48">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="212.17999"
y1="365.13501"
x2="211.72"
y2="437.64499"
id="line44" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="206.77,429.849 211.706,439.881 216.769,429.913 "
id="polyline46" />
</g>
<circle
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2;stroke-opacity:1"
cx="213.185"
cy="150.591"
id="ellipse50"
r="20" />
<g
id="g56">
<path
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
d="m 213.211,171.469 c 0.049,39.375 113.375,7.701 114.684,54.261"
id="path52"
inkscape:connector-curvature="0" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="322.679,218.11 327.958,227.965 332.675,217.829 "
id="polyline54" />
</g>
<g
id="g62">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="213.185"
y1="170.591"
x2="212.21001"
y2="314.66299"
id="line58" />
<polyline
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="207.263,306.865 212.195,316.899 217.263,306.933 "
id="polyline60" />
</g>
<g
id="g68">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="455.36099"
y1="199.99001"
x2="369.21399"
y2="233.75999"
id="line64" />
<polygon
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="371.039,238.415 367.389,229.105 359.904,237.409 "
id="polygon66" />
</g>
<text
font-size="12.7998"
style="font-style:normal;font-weight:normal;font-size:12.79979992px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="473.867"
y="199.21899"
id="text72">
<tspan
x="473.867"
y="199.21899"
id="tspan70">quickfix</tspan>
</text>
<text
font-size="12.7998"
style="font-style:normal;font-weight:normal;font-size:12.79979992px;font-family:sans-serif;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none"
x="477.72299"
y="143.7"
id="text80">
<tspan
x="477.72299"
y="143.7"
id="tspan74">PR from release_x.y.z</tspan>
<tspan
x="477.72299"
y="159.7"
id="tspan76">to master</tspan>
<tspan
x="477.72299"
y="175.7"
id="tspan78" />
</text>
<g
id="g86">
<line
style="fill:none;stroke:#000000;stroke-width:2;stroke-opacity:1"
x1="463.84299"
y1="150.63901"
x2="337.75699"
y2="194.093"
id="line82" />
<polygon
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-opacity:1"
points="339.386,198.82 336.128,189.366 328.303,197.351 "
id="polygon84" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.2 KiB