Skip to content

Commit 9fb7e2f

Browse files
release process: Style and formatting nits
1 parent e7053d0 commit 9fb7e2f

File tree

1 file changed

+27
-31
lines changed

1 file changed

+27
-31
lines changed

doc/release-process.md

+27-31
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Release Process
1+
# Release process
22

33
This document outlines the process for releasing versions of the form `$MAJOR.$MINOR.$PATCH`.
44

@@ -14,31 +14,30 @@ This process also assumes that there will be no minor releases for old major rel
1414

1515
We aim to cut a regular release every 3-4 months, approximately twice as frequent as major Bitcoin Core releases. Every second release should be published one month before the feature freeze of the next major Bitcoin Core release, allowing sufficient time to update the library in Core.
1616

17-
## Sanity Checks
17+
## Sanity checks
1818
Perform these checks when reviewing the release PR (see below):
1919

2020
1. Ensure `make distcheck` doesn't fail.
21-
```shell
22-
./autogen.sh && ./configure --enable-dev-mode && make distcheck
23-
```
21+
```shell
22+
./autogen.sh && ./configure --enable-dev-mode && make distcheck
23+
```
2424
2. Check installation with autotools:
25-
```shell
26-
dir=$(mktemp -d)
27-
./autogen.sh && ./configure --prefix=$dir && make clean && make install && ls -RlAh $dir
28-
gcc -o ecdsa examples/ecdsa.c $(PKG_CONFIG_PATH=$dir/lib/pkgconfig pkg-config --cflags --libs libsecp256k1) -Wl,-rpath,"$dir/lib" && ./ecdsa
29-
```
25+
```shell
26+
dir=$(mktemp -d)
27+
./autogen.sh && ./configure --prefix=$dir && make clean && make install && ls -RlAh $dir
28+
gcc -o ecdsa examples/ecdsa.c $(PKG_CONFIG_PATH=$dir/lib/pkgconfig pkg-config --cflags --libs libsecp256k1) -Wl,-rpath,"$dir/lib" && ./ecdsa
29+
```
3030
3. Check installation with CMake:
31-
```shell
32-
dir=$(mktemp -d)
33-
build=$(mktemp -d)
34-
cmake -B $build -DCMAKE_INSTALL_PREFIX=$dir && cmake --build $build --target install && ls -RlAh $dir
35-
gcc -o ecdsa examples/ecdsa.c -I $dir/include -L $dir/lib*/ -l secp256k1 -Wl,-rpath,"$dir/lib",-rpath,"$dir/lib64" && ./ecdsa
36-
```
37-
4. Use the [`check-abi.sh`](/tools/check-abi.sh) tool to ensure there are no unexpected ABI incompatibilities and that the version number and release notes accurately reflect all potential ABI changes. To run this tool, the `abi-dumper` and `abi-compliance-checker` packages are required.
38-
39-
```shell
40-
tools/check-abi.sh
41-
```
31+
```shell
32+
dir=$(mktemp -d)
33+
build=$(mktemp -d)
34+
cmake -B $build -DCMAKE_INSTALL_PREFIX=$dir && cmake --build $build --target install && ls -RlAh $dir
35+
gcc -o ecdsa examples/ecdsa.c -I $dir/include -L $dir/lib*/ -l secp256k1 -Wl,-rpath,"$dir/lib",-rpath,"$dir/lib64" && ./ecdsa
36+
```
37+
4. Use the [`check-abi.sh`](/tools/check-abi.sh) tool to verify that there are no unexpected ABI incompatibilities and that the version number and the release notes accurately reflect all potential ABI changes. To run this tool, the `abi-dumper` and `abi-compliance-checker` packages are required.
38+
```shell
39+
tools/check-abi.sh
40+
```
4241

4342
## Regular release
4443

@@ -47,12 +46,12 @@ tools/check-abi.sh
4746
* adding a section for the release (make sure that the version number is a link to a diff between the previous and new version),
4847
* removing the `[Unreleased]` section header, and
4948
* including an entry for `### ABI Compatibility` if it doesn't exist,
50-
* sets `_PKG_VERSION_IS_RELEASE` to `true` in `configure.ac`, and
51-
* if this is not a patch release
52-
* updates `_PKG_VERSION_*` and `_LIB_VERSION_*` in `configure.ac` and
49+
* sets `_PKG_VERSION_IS_RELEASE` to `true` in `configure.ac`, and,
50+
* if this is not a patch release,
51+
* updates `_PKG_VERSION_*` and `_LIB_VERSION_*` in `configure.ac`, and
5352
* updates `project(libsecp256k1 VERSION ...)` and `${PROJECT_NAME}_LIB_VERSION_*` in `CMakeLists.txt`.
5453
2. Perform the [sanity checks](#sanity-checks) on the PR branch.
55-
3. After the PR is merged, tag the commit and push it:
54+
3. After the PR is merged, tag the commit, and push the tag:
5655
```
5756
RELEASE_COMMIT=<merge commit of step 1>
5857
git tag -s v$MAJOR.$MINOR.$PATCH -m "libsecp256k1 $MAJOR.$MINOR.$PATCH" $RELEASE_COMMIT
@@ -69,27 +68,24 @@ tools/check-abi.sh
6968

7069
## Maintenance release
7170

72-
Note that bugfixes only need to be backported to releases for which no compatible release without the bug exists.
71+
Note that bug fixes need to be backported only to releases for which no compatible release without the bug exists.
7372

7473
1. If there's no maintenance branch `$MAJOR.$MINOR`, create one:
7574
```
7675
git checkout -b $MAJOR.$MINOR v$MAJOR.$MINOR.$((PATCH - 1))
7776
git push [email protected]:bitcoin-core/secp256k1.git $MAJOR.$MINOR
7877
```
7978
2. Open a pull request to the `$MAJOR.$MINOR` branch that
80-
* includes the bugfixes,
79+
* includes the bug fixes,
8180
* finalizes the release notes similar to a regular release,
8281
* increments `_PKG_VERSION_PATCH` and `_LIB_VERSION_REVISION` in `configure.ac`
8382
and the `$PATCH` component of `project(libsecp256k1 VERSION ...)` and `${PROJECT_NAME}_LIB_VERSION_REVISION` in `CMakeLists.txt`
8483
(with commit message `"release: bump versions for $MAJOR.$MINOR.$PATCH"`, for example).
8584
3. Perform the [sanity checks](#sanity-checks) on the PR branch.
86-
4. After the PRs are merged, update the release branch and tag the commit:
85+
4. After the PRs are merged, update the release branch, tag the commit, and push the tag:
8786
```
8887
git checkout $MAJOR.$MINOR && git pull
8988
git tag -s v$MAJOR.$MINOR.$PATCH -m "libsecp256k1 $MAJOR.$MINOR.$PATCH"
90-
```
91-
5. Push tag:
92-
```
9389
git push [email protected]:bitcoin-core/secp256k1.git v$MAJOR.$MINOR.$PATCH
9490
```
9591
6. Create a new GitHub release with a link to the corresponding entry in [CHANGELOG.md](../CHANGELOG.md).

0 commit comments

Comments
 (0)