diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eed44d62..3db04f5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,5 @@ name: CI -on: [push, pull_request] +on: [push, pull_request, workflow_dispatch] jobs: ci: uses: open-contracting/.github/.github/workflows/ci-profile.yml@main diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index fa2a642f..2f2e1cbd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,18 +3,18 @@ ci: skip: [pip-compile] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.20 + rev: v0.16.10 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.11.26 + rev: 0.12.23 hooks: - id: pip-compile name: pip-compile common-requirements.in args: [common-requirements.in, -o, common-requirements.txt] files: ^common-requirements\.(in|txt)$ - repo: https://github.com/biomejs/pre-commit - rev: v2.5.2 + rev: v2.5.15 hooks: - id: biome-check diff --git a/common-requirements.in b/common-requirements.in index bc75f323..2e26689f 100644 --- a/common-requirements.in +++ b/common-requirements.in @@ -2,7 +2,8 @@ linkify-it-py myst-parser ocds-babel Sphinx -git+https://github.com/open-contracting/standard_theme.git@open_contracting#egg=standard_theme +sphinxcontrib-opendataservices +sphinxcontrib-opendataservices-jsonschema # Profile ocdsextensionregistry diff --git a/common-requirements.txt b/common-requirements.txt index dde16c01..f41370d7 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -13,6 +13,7 @@ attrs==25.4.0 # via # cattrs # outcome + # referencing # requests-cache # trio babel==2.18.0 @@ -40,9 +41,11 @@ docutils==0.18 # via # myst-parser # sphinx + # sphinxcontrib-opendataservices + # sphinxcontrib-opendataservices-jsonschema elastic-transport==9.2.1 # via elasticsearch -elasticsearch==9.3.0 +elasticsearch[requests]==9.3.0 # via ocdsindex h11==0.16.0 # via @@ -63,10 +66,21 @@ jinja2==3.1.6 # via # myst-parser # sphinx +jscc==0.5.0 + # via sphinxcontrib-opendataservices-jsonschema json-merge-patch==0.2 - # via ocdsextensionregistry + # via + # jscc + # ocdsextensionregistry +jsonpointer==3.1.1 + # via + # sphinxcontrib-opendataservices + # sphinxcontrib-opendataservices-jsonschema jsonref==1.0.0.post1 - # via ocdsextensionregistry + # via + # jscc + # ocdsextensionregistry + # sphinxcontrib-opendataservices-jsonschema linkify-it-py==1.0.1 # via -r common-requirements.in lxml==6.1.0 @@ -84,7 +98,10 @@ mdurl==0.1.2 mypy-extensions==1.1.0 # via trio-typing myst-parser==0.18.1 - # via -r common-requirements.in + # via + # -r common-requirements.in + # sphinxcontrib-opendataservices + # sphinxcontrib-opendataservices-jsonschema ocds-babel==0.3.7 # via -r common-requirements.in ocdsextensionregistry==0.6.5 @@ -116,18 +133,21 @@ python-dateutil==2.9.0.post0 # via elasticsearch pyyaml==6.0.1 # via myst-parser +referencing==0.37.0 + # via sphinxcontrib-opendataservices-jsonschema requests==2.33.0 # via # elasticsearch + # jscc # ocdsextensionregistry # requests-cache # sphinx requests-cache==1.1.0 # via ocdsextensionregistry +rpds-py==2026.6.3 + # via referencing selenium==4.40.0 # via -r common-requirements.in -setuptools==84.0.0 - # via sphinx-intl six==1.16.0 # via # python-dateutil @@ -147,6 +167,7 @@ sphinx==5.3.0 # myst-parser # sphinx-autobuild # sphinx-intl + # sphinxcontrib-opendataservices sphinx-autobuild==2024.9.3 # via -r common-requirements.in sphinx-intl==2.2.0 @@ -159,12 +180,16 @@ sphinxcontrib-htmlhelp==2.0.0 # via sphinx sphinxcontrib-jsmath==1.0.1 # via sphinx +sphinxcontrib-opendataservices==0.6.0 + # via -r common-requirements.in +sphinxcontrib-opendataservices-jsonschema==0.7.1 + # via + # -r common-requirements.in + # sphinxcontrib-opendataservices sphinxcontrib-qthelp==1.0.3 # via sphinx sphinxcontrib-serializinghtml==1.1.5 # via sphinx -standard-theme @ git+https://github.com/open-contracting/standard_theme.git@open_contracting - # via -r common-requirements.in starlette==1.3.1 # via sphinx-autobuild trio==0.32.0 @@ -182,15 +207,18 @@ types-urllib3==1.26.25.14 # via selenium typing-extensions==4.15.0 # via + # anyio # elasticsearch # myst-parser + # referencing # selenium + # starlette # trio-typing uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 # via requests-cache -urllib3==2.7.0 +urllib3[socks]==2.8.0 # via # elastic-transport # requests diff --git a/docs/_static/favicon-16x16.ico b/docs/_static/favicon-16x16.ico deleted file mode 100644 index 40159444..00000000 Binary files a/docs/_static/favicon-16x16.ico and /dev/null differ diff --git a/docs/conf.py b/docs/conf.py index 50731a33..fc6b2104 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -8,7 +8,6 @@ from glob import glob from pathlib import Path -import standard_theme from docutils.nodes import make_id from ocds_babel.translate import translate from sphinx.locale import get_translation @@ -41,8 +40,6 @@ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output html_theme = "standard_theme" # 'pydata_sphinx_theme' -html_theme_path = [standard_theme.get_html_theme_path()] -html_favicon = "_static/favicon-16x16.ico" html_static_path = ["_static", "examples", "../mapping/sustainability.yaml"] html_css_files = ["renderjson.css", "https://fonts.googleapis.com/css?family=Montserrat", "custom.css"] html_js_files = ["renderjson.js", "json-example-format.js"] @@ -59,7 +56,7 @@ gettext_compact = False # `DOMAIN_PREFIX` from `config.mk`. gettext_domain_prefix = f"{profile_identifier}-" if profile_identifier else "" -locale_dirs = ["locale/", os.path.join(standard_theme.get_html_theme_path(), "locale")] +locale_dirs = ["locale/"] # We use single quotes for codes, which docutils will change to double quotes. # https://sourceforge.net/p/docutils/code/HEAD/tree/trunk/docutils/docutils/utils/smartquotes.py smartquotes = False @@ -78,13 +75,8 @@ "analytics_id": "YEWDOOEQ", "display_version": True, "root_url": f"/{profile_identifier}" if profile_identifier else "", - # Relative to the version's directory, so that one value serves the live and staging copies. - "versions_url": "../versions.json", "languages": {"en": "English", "es": "EspaƱol"}, "short_project": "OC4IDS", - "copyright": copyright, - "license_name": "Apache License 2.0", - "license_url": f"{repository_url}/blob/HEAD/LICENSE", "repository_url": repository_url, } html_short_title = f"{html_theme_options['short_project']} v{release}" diff --git a/requirements.txt b/requirements.txt index 29a36aba..a7b4f96b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,9 @@ -r common-requirements.txt +-r theme-requirements.txt # Add your own requirements below. sphinxcontrib-opencontracting==0.0.8 -sphinxcontrib-opendataservices-jsonschema==0.7.1 -sphinxcontrib-opendataservices==0.5.0 sphinx-design # Build diff --git a/script/update b/script/update index ede828d3..3be6fa8c 100755 --- a/script/update +++ b/script/update @@ -5,7 +5,7 @@ set -eu main() { mkdir -p script include tests - for f in .pre-commit-config.yaml .python-version Makefile common-requirements.in common-requirements.txt pyproject.toml .github/dependabot.yml .github/workflows/js.yml .github/workflows/shell.yml docs/_static/favicon-16x16.ico include/common.mk include/prologue.mk script/diff script/update tests/conftest.py tests/test_common.py; do + for f in .pre-commit-config.yaml .python-version Makefile common-requirements.in common-requirements.txt pyproject.toml .github/dependabot.yml .github/workflows/js.yml .github/workflows/shell.yml include/common.mk include/prologue.mk script/diff script/update tests/conftest.py tests/test_common.py theme-requirements.txt; do curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f done diff --git a/tests/test_common.py b/tests/test_common.py index 417759f1..6e3de23a 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -26,7 +26,7 @@ def test_search(browser, server, lang, regex): # This seems to be an issue in Selenium and/or ChromeDriver. @pytest.mark.filterwarnings("ignore:unclosed