github.com/artpar/rclone@v1.67.3/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    * [gh the github cli](https://github.com/cli/cli) for uploading packages
     8    * pandoc for making the html and man pages
     9  
    10  ## Making a release
    11  
    12    * git checkout master # see below for stable branch
    13    * git pull # IMPORTANT
    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 origin # without --follow-tags so it doesn't push the tag if it fails
    25    * git push --follow-tags origin
    26    * # Wait for the GitHub builds to complete then...
    27    * make fetch_binaries
    28    * make tarball
    29    * make vendorball
    30    * make sign_upload
    31    * make check_sign
    32    * make upload
    33    * make upload_website
    34    * make upload_github
    35    * make startdev # make startstable for stable branch
    36    * # announce with forum post, twitter post, patreon post
    37  
    38  ## Update dependencies
    39  
    40  Early in the next release cycle update the dependencies
    41  
    42    * Review any pinned packages in go.mod and remove if possible
    43    * make updatedirect
    44    * make GOTAGS=cmount
    45    * make compiletest
    46    * git commit -a -v
    47    * make update
    48    * make GOTAGS=cmount
    49    * make compiletest
    50    * roll back any updates which didn't compile
    51    * git commit -a -v --amend
    52    * **NB** watch out for this changing the default go version in `go.mod`
    53  
    54  Note that `make update` updates all direct and indirect dependencies
    55  and there can occasionally be forwards compatibility problems with
    56  doing that so it may be necessary to roll back dependencies to the
    57  version specified by `make updatedirect` in order to get rclone to
    58  build.
    59  
    60  ## Tidy beta
    61  
    62  At some point after the release run
    63  
    64      bin/tidy-beta v1.55
    65  
    66  where the version number is that of a couple ago to remove old beta binaries.
    67  
    68  ## Making a point release
    69  
    70  If rclone needs a point release due to some horrendous bug:
    71  
    72  Set vars
    73  
    74    * BASE_TAG=v1.XX          # e.g. v1.52
    75    * NEW_TAG=${BASE_TAG}.Y   # e.g. v1.52.1
    76    * echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1
    77  
    78  First make the release branch.  If this is a second point release then
    79  this will be done already.
    80  
    81    * git co -b ${BASE_TAG}-stable ${BASE_TAG}.0
    82    * make startstable
    83  
    84  Now
    85  
    86    * git co ${BASE_TAG}-stable
    87    * git cherry-pick any fixes
    88    * Do the steps as above
    89    * make startstable
    90    * git co master
    91    * `#` cherry pick the changes to the changelog - check the diff to make sure it is correct
    92    * git checkout ${BASE_TAG}-stable docs/content/changelog.md
    93    * git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
    94    * git push
    95  
    96  ## Sponsor logos
    97  
    98  If updating the website note that the sponsor logos have been moved out of the main repository.
    99  
   100  You will need to checkout `/docs/static/img/logos` from https://github.com/rclone/third-party-logos
   101  which is a private repo containing artwork from sponsors.
   102  
   103  ## Update the website between releases
   104  
   105  Create an update website branch based off the last release
   106  
   107      git co -b update-website
   108  
   109  If the branch already exists, double check there are no commits that need saving.
   110  
   111  Now reset the branch to the last release
   112  
   113      git reset --hard v1.64.0
   114  
   115  Create the changes, check them in, test with `make serve` then
   116  
   117      make upload_test_website
   118  
   119  Check out https://test.rclone.org and when happy
   120  
   121      make upload_website
   122  
   123  Cherry pick any changes back to master and the stable branch if it is active.
   124  
   125  ## Making a manual build of docker
   126  
   127  To do a basic build of rclone's docker image to debug builds locally:
   128  
   129  ```
   130  docker buildx build --load -t artpar/artpar:testing --progress=plain .
   131  docker run --rm artpar/artpar:testing version
   132  ```
   133  
   134  To test the multipatform build
   135  
   136  ```
   137  docker buildx build -t artpar/artpar:testing --progress=plain --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6 .
   138  ```
   139  
   140  To make a full build then set the tags correctly and add `--push`
   141  
   142  ```
   143  docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 -t artpar/artpar:1.54.1 -t artpar/artpar:1.54 -t artpar/artpar:1 -t artpar/artpar:latest --push .
   144  ```