The process below describes the procedure for JupyterLab package, but the same applies for JupyterLab extensions.
Create an environment with the dependencies on requirements.txt
.
conda create -n language-packs nodejs python -c conda-forge -y -q
conda activate language-packs
pip install -r requirements.txt
Also make sure you have gettext-extract
available globally from NPM.
npm install gettext-extract -g
The first step when preparing a release is to make sure a beta or release candidate for JupyterLab exists which should mean no new strings are expected to change in the code base.
With this information update the repository-map.yml
file to point to the latest version for
which translation strings are going to be scrapped from the codebase.
Update the current catalog for JupyterLab and JupyterLab extensions.
python scripts/02_update_catalogs.py
Push the changes to Github, Crowdin will update the loaded catalogs and expose and new strings to translators.
Give some time to authors to update the new translations in the version.
Crowdin integration is currently set with the JupyterLab-Bot.
Before merging the PR make sure to squash to a single commit to keep git history clean.
If there are conflicts in the PR, close it and delete the branch, and wait for a new one to be regenerated, which should be conflict free.
Run the 05_prepare_release.py
script to check which packages have 100% translation and bump versions
accordingly. This script will print some information, bump package versions and add commits and tags.
Assuming there is a remote pointing to the upstream repository called upstream
, run:
git push upstream --tags
git push upstream master
This will trigger Github workflows on CI and make the corresponding releases on Github and PyPI.