1
mirror of https://github.com/rclone/rclone synced 2024-12-02 11:53:45 +01:00
rclone/RELEASE.md
Nick Craig-Wood 1ce0b45965 build: Stop tagged releases making a current beta - fixes #4789
Before this change stable releases updated the current beta which mean
confusingly the current beta release would jump backwards from
1.54.0-beta to 1.53.3-beta say.

This commit stops any tagged build making a current beta release. They
will still make beta releases, they just won't update the
rclone*current*.zip and version.txt files.

This also means that a .0 release will not make a current beta like it
does at the moment.
2020-11-25 09:48:29 +00:00

2.5 KiB

Release

This file describes how to make the various kinds of releases

Extra required software for making a release

  • github-release for uploading packages
  • pandoc for making the html and man pages

Making a release

  • git checkout master # see below for stable branch
  • git pull
  • git status - make sure everything is checked in
  • Check GitHub actions build for master is Green
  • make test # see integration test server or run locally
  • make tag
  • edit docs/content/changelog.md # make sure to remove duplicate logs from point releases
  • make tidy
  • make doc
  • git status - to check for new man pages - git add them
  • git commit -a -v -m "Version v1.XX.0"
  • make retag
  • git push --follow-tags origin
  • Wait for the GitHub builds to complete then...

  • make fetch_binaries
  • make tarball
  • make vendorball
  • make sign_upload
  • make check_sign
  • make upload
  • make upload_website
  • make upload_github
  • make startdev # make startstable for stable branch
  • announce with forum post, twitter post, patreon post

Early in the next release cycle update the dependencies

  • Review any pinned packages in go.mod and remove if possible
  • make update
  • git status
  • git add new files
  • git commit -a -v

Making a point release

If rclone needs a point release due to some horrendous bug:

Set vars

  • BASE_TAG=v1.XX # e.g. v1.52
  • NEW_TAG=${BASE_TAG}.Y # e.g. v1.52.1
  • echo $BASE_TAG $NEW_TAG # v1.52 v1.52.1

First make the release branch. If this is a second point release then this will be done already.

  • git branch ${BASE_TAG} ${BASE_TAG}-stable
  • git co ${BASE_TAG}-stable
  • make startstable

Now

  • git co ${BASE_TAG}-stable
  • git cherry-pick any fixes
  • Do the steps as above
  • make startstable
  • git co master
  • # cherry pick the changes to the changelog - check the diff to make sure it is correct
  • git checkout ${BASE_TAG}-stable docs/content/changelog.md
  • git commit -a -v -m "Changelog updates from Version ${NEW_TAG}"
  • git push

Making a manual build of docker

The rclone docker image should autobuild on via GitHub actions. If it doesn't or needs to be updated then rebuild like this.

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