rclone/RELEASE.md

105 lines
3.3 KiB
Markdown
Raw Normal View History

2019-09-02 12:05:29 +00:00
# Release
This file describes how to make the various kinds of releases
## Extra required software for making a release
* [gh the github cli](https://github.com/cli/cli) for uploading packages
2015-02-04 22:31:56 +00:00
* pandoc for making the html and man pages
2019-09-02 12:05:29 +00:00
## Making a release
2020-09-03 10:29:33 +00:00
* git checkout master # see below for stable branch
2020-02-01 10:31:42 +00:00
* git pull
2017-01-02 14:38:14 +00:00
* git status - make sure everything is checked in
2020-02-01 10:31:42 +00:00
* Check GitHub actions build for master is Green
* make test # see integration test server or run locally
2015-02-04 22:31:56 +00:00
* make tag
2020-02-01 10:31:42 +00:00
* edit docs/content/changelog.md # make sure to remove duplicate logs from point releases
2019-10-26 10:04:54 +00:00
* make tidy
* make doc
2017-01-02 15:30:34 +00:00
* git status - to check for new man pages - git add them
2019-04-13 10:01:58 +00:00
* git commit -a -v -m "Version v1.XX.0"
2015-02-04 22:31:56 +00:00
* make retag
2020-09-13 09:27:24 +00:00
* git push --follow-tags origin
2020-02-01 12:31:44 +00:00
* # Wait for the GitHub builds to complete then...
* make fetch_binaries
* make tarball
* make vendorball
* make sign_upload
* make check_sign
2017-07-22 17:16:46 +00:00
* make upload
* make upload_website
* make upload_github
2020-09-03 10:29:33 +00:00
* make startdev # make startstable for stable branch
2020-05-27 15:11:47 +00:00
* # announce with forum post, twitter post, patreon post
2016-12-14 17:49:26 +00:00
2020-03-04 14:01:25 +00:00
Early in the next release cycle update the dependencies
2019-09-02 12:05:29 +00:00
* Review any pinned packages in go.mod and remove if possible
2016-12-14 17:49:26 +00:00
* make update
* git status
* git add new files
* git commit -a -v
2019-09-02 12:05:29 +00:00
## Making a point release
If rclone needs a point release due to some horrendous bug:
2019-09-02 12:05:29 +00:00
2020-09-03 10:29:33 +00:00
Set vars
2019-09-02 12:05:29 +00:00
* BASE_TAG=v1.XX # e.g. v1.52
* NEW_TAG=${BASE_TAG}.Y # e.g. v1.52.1
2020-06-10 15:49:04 +00:00
* echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1
2020-09-03 10:29:33 +00:00
First make the release branch. If this is a second point release then
this will be done already.
2020-06-10 15:49:04 +00:00
* git branch ${BASE_TAG} ${BASE_TAG}-stable
2020-09-03 10:29:33 +00:00
* git co ${BASE_TAG}-stable
* make startstable
2019-09-02 12:05:29 +00:00
Now
2020-06-10 15:49:04 +00:00
* git co ${BASE_TAG}-stable
* git cherry-pick any fixes
2020-09-03 10:29:33 +00:00
* Do the steps as above
* make startstable
2019-09-02 12:05:29 +00:00
* git co master
* `#` cherry pick the changes to the changelog - check the diff to make sure it is correct
2020-09-03 10:29:33 +00:00
* git checkout ${BASE_TAG}-stable docs/content/changelog.md
* git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
2019-09-02 12:05:29 +00:00
* git push
## Making a manual build of docker
2020-06-10 15:49:04 +00:00
The rclone docker image should autobuild on via GitHub actions. If it doesn't
or needs to be updated then rebuild like this.
See: https://github.com/ilteoood/docker_buildx/issues/19
See: https://github.com/ilteoood/docker_buildx/blob/master/scripts/install_buildx.sh
```
git co v1.54.1
docker pull golang
export DOCKER_CLI_EXPERIMENTAL=enabled
docker buildx create --name actions_builder --use
docker run --rm --privileged docker/binfmt:820fdd95a9972a5308930a2bdfb8573dd4447ad3
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
SUPPORTED_PLATFORMS=$(docker buildx inspect --bootstrap | grep 'Platforms:*.*' | cut -d : -f2,3)
echo "Supported platforms: $SUPPORTED_PLATFORMS"
docker buildx build --platform linux/amd64,linux/386,linux/arm64,linux/arm/v7 -t rclone/rclone:1.54.1 -t rclone/rclone:1.54 -t rclone/rclone:1 -t rclone/rclone:latest --push .
docker buildx stop actions_builder
```
### Old build for linux/amd64 only
```
2020-06-10 15:51:05 +00:00
docker pull golang
docker build --rm --ulimit memlock=67108864 -t rclone/rclone:1.52.0 -t rclone/rclone:1.52 -t rclone/rclone:1 -t rclone/rclone:latest .
docker push rclone/rclone:1.52.0
docker push rclone/rclone:1.52
docker push rclone/rclone:1
docker push rclone/rclone:latest
```