|
@@ -8,7 +8,7 @@ This document guides a contributor through creating a release of JupyterLab.
|
|
|
Review ``CONTRIBUTING.md``. Make sure all the tools needed to generate the
|
|
|
built JavaScript files are properly installed.
|
|
|
|
|
|
-## Create the release
|
|
|
+## Creating a full release
|
|
|
|
|
|
We publish the npm packages, a Python source package, and a Python universal binary wheel. We also publish a conda package on conda-forge (see below).
|
|
|
See the Python docs on [package uploading](https://packaging.python.org/guides/tool-recommendations/)
|
|
@@ -25,7 +25,7 @@ requirement from getting a conflict.
|
|
|
npm run publish
|
|
|
```
|
|
|
|
|
|
-### Publish the python package
|
|
|
+### Publish the Python package
|
|
|
|
|
|
- Update `jupyterlab/_version.py` with an `rc` version
|
|
|
- Prep the static assets for release:
|
|
@@ -35,7 +35,7 @@ npm run build:static
|
|
|
```
|
|
|
|
|
|
- Commit and tag and push the tag
|
|
|
-- Create the python release artifacts:
|
|
|
+- Create the Python release artifacts:
|
|
|
|
|
|
```bash
|
|
|
rm -rf dist
|
|
@@ -51,33 +51,41 @@ twine upload dist/*
|
|
|
- The build will fail if we forget to include `style/` in the `files:`
|
|
|
of a package (it will fail on the `jupyter lab build` command because
|
|
|
webpack cannot find the referenced styles to import.
|
|
|
+- Update the other repos listed below
|
|
|
+- Update the extension examples listed below
|
|
|
+- Update the xkcd tutorial
|
|
|
- Update `jupyterlab/_version.py` with a final version
|
|
|
- Make another Python release
|
|
|
-- Get the sha256 hash for conda-forge release:
|
|
|
-
|
|
|
-```bash
|
|
|
-shasum -a 256 dist/*.tar.gz
|
|
|
-```
|
|
|
-
|
|
|
-### Publish to conda-forge
|
|
|
-- Fork https://github.com/conda-forge/jupyterlab-feedstock
|
|
|
-- Create a PR with the version bump
|
|
|
-- Update `recipe/meta.yaml` with the new version and md5 and reset the build number to 0.
|
|
|
-
|
|
|
-### Update the cookie cutters as necessary
|
|
|
-- Update https://github.com/jupyterlab/extension-cookiecutter-js
|
|
|
-- Update https://github.com/jupyterlab/extension-cookiecutter-ts
|
|
|
-- Update https://github.com/jupyterlab/mimerender-cookiecutter
|
|
|
-
|
|
|
-### Update the extension examples
|
|
|
+- Create a branch for the release and push to GitHub
|
|
|
+- Merge the PRs on the other repos and set the default branch of the
|
|
|
+xckd repo
|
|
|
+- Publish to conda-forge (see below)
|
|
|
+- Update `jupyterlab/_version.py` with a `dev` version
|
|
|
+- Commit and push the version update to master
|
|
|
+- Release the other repos as appropriate
|
|
|
+
|
|
|
+### Other repos to update
|
|
|
+- https://github.com/jupyterlab/extension-cookiecutter-js
|
|
|
+- https://github.com/jupyterlab/extension-cookiecutter-ts
|
|
|
+- https://github.com/jupyterlab/mimerender-cookiecutter
|
|
|
+- https://github.com/jupyterlab/mimerender-cookiecutter-ts
|
|
|
+- https://github.com/jupyterlab/jupyter-renderers
|
|
|
+- https://github.com/jupyterhub/jupyterlab-hub
|
|
|
+
|
|
|
+
|
|
|
+### Extension examples to update
|
|
|
- https://github.com/jupyterlab/jupyterlab/blob/master/docs/notebook.md#adding-a-button-to-the-toolbar
|
|
|
|
|
|
-### Update the xkcd tutorial
|
|
|
+
|
|
|
+### Updating the xkcd tutorial
|
|
|
- Create a new empty branch in the xkcd repo.
|
|
|
|
|
|
```bash
|
|
|
-git checkout --orphan NEWBRANCH
|
|
|
+git checkout --orphan name-of-branch
|
|
|
git rm -rf .
|
|
|
+cookiecutter path-to-local-extension-cookiecutter-ts
|
|
|
+cp -r jupyterlab_xkcd/ .
|
|
|
+rm -rf jupyterlab_xkcd
|
|
|
```
|
|
|
|
|
|
- Create a new PR in JupyterLab.
|
|
@@ -90,21 +98,28 @@ files from the previous branch, as well as the `package.json` fields up to
|
|
|
- Push the branch and set it as the default branch for the tutorial repo.
|
|
|
- Submit the PR to JupyterLab
|
|
|
|
|
|
-### Set master back to dev version
|
|
|
-- Create a branch for the release and push to github.
|
|
|
-- Update `jupyterlab/_version.py` with a `dev` version.
|
|
|
-- Commit and push the version update.
|
|
|
+
|
|
|
+### Publishing to conda-forge
|
|
|
+- Get the sha256 hash for conda-forge release:
|
|
|
+
|
|
|
+```bash
|
|
|
+shasum -a 256 dist/*.tar.gz
|
|
|
+```
|
|
|
+
|
|
|
+- Fork https://github.com/conda-forge/jupyterlab-feedstock
|
|
|
+- Create a PR with the version bump
|
|
|
+- Update `recipe/meta.yaml` with the new version and md5 and reset the build number to 0.
|
|
|
|
|
|
|
|
|
-## Making a patch release of a JavaScript Package
|
|
|
-- Create a branch based on the last Python release if one does not exist.
|
|
|
-- Create a PR against that branch with the changes.
|
|
|
-- Merge the PR.
|
|
|
-- Run the following script from the branch to make a patch release,
|
|
|
-where the package is in `/packages/packageFolder`:
|
|
|
+## Making a patch release of a JavaScript package
|
|
|
+- Backport the change to the previous release branch
|
|
|
+- Make a new PR against master
|
|
|
+- Run the following script, where the package is in `/packages/package-folder-name`:
|
|
|
|
|
|
```bash
|
|
|
-npm run patch:release packageFolder
|
|
|
+npm run patch:release package-folder-name
|
|
|
```
|
|
|
|
|
|
- Push the resulting commit and tag.
|
|
|
+- Backport the release update to the previous release branch
|
|
|
+- Create a new Python release on the previous branch
|