diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..12bfd3603 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,73 @@ +# Making a Release of Notebook + +## Start from a fresh git checkout and conda environment + +### Set the release branch + +```bash +export release_branch=master +``` + +### Create the git checkout + +```bash +git clone git@github.com:jupyter/notebook.git +cd notebook +git checkout ${release_banch} +``` + +### Create and activate the conda environment + +```bash +conda create -n notebook-release -c conda-forge jupyter +conda activate notebook-release +``` + +## Perform a local dev install + +```bash +pip install -ve . +``` + +## Install release dependencies + +```bash +conda install -c conda-forge nodejs babel twine +npm install -g po2json +``` + +## Update the version + +```bash +vim notebook/_version.py +python setup.py jsversion +git commit -am "Release $(python setup.py --version)" +git tag $(python setup.py --version) +``` + +## Create the artifacts + +```bash +rm -rf dist +python setup.py sdist +python setup.py bdist_wheel +``` + +## Upload the artifacts + +```bash +twine check dist/* && twine upload dist/* +``` + +## Change back to dev version + +```bash +vim notebook/_version.py # Add the .dev suffix +git commit -am "Back to dev version" +``` + +## Push the commits and tags + +```bash +git push origin ${release_branch} --tags +``` diff --git a/docs/source/development_release.rst b/docs/source/development_release.rst deleted file mode 100644 index 4350ace10..000000000 --- a/docs/source/development_release.rst +++ /dev/null @@ -1,67 +0,0 @@ -.. _notebook_release: - -Making a Notebook release -========================= - -This document guides a contributor through creating a release of the Jupyter -notebook. - -Check installed tools ---------------------- - -Review ``CONTRIBUTING.rst``. Make sure all the tools needed to generate the -minified JavaScript and CSS files are properly installed. - -Clean the repository --------------------- - -You can remove all non-tracked files with: - -.. code:: bash - - git clean -xfdi - -This would ask you for confirmation before removing all untracked files. Make -sure the ``dist/`` folder is clean and avoid stale build from -previous attempts. - -Create the release ------------------- - -#. Update version number in ``notebook/_version.py``. - -#. Run this command: - - .. code:: bash - - python setup.py jsversion - - It will modify (at least) ``notebook/static/base/js/namespace.js`` which - makes the notebook version available from within JavaScript. - -#. Commit and tag the release with the current version number: - - .. code:: bash - - git commit -am "release $VERSION" - git tag $VERSION - -#. You are now ready to build the ``sdist`` and ``wheel``: - - .. code:: bash - - python setup.py sdist - python setup.py bdist_wheel - -#. You can now test the ``wheel`` and the ``sdist`` locally before uploading - to PyPI. Make sure to use `twine `_ to - upload the archives over SSL. - - .. code:: bash - - twine upload dist/* - -#. If all went well, change the ``notebook/_version.py`` back adding the - ``.dev`` suffix. - -#. Push directly on master, not forgetting to push ``--tags`` too. diff --git a/docs/source/index.rst b/docs/source/index.rst index d61dcac31..71e2ca132 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -33,7 +33,6 @@ The Jupyter Notebook :caption: Contributor Documentation contributing - development_release development_faq .. toctree::