Skip to content

How to make a Splash release

Adrián Chaves edited this page Aug 17, 2020 · 25 revisions

Note: these notes are for maintainers.

Prepare

Check before release:

  1. changelog is up-to-date;
  2. Tests are passing on Travis;
  3. Splash build is successful on DockerHub;
  4. Splash-Jupyter build is successful on DockerHub.
  5. Run python setup.py sdist and check that all files are included; pay special attention to css/js/Lua files.

GitHub

Use bump2version to create a commit that upgrades the version number as needed in the code, and tags that commit with the version number.

Push changes to GitHub. Make sure you push the tag as well.

PyPI

After versions are updated, make a new PyPI release:

  1. python setup.py sdist bdist_wheel
  2. twine upload dist/splash-3.3.tar.gz (find .tar.gz file created at step 1)
  3. twine upload dist/splash-3.3-py3-none-any.whl (find a .whl file created at step 1)

Docker Hub

Update the new version Splash Docker tag:

  1. Wait for the Splash build of the new version tag to finish.
  2. Run docker run scrapinghub/splash:<new version tag> --version locally and check that the output is the new version.

Update the latest Splash Docker tag:

  1. In the automated build configuration page update the latest Docker tag to point to new source tag (add a new entry, delete the old one and select Save)
  2. In the Builds tab, select Trigger on the row with latest as Docker Tag.
  3. Wait for that Splash build to finish.
  4. Run docker rmi -f scrapinghub/splash locally to remove the previous latest image from your system.
  5. Run docker run scrapinghub/splash:latest --version locally and check that the output is the new version.

Then update Splash-Jupyter Docker builds. If you're doing a minor/major release (e.g. 3.3):

  1. Create a new git branch named A.B.x for the new release (e.g. 3.3.x).
  2. Add a change like this to this branch - update FROM directive in dockerfiles/splash-jupyter/Dockerfile to use latest Splash release version; push it to github;
  3. Go to https://hub.docker.com/repository/docker/scrapinghub/splash-jupyter/builds/edit ;
  4. Find a row with Docker Tag Name == 'latest'; change branch name to match latest version number (e.g. 3.3.x); click "Trigger Build".
  5. Create a new automated build for the release: git branch should be the release branch (e.g. 3.3.x), docker tag name should be version number (e.g. 3.3), Dockerfile location should be "/dockerfiles/splash-jupyter".

If you're doing a point release (e.g. 2.1.1):

  1. Merge changes from master to A.B.x branch (e.g. to 2.1.x);
  2. Add a change like this to this branch - update FROM directive in dockerfiles/splash-jupyter/Dockerfile to use latest Splash release version.
Clone this wiki locally