Skip to content

Add doc/release-process.md #856

@jonasnick

Description

@jonasnick

On our path towards a 1.0 release it would help to start with a 0.1 release soon. Ideally, we'd do this in a systematic way and first discuss how we want the process to look like initially.

It would make sense for the process to be similar to Bitcoin Core's. Here are some suggestions, based on my understanding of bitcoin-maintainer-tools/make-tag.py and bitcoin/doc/release-process.md.

We would copy the start of Core's configure.ac into ours:

define(_CLIENT_VERSION_MAJOR, 0)
define(_CLIENT_VERSION_MINOR, 99)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, false)

and replace our AC_INIT with

AC_INIT([libsecp256k1],m4_join([.], _CLIENT_VERSION_MAJOR, _CLIENT_VERSION_MINOR, _CLIENT_VERSION_BUILD)m4_if(_CLIENT_VERSION_RC, [0], [], [rc]_CLIENT_VERSION_RC))

We can print the version at the end of the configure script and a warning if RELEASE is not true.

Now in order to create a release candidate we

  1. Start writing release notes
  2. Create a corresponding release branch
    1. Create a commit to fix the VERSIONS in configure.ac (including RC=1)
    2. Tag the commit with a version of make-tag.py that's adapted to libsecp
    3. Create github release
  3. To create a new release candidate repeat steps 2.i through 2.iii
  4. Once we're happy with the release candidate
    1. Archive the release notes for the new version to doc/release-notes/ (branch master and branch of the release)
    2. Create commit to set IS_RELEASE to true and VERSION_RC to 0
    3. Tag the release
    4. Create a new GitHub release with a link to the archived release notes

This doesn't look as simple as I would have hoped, but it's not terrible. What do you think?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions