Migrating Python Projects that used JavaScript#
For existing projects that shipped with JavaScript, which includes Jupyter Lab Extensions, Jupyter Widgets, and Jupyter Notebook Extensions, we provide a script to help automate the process.
Create a new branch for your migration and run the following:
pip install hatch_jupyter_builder
python -m hatch_jupyter_builder.migrate .
The migration script will do its best to convert metadata
from setup.py and setup.cfg into appropriate modernized
pyproject.toml metadata. Much of the migration is done by
hatch itself, including the mapping of data-files configuration
to shared-data.
If the package was using jupyter_packaging, we also provide
appropriate hatch_jupyter_builder config.
If there are things that are found that cannot be automatically
migrated, a warning will print at the end of the migration script.
Typically this will be a notice to put the actual version string
in your _version.py file.
The migration assumes that you will be using tbump to manage versions.
tbump is a project that is used by many of the core Jupyter projects
to maintain version for a project. For example, if you have a _version.py
and a package.json file that are meant to share a version, tbump
can handle keeping them in sync.
The configuration and behavior of the npm_builder helper function is
similar to the one provided by jupyter_packaging.
As an additional assurance, you can compare the files produced by the migrated configuration to those you previously produced.
To do this, clone your repository to another folder, and run the following:
python -m hatch_jupyter_builder.compare_migrated . <clean-checkout-path> wheel
This will build the wheel in both directories and compare their contents.
You can repeat the process with the sdist option as well.
For some examples of migrated packages that provide JavaScript, see:
notebook (JupyterLab and Server Extensions)
jupyter_server (build step to include CSS for default pages).