• Show log

    Commit

  • Hash : 2ae45bc3
    Author : Patrick Steinhardt
    Date : 2020-01-30T11:40:13

    scripts: add script to create releases
    
    The current release process is not documented in any way. As a result,
    it's not obvious how releases should be done at all, like e.g. which
    locations need adjusting.
    
    To fix this, let's introduce a new script that shall from now on be used
    to do all releases. As input it gets the tree that shall be released,
    the repository in which to do the release, credentials to
    authenticate against GitHub and the new version. E.g. executing the
    following will create a new release v0.32:
    
        $ ./script/release.py 0.32.0 --user pks-t --password ****
    
    While the password may currently be your usual GitLab password, it's
    recommended to use a personal access token intead.
    
    The script will then perform the following steps:
    
        1. Verify that "include/git2/version.h" matches the new version.
    
        2. Verify that "docs/changelog.md" has a section for that new
           version.
    
        3. Extract the changelog entries for the current release from
           "docs/changelog.md".
    
        4. Generate two archives in "tar.gz" and "zip" format via "git
           archive" from the tree passed by the user. If no tree was passed,
           we will use "HEAD".
    
        5. Create the GitHub release using the extracted changelog entries
           as well as tag and name information derived from the version
           passed by the used.
    
        6. Upload both code archives to that release.
    
    This should cover all steps required for a new release and thus ensures
    that nothing is missing that shouldn't be.