love for distribution doc

This commit is contained in:
max furman 2019-09-13 17:10:05 -07:00
parent 28aed2d795
commit ae7c046916

View file

@ -15,30 +15,32 @@ e.g. `v1.0.2`
* **Release Candidate**: not ready for public use, still testing. must have a * **Release Candidate**: not ready for public use, still testing. must have a
`-rc*` suffix. e.g. `v1.0.2-rc` or `v1.0.2-rc.4` `-rc*` suffix. e.g. `v1.0.2-rc` or `v1.0.2-rc.4`
---
1. **Update the version of step/cli** 1. **Update the version of step/cli**
``` <pre><code>
$ dep ensure -update github.com/smallstep/cli <b>$ dep ensure -update github.com/smallstep/cli</b>
``` </code></pre>
2. **Commit all changes.** 2. **Commit all changes.**
Make sure that the local checkout is up to date with the remote origin and Make sure that the local checkout is up to date with the remote origin and
that all local changes have been pushed. that all local changes have been pushed.
``` <pre><code>
$ git pull --rebase origin master <b>$ git pull --rebase origin master</b>
$ git push <b>$ git push</b>
``` </code></pre>
3. **Tag it!** 3. **Tag it!**
1. **Find the most recent tag.** 1. **Find the most recent tag.**
``` <pre><code>
$ git fetch --tags <b>$ git fetch --tags</b>
$ git tag <b>$ git tag</b>
``` </code></pre>
The new tag needs to be the logical successor of the most recent existing tag. The new tag needs to be the logical successor of the most recent existing tag.
See [versioning](#versioning) section for more information on version numbers. See [versioning](#versioning) section for more information on version numbers.
@ -47,14 +49,14 @@ e.g. `v1.0.2`
Is the new release a *release candidate* or a *standard release*? Is the new release a *release candidate* or a *standard release*?
1. Release Candidate 1. **Release Candidate**
If the most recent tag is a standard release, say `v1.0.2`, then the version If the most recent tag is a standard release, say `v1.0.2`, then the version
of the next release candidate should be `v1.0.3-rc.1`. If the most recent tag of the next release candidate should be `v1.0.3-rc.1`. If the most recent tag
is a release candidate, say `v1.0.2-rc.3`, then the version of the next is a release candidate, say `v1.0.2-rc.3`, then the version of the next
release candidate should be `v1.0.2-rc.4`. release candidate should be `v1.0.2-rc.4`.
2. Standard Release 2. **Standard Release**
If the most recent tag is a standard release, say `v1.0.2`, then the version If the most recent tag is a standard release, say `v1.0.2`, then the version
of the next standard release should be `v1.0.3`. If the most recent tag of the next standard release should be `v1.0.3`. If the most recent tag
@ -64,21 +66,25 @@ e.g. `v1.0.2`
3. **Create a local tag.** 3. **Create a local tag.**
``` <pre><code>
$ git tag v1.0.3 # standard release # standard release
<b>$ git tag v1.0.3</b>
...or ...or
$ git tag v1.0.3-rc.1 # release candidate # release candidate
``` <b>$ git tag v1.0.3-rc.1</b>
</code></pre>
4. **Push the new tag to the remote origin.** 4. **Push the new tag to the remote origin.**
``` <pre><code>
$ git push origin tag v1.0.3 # standard release # standard release
<b>$ git push origin tag v1.0.3</b>
...or ...or
$ git push origin tag v1.0.3-rc.1 # release candidate # release candidate
``` <b>$ git push origin tag v1.0.3-rc.1</b>
</code></pre>
4. Check the build status at 4. **Check the build status at**
[Travis-CI](https://travis-ci.com/smallstep/certificates/builds/). [Travis-CI](https://travis-ci.com/smallstep/certificates/builds/).
Travis will begin by verifying that there are no compilation or linting errors Travis will begin by verifying that there are no compilation or linting errors
@ -93,21 +99,21 @@ e.g. `v1.0.2`
* **step-certificates_1.0.3_darwin_amd64.tar.gz**: tarball containing a statically compiled darwin binary. * **step-certificates_1.0.3_darwin_amd64.tar.gz**: tarball containing a statically compiled darwin binary.
* **step-certificates.tar.gz**: tarball containing a git archive of the full repo. * **step-certificates.tar.gz**: tarball containing a git archive of the full repo.
6. **Update the AUR Arch Linux package** 5. **Update the AUR Arch Linux package**
> **NOTE**: if you plan to release `cli` next then you can skip this step. > **NOTE**: if you plan to release `cli` next then you can skip this step.
``` <pre><code>
$ cd archlinux <b>$ cd archlinux</b>
# Get up to date... # Get up to date...
$ git pull origin master <b>$ git pull origin master</b>
$ make <b>$ make</b>
$ ./update --ca v1.0.3 <b>$ ./update --ca v1.0.3</b>
``` </code></pre>
7. **Update the Helm packages** 6. **Update the Helm packages**
> **NOTE**: This is an optional step, only necessary if we want to release a > **NOTE**: This is an optional step, only necessary if we want to release a
> new helm package. > new helm package.
@ -125,9 +131,9 @@ e.g. `v1.0.2`
Then create the step-certificates package running: Then create the step-certificates package running:
```sh <pre><code>
$ helm package ./step-certificates <b>$ helm package ./step-certificates</b>
``` </code></pre>
A new file like `step-certificates-<version>.tgz` will be created. A new file like `step-certificates-<version>.tgz` will be created.
Now commit and push your changes (don't commit the tarball) to the master Now commit and push your changes (don't commit the tarball) to the master
@ -136,15 +142,15 @@ e.g. `v1.0.2`
Next checkout the `gh-pages` branch. `git add` the new tar-ball and update Next checkout the `gh-pages` branch. `git add` the new tar-ball and update
the index.yaml using the `helm repo index` command: the index.yaml using the `helm repo index` command:
```sh <pre><code>
$ git checkout gh-pages <b>$ git checkout gh-pages</b>
$ git add "step-certificates-<version>.tgz" <b>$ git add "step-certificates-<version>.tgz"</b>
$ helm repo index --merge index.yaml --url https://smallstep.github.io/helm-charts/ . <b>$ helm repo index --merge index.yaml --url https://smallstep.github.io/helm-charts/ .</b>
$ git commit -a -m "Add package for step-certificates <appVersion>" <b>$ git commit -a -m "Add package for step-certificates <appVersion>"</b>
$ git push origin gh-pages <b>$ git push origin gh-pages</b>
``` </code></pre>
*All Done!* ***All Done!***
## Versioning ## Versioning