|
| 1 | +.. _contributing/release: |
| 2 | + |
| 3 | +================ |
| 4 | +Making a release |
| 5 | +================ |
| 6 | + |
| 7 | +We should release early & often, following `semver <https://semver.org/>`_ wherever possible. |
| 8 | + |
| 9 | +Packages in this repository |
| 10 | +=========================== |
| 11 | + |
| 12 | +This repo has more than one package. |
| 13 | + |
| 14 | +#. The primary ``jupyter-server-proxy`` python package. This contains the actual proxying |
| 15 | + code, and the classic notebook extension. This is published on `PyPI <https://pypi.org>`_. |
| 16 | + |
| 17 | +#. The JupyterLab plugin, ``jupyterlab-server-proxy``. This provides the launcher icons in |
| 18 | + JupyterLab. |
| 19 | + |
| 20 | +#. Various python packages in ``contrib/``. These are convenience packages that help set up |
| 21 | + a particular application for use - such as RStudio or Theia. |
| 22 | + |
| 23 | +We try to keep the version numbers of all these packages in sync, even when there are no |
| 24 | +changes. This keeps reasoning about versions simple. |
| 25 | + |
| 26 | +Gaining Access Privileges |
| 27 | +========================= |
| 28 | + |
| 29 | +Before making a release, you need access privileges for the following. |
| 30 | + |
| 31 | +#. Write access to the `GitHub repo <https://github.com/jupyterhub/jupyter-server-proxy>`_. |
| 32 | + |
| 33 | +#. Publish access to the various python packages on PyPI. |
| 34 | + |
| 35 | +#. Publish access to the JupyterLab plugin on `NPM <https://www.npmjs.com/>`_. |
| 36 | + |
| 37 | +Release checklist |
| 38 | +================= |
| 39 | + |
| 40 | +#. Update the package version number in ``setup.py``. |
| 41 | + |
| 42 | +#. Update the JupyterLab plugin's version to match, in ``jupyterlab-server-proxy/package.json``. |
| 43 | + We keep these two versions in sync to avoid figuring out a matrix of 'which version of |
| 44 | + the python package is compatible with which version of the JupyterLab plugin?' |
| 45 | + |
| 46 | +#. Commit these changes and make a pull request with it. |
| 47 | + |
| 48 | +#. Once pull request is merged, make a tag of form ``v<version-number>``: |
| 49 | + |
| 50 | + .. code:: |
| 51 | +
|
| 52 | + git tag -a v<version-number> |
| 53 | +
|
| 54 | + And push it to the official repository |
| 55 | + |
| 56 | + .. code:: |
| 57 | + |
| 58 | + git push git@github.com:jupyterhub/jupyter-server-proxy --tags |
| 59 | +
|
| 60 | +#. Publish the package on PyPI |
| 61 | + |
| 62 | + .. code:: |
| 63 | +
|
| 64 | + pip install twine |
| 65 | + rm -rf dist/* |
| 66 | + python3 setup.py sdist bdist_wheel |
| 67 | + twine upload dist/* |
| 68 | +
|
| 69 | +#. Publish the JupyterLab plugin on npm |
| 70 | + |
| 71 | + .. code:: |
| 72 | +
|
| 73 | + cd jupyterlab-server-proxy |
| 74 | + npm publish |
| 75 | +
|
0 commit comments