diff --git a/projects/jupyter-collaboration/pyproject.toml b/projects/jupyter-collaboration/pyproject.toml index 951e58a1..e0c0bbeb 100644 --- a/projects/jupyter-collaboration/pyproject.toml +++ b/projects/jupyter-collaboration/pyproject.toml @@ -29,9 +29,9 @@ classifiers = [ "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", ] dependencies = [ - "jupyter-server-ydoc>=1.0.0a0", - "jupyter-collaboration-ui>=1.0.0a0", - "jupyter-docprovider>=1.0.0a0" + "jupyter-server-ydoc>=1.0.0b1", + "jupyter-collaboration-ui>=1.0.0b1", + "jupyter-docprovider>=1.0.0b1" ] dynamic = ["version"] diff --git a/pyproject.toml b/pyproject.toml index 47402e45..4ba3d035 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,7 +23,8 @@ dynamic = ["version"] dev = [ "click", "pre-commit", - "jupyter_releaser" + "jupyter_releaser", + "tomlkit" ] test = [ "jupyter-server-ydoc[test] @ {root:uri}/projects/jupyter-server-ydoc", @@ -80,7 +81,7 @@ before-build-python = [ "jlpm clean:lib" ] before-bump-version = [ - "python -m pip install -U jupyterlab", + "python -m pip install -U jupyterlab tomlkit", "jlpm" ] diff --git a/scripts/bump_version.py b/scripts/bump_version.py index d71e1ec2..805e4512 100644 --- a/scripts/bump_version.py +++ b/scripts/bump_version.py @@ -5,6 +5,7 @@ from pathlib import Path import click +import tomlkit from jupyter_releaser.util import get_version, run from pkg_resources import parse_version # type: ignore @@ -80,6 +81,8 @@ def bump(force, skip_if_dirty, spec): HERE = Path(__file__).parent.parent.resolve() + project_pins = {} + # bump the Python packages for version_file in HERE.glob("projects/**/_version.py"): content = version_file.read_text().splitlines() @@ -92,6 +95,19 @@ def bump(force, skip_if_dirty, spec): current = current.strip("'\"") version_spec = increment_version(current, spec) version_file.write_text(f'__version__ = "{version_spec}"\n') + project = version_file.parent.name + project_pins[project] = version_spec + + # bump the required version in jupyter-collaboration metapackage + # to ensure that users can just upgrade `jupyter-collaboration` + # and get all fixes for free + metapackage = "jupyter-collaboration" + metapackage_toml_path = HERE / "projects" / metapackage / "pyproject.toml" + metapackage_toml = tomlkit.parse(metapackage_toml_path.read_text()) + metapackage_toml["dependencies"] = [ + key + ">=" + project_pins[key] for key in sorted(project_pins) if key != metapackage + ] + metapackage_toml_path.write_text(tomlkit.dumps(metapackage_toml)) path = HERE.joinpath("package.json") if path.exists():