github.com/10XDev/rclone@v1.52.3-0.20200626220027-16af9ab76b2a/RELEASE.md (about)

     1  # Release
     2  
     3  This file describes how to make the various kinds of releases
     4  
     5  ## Extra required software for making a release
     6  
     7    * [github-release](https://github.com/aktau/github-release) for uploading packages
     8    * pandoc for making the html and man pages
     9  
    10  ## Making a release
    11  
    12    * git checkout master
    13    * git pull
    14    * git status - make sure everything is checked in
    15    * Check GitHub actions build for master is Green
    16    * make test # see integration test server or run locally
    17    * make tag
    18    * edit docs/content/changelog.md # make sure to remove duplicate logs from point releases
    19    * make tidy
    20    * make doc
    21    * git status - to check for new man pages - git add them
    22    * git commit -a -v -m "Version v1.XX.0"
    23    * make retag
    24    * git push --tags origin master
    25    * # Wait for the GitHub builds to complete then...
    26    * make fetch_binaries
    27    * make tarball
    28    * make sign_upload
    29    * make check_sign
    30    * make upload
    31    * make upload_website
    32    * make upload_github
    33    * make startdev
    34    * # announce with forum post, twitter post, patreon post
    35  
    36  Early in the next release cycle update the vendored dependencies
    37  
    38    * Review any pinned packages in go.mod and remove if possible
    39    * make update
    40    * git status
    41    * git add new files
    42    * git commit -a -v
    43  
    44  If `make update` fails with errors like this:
    45  
    46  ```
    47  # github.com/cpuguy83/go-md2man/md2man
    48  ../../../../pkg/mod/github.com/cpuguy83/go-md2man@v1.0.8/md2man/md2man.go:11:16: undefined: blackfriday.EXTENSION_NO_INTRA_EMPHASIS
    49  ../../../../pkg/mod/github.com/cpuguy83/go-md2man@v1.0.8/md2man/md2man.go:12:16: undefined: blackfriday.EXTENSION_TABLES
    50  ```
    51  
    52  Can be fixed with
    53  
    54      * GO111MODULE=on go get -u github.com/russross/blackfriday@v1.5.2
    55      * GO111MODULE=on go mod tidy
    56      * GO111MODULE=on go mod vendor
    57   
    58  
    59  ## Making a point release
    60  
    61  If rclone needs a point release due to some horrendous bug:
    62  
    63  First make the release branch.  If this is a second point release then
    64  this will be done already.
    65  
    66    * BASE_TAG=v1.XX          # eg v1.49
    67    * NEW_TAG=${BASE_TAG}.Y   # eg v1.49.1
    68    * echo $BASE_TAG $NEW_TAG # v1.49 v1.49.1
    69    * git branch ${BASE_TAG} ${BASE_TAG}-fixes
    70  
    71  Now
    72  
    73    * git co ${BASE_TAG}-fixes
    74    * git cherry-pick any fixes
    75    * Test (see above)
    76    * make NEXT_VERSION=${NEW_TAG} tag
    77    * edit docs/content/changelog.md
    78    * make TAG=${NEW_TAG} doc
    79    * git commit -a -v -m "Version ${NEW_TAG}"
    80    * git tag -d ${NEW_TAG}
    81    * git tag -s -m "Version ${NEW_TAG}" ${NEW_TAG}
    82    * git push --tags -u origin ${BASE_TAG}-fixes
    83    * Wait for builds to complete
    84    * make BRANCH_PATH= TAG=${NEW_TAG} fetch_binaries
    85    * make TAG=${NEW_TAG} tarball
    86    * make TAG=${NEW_TAG} sign_upload
    87    * make TAG=${NEW_TAG} check_sign
    88    * make TAG=${NEW_TAG} upload
    89    * make TAG=${NEW_TAG} upload_website
    90    * make TAG=${NEW_TAG} upload_github
    91    * NB this overwrites the current beta so we need to do this
    92    * git co master
    93    * make VERSION=${NEW_TAG} startdev
    94    * # cherry pick the changes to the changelog and VERSION
    95    * git checkout ${BASE_TAG}-fixes VERSION docs/content/changelog.md
    96    * git commit --amend
    97    * git push
    98    * Announce!
    99  
   100  ## Making a manual build of docker
   101  
   102  The rclone docker image should autobuild on docker hub.  If it doesn't
   103  or needs to be updated then rebuild like this.
   104  
   105  ```
   106  docker build -t rclone/rclone:1.49.1 -t rclone/rclone:1.49 -t rclone/rclone:1 -t rclone/rclone:latest .
   107  docker push rclone/rclone:1.49.1
   108  docker push rclone/rclone:1.49
   109  docker push rclone/rclone:1
   110  docker push rclone/rclone:latest
   111  ```