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 ```