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.
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 for twine setup instructions and for why twine is the recommended method.
The command below ensures the latest dependencies and built files,
then prompts you to select package versions. When one package has an
effective major release, the packages that depend on it should also get a
major release, to prevent consumers that are using the ^
semver
requirement from getting a conflict.
jlpm run publish
jupyterlab/_version.py
with an rc
versionjlpm run build:update
rm -rf dist
python setup.py sdist
python setup.py bdist_wheel --universal
twine upload dist/*
rc
in a clean environmentnpm access public @jupyterlab/<name>
to make it public.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.jupyterlab/_version.py
with a final versionjupyterlab/_version.py
with a dev
versionjlpm integrity
to update the dev_mode
versiongit checkout --orphan name-of-branch
git rm -rf .
git clean -dfx
cookiecutter path-to-local-extension-cookiecutter-ts
# Fill in the values from the previous branch package.json
cp -r jupyterlab_xkcd .
rm -rf jupyterlab_xkcd
0.28-01-show-a-panel
LICENSE
and README
files from the previous branch, as well as the package.json
fields up to
license
.If you make a mistake and need to start over, clear the tags using the following pattern:
git tag | grep 0.xx | xargs git tag -d
shasum -a 256 dist/*.tar.gz
recipe/meta.yaml
with the new version and md5 and reset the build number to 0./packages/package-folder-name
:jlpm run patch:release package-folder-name
_version.py
package.json
file in dev_mode
with the new JupyterLab version in the jupyterlab
metadata section.Each time we release JupyterLab, we should update the version of JupyterLab used in binder and repo2docker. Here is an example PR that updates the relevant files:
https://github.com/jupyter/repo2docker/pull/169/files
This needs to be done in both the conda and pip buildpacks in both the frozen and non-frozen version of the files.