Skip to content

Commit 214f628

Browse files
authored
Document release process (#5)
Since we've made the first proper release, let's document the process so that it goes quicker next time.
1 parent 6bbc5dc commit 214f628

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

RELEASING.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
How to update to newer OpenSSL version, build, and publish a release.
2+
3+
1. **Clone this repository.**
4+
5+
```shell
6+
git clone https://github.com/cossacklabs/openssl-apple
7+
```
8+
9+
Make sure you're on the `cossacklabs` branch.
10+
11+
2. **Update OpenSSL version.**
12+
13+
The version number is in the [`Makefile`](Makefile).
14+
15+
Also update tarball checksums in [`build-libssl.sh`](build-libssl.sh).
16+
17+
3. **Update platform configuration.**
18+
19+
Things like minimum OS SDK versions, architectures, etc.
20+
You can find all this in the [`Makefile`](Makefile).
21+
22+
4. **Build OpenSSL.**
23+
24+
```shell
25+
make
26+
```
27+
28+
This can take a while.
29+
Not only it builds the library, this also packages it,
30+
and updates the project specs.
31+
32+
5. **Commit, tag, push the release.**
33+
34+
```shell
35+
git add carthage
36+
git commit -S -e -m "OpenSSL 1.1.1g"
37+
git tag -s -e -m "OpenSSL 1.1.1g" v1.1.107
38+
git push origin cossacklabs # Push the branch
39+
git push origin v1.1.107 # Push the tag
40+
```
41+
42+
Make will remind you how to do this.
43+
(Use the correct versions there.)
44+
Take care to make signed commits and tags, this is important for vanity.
45+
46+
Congratulations!
47+
You have just published a broken Carthage package.
48+
49+
6. **Publish GitHub release with binary framework files.**
50+
51+
Go to GitHub release page for the tag:
52+
53+
https://github.com/cossacklabs/openssl-apple/releases/tag/v1.1.107
54+
55+
press **Edit tag** and upload `*.zip` packages from `output` directory.
56+
57+
Also, describe the release, press the **Publish release** when done.
58+
59+
Congratulations!
60+
You should have fixed the Carthage package with this.
61+
62+
7. **Publish podspec.**
63+
64+
```shell
65+
pod trunk push cocoapods/CLOpenSSL.podspec
66+
```
67+
68+
This lints the podspec before publishing it.
69+
If it does not lint then curse at CocoaPods and scrub the release.
70+
71+
Congratulations!
72+
You have published a CocoaPods package.
73+
74+
Actually, you have published all of the OpenSSL.
75+
Now is the time to go check if it *actually* works.
76+
You can use [Themis](https://github.com/cossacklabs/themis) for that.

0 commit comments

Comments
 (0)