From 25b7476a83082a00930a027125cb93a7370e0621 Mon Sep 17 00:00:00 2001 From: Ilya Grigoriev Date: Thu, 2 Nov 2023 22:47:47 -0700 Subject: [PATCH] website: upgrade `mike` to version 2.0 https://github.com/jimporter/mike The main immediate advantage of this is that `mike` will stop pushing empty commits. Also, we can consider switching to using symlinks instead of redirects for mapping the "latest" version to "v0.11.0". This would make `https://martinvonz.github.io/jj/latest/` have the same content as `https://martinvonz.github.io/jj/v0.11.0/` (until the next version is out), but the user would see `latest` in the URL. For now, I set an option to keep using redirects. I did a bit of non-exhaustive testing; it seems to work. --- .github/scripts/docs-build-deploy | 4 ++- poetry.lock | 51 ++++++++++++++++++++++++++----- pyproject.toml | 2 +- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/.github/scripts/docs-build-deploy b/.github/scripts/docs-build-deploy index 485fe064f9c..3b94fdc1bb5 100755 --- a/.github/scripts/docs-build-deploy +++ b/.github/scripts/docs-build-deploy @@ -12,4 +12,6 @@ export "SITE_URL_FOR_MKDOCS=$1"; shift # https://github.com/python-poetry/poetry/issues/1917 export PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring poetry install # Only really needed once per environment unless there are updates -poetry run -- mike deploy "$@" +# TODO(ilyagr): The new default "alias-type" is symlink, we should consider +# switching to it. +poetry run -- mike deploy --alias-type redirect "$@" diff --git a/poetry.lock b/poetry.lock index 8d40ddc4759..c336ea4c2de 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand. [[package]] name = "babel" @@ -200,6 +200,24 @@ docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker perf = ["ipython"] testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] +[[package]] +name = "importlib-resources" +version = "6.1.0" +description = "Read resources from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_resources-6.1.0-py3-none-any.whl", hash = "sha256:aa50258bbfa56d4e33fbd8aa3ef48ded10d1735f11532b8df95388cc6bdb7e83"}, + {file = "importlib_resources-6.1.0.tar.gz", hash = "sha256:9d48dcccc213325e810fd723e7fbb45ccb39f6cf5c31f00cf2b965f5f10f3cb9"}, +] + +[package.dependencies] +zipp = {version = ">=3.1.0", markers = "python_version < \"3.10\""} + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff", "zipp (>=3.17)"] + [[package]] name = "jinja2" version = "3.1.2" @@ -335,24 +353,27 @@ files = [ [[package]] name = "mike" -version = "1.1.2" +version = "2.0.0" description = "Manage multiple versions of your MkDocs-powered documentation" optional = false python-versions = "*" files = [ - {file = "mike-1.1.2-py3-none-any.whl", hash = "sha256:4c307c28769834d78df10f834f57f810f04ca27d248f80a75f49c6fa2d1527ca"}, - {file = "mike-1.1.2.tar.gz", hash = "sha256:56c3f1794c2d0b5fdccfa9b9487beb013ca813de2e3ad0744724e9d34d40b77b"}, + {file = "mike-2.0.0-py3-none-any.whl", hash = "sha256:87f496a65900f93ba92d72940242b65c86f3f2f82871bc60ebdcffc91fad1d9e"}, + {file = "mike-2.0.0.tar.gz", hash = "sha256:566f1cab1a58cc50b106fb79ea2f1f56e7bfc8b25a051e95e6eaee9fba0922de"}, ] [package.dependencies] -jinja2 = "*" +importlib-metadata = "*" +importlib-resources = "*" +jinja2 = ">=2.7" mkdocs = ">=1.0" +pyparsing = ">=3.0" pyyaml = ">=5.1" verspec = "*" [package.extras] -dev = ["coverage", "flake8 (>=3.0)", "shtab"] -test = ["coverage", "flake8 (>=3.0)", "shtab"] +dev = ["coverage", "flake8 (>=3.0)", "flake8-quotes", "shtab"] +test = ["coverage", "flake8 (>=3.0)", "flake8-quotes", "shtab"] [[package]] name = "mkdocs" @@ -522,6 +543,20 @@ pyyaml = "*" [package.extras] extra = ["pygments (>=2.12)"] +[[package]] +name = "pyparsing" +version = "3.1.1" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +optional = false +python-versions = ">=3.6.8" +files = [ + {file = "pyparsing-3.1.1-py3-none-any.whl", hash = "sha256:32c7c0b711493c72ff18a981d24f28aaf9c1fb7ed5e9667c9e84e3db623bdbfb"}, + {file = "pyparsing-3.1.1.tar.gz", hash = "sha256:ede28a1a32462f5a9705e07aea48001a08f7cf81a021585011deba701581a0db"}, +] + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + [[package]] name = "python-dateutil" version = "2.8.2" @@ -843,4 +878,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "2a4f26dbdec71f6b71ecbe54ac396e6349b7982b5051dfa656fec2139f9229b2" +content-hash = "f0b180b702e9cd61532baa17505ab88115f92a18d71ccdad3e83821ce00c2e9c" diff --git a/pyproject.toml b/pyproject.toml index b69da983dad..0a8fd998c98 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ mdx-breakless-lists = "^1.0.1" # Allows setting up redirects when renaming docs files mkdocs-redirects = "^1.2.1" # Versioning of documentation -mike = "^1.1.2" +mike = "^2.0.0" [build-system] requires = ["poetry-core>=1.0.0"]