Update release documentation. (#3587)

* Update release instructions.

* Add note about wheels.

* Fix

* Update

* update example

* Update RELEASE_PROCESS.rst
This commit is contained in:
Robert Nishihara
2018-12-24 11:09:09 -08:00
committed by Philipp Moritz
parent 3d8f56409b
commit 1e8cdb5421
+30 -17
View File
@@ -3,23 +3,34 @@ Release Process
This document describes the process for creating new releases.
1. **Testing:** Before a release is created, significant testing should be done.
In particular, our continuous integration currently does not include
sufficient coverage for testing at scale and for testing fault tolerance, so
it is important to run tests on clusters of hundreds of machines and to make
sure that the tests complete when some machines are killed.
1. First, you should build wheels that you'd like to use for testing. That can
be done by following the `documentation for building wheels`_.
2. **Libraries:** Make sure that the libraries (e.g., RLlib, Tune) are in a
releasable state.
2. **Testing:** Before a release is created, significant testing should be done.
Run the script `test/stress_tests/run_stress_tests.sh`_ and make sure it
passes. *And make sure it is testing the right version of Ray!* This will use
the autoscaler to start a bunch of machines and run some tests. Any new
stress tests should be added to this script so that they will be run
automatically for future release testing.
3. **Increment the Python version:** Create a PR that increments the Python
3. **Libraries:** Make sure that the libraries (e.g., RLlib, Tune, SGD) are in a
releasable state. TODO(rkn): These libraries should be tested automatically
by the script above, but they aren't yet.
4. **Increment the Python version:** Create a PR that increments the Python
package version. See `this example`_.
4. **Create a GitHub release:** Create a GitHub release through the `GitHub
5. **Create a GitHub release:** Create a GitHub release through the `GitHub
website`_. The release should be created at the commit from the previous
step. This should include release notes.
step. This should include **release notes**. Copy the style and formatting
used by previous releases.
5. **Upload to PyPI Test:** Upload the wheels to the PyPI test site using
6. **Python wheels:** The Python wheels will automatically be built on Travis
and uploaded to the ``ray-wheels`` S3 bucket. Download these wheels (e.g.,
using ``wget``) and install them with ``pip`` and run some simple Ray scripts
to verify that they work.
7. **Upload to PyPI Test:** Upload the wheels to the PyPI test site using
``twine`` (ask Robert to add you as a maintainer to the PyPI project). You'll
need to run a command like
@@ -27,9 +38,9 @@ This document describes the process for creating new releases.
twine upload --repository-url https://test.pypi.org/legacy/ ray/.whl/*
assuming that you've built all of the wheels and put them in ``ray/.whl``
(note that you can also get them from the "ray-wheels" S3 bucket),
that you've installed ``twine``, and that you've made PyPI accounts.
assuming that you've downloaded the wheels from the ``ray-wheels`` S3 bucket
and put them in ``ray/.whl``, that you've installed ``twine`` through
``pip``, and that you've made PyPI accounts.
Test that you can install the wheels with pip from the PyPI test repository
with
@@ -43,9 +54,9 @@ This document describes the process for creating new releases.
installed by checking ``ray.__version__`` and ``ray.__file__``.
Do this at least for MacOS and for Linux, as well as for Python 2 and Python
3.
3. Also do this for different versions of MacOS.
6. **Upload to PyPI:** Now that you've tested the wheels on the PyPI test
8. **Upload to PyPI:** Now that you've tested the wheels on the PyPI test
repository, they can be uploaded to the main PyPI repository. Be careful,
**it will not be possible to modify wheels once you upload them**, so any
mistake will require a new release. You can upload the wheels with a command
@@ -64,5 +75,7 @@ This document describes the process for creating new releases.
finds the correct Ray version, and successfully runs some simple scripts on
both MacOS and Linux as well as Python 2 and Python 3.
.. _`this example`: https://github.com/ray-project/ray/pull/1745
.. _`documentation for building wheels`: https://github.com/ray-project/ray/blob/master/python/README-building-wheels.md
.. _`test/stress_tests/run_stress_tests.sh`: https://github.com/ray-project/ray/blob/master/test/stress_tests/run_stress_tests.sh
.. _`this example`: https://github.com/ray-project/ray/pull/3420
.. _`GitHub website`: https://github.com/ray-project/ray/releases