Skip to content

How to make a Splash release

Mikhail Korobov edited this page Feb 5, 2019 · 25 revisions

(these notes are for maintainers)

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.

Update version numbers in:

  1. changelog;
  2. __init__.py;
  3. docs/conf.py.

TODO: automate it with bumpversion

Commit version number changes (e.g. 'bump version to 3.3').

Add git tag to the last commit; it should be exactly the same as new version number (e.g. 3.3).

Push changes to github.

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)

Then update automated Splash Docker builds:

  1. Go to https://cloud.docker.com/u/scrapinghub/repository/docker/scrapinghub/splash/hubbuilds
  2. Find a row with Docker Tag Name == 'latest'; change tag name to latest version number (e.g. 3.3); click "Save Changes" and then "Trigger Build".
  3. Create a new automated build for the release: Docker tag should be equal to git tag (e.g. 3.3 and 3.3). (this should be handled by new DockerHub 'sourceref' feature')

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://cloud.docker.com/u/scrapinghub/repository/docker/scrapinghub/splash-jupyter/hubbuilds ;
  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