From e30016bcccfc353c65f2f88c045a136669b1cafb Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 19:06:04 +0000 Subject: [PATCH 01/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.8.6 → v0.11.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.8.6...v0.11.4) - [github.com/astral-sh/uv-pre-commit: 0.5.14 → 0.6.12](https://github.com/astral-sh/uv-pre-commit/compare/0.5.14...0.6.12) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6286a031..39ef46bc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,12 +5,12 @@ default_language_version: python: python3.10 repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.8.6 + rev: v0.11.4 hooks: - id: ruff - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.5.14 + rev: 0.6.12 hooks: - id: pip-compile name: pip-compile common-requirements.in From 2d97de7eace2e88c941d08cf0326bf667b8fd16e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 19:06:49 +0000 Subject: [PATCH 02/43] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- docs/conf.py | 2 +- manage.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index c0760b3a..6d3e9320 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -99,7 +99,7 @@ "license_url": f"{repository_url}/blob/HEAD/LICENSE", "repository_url": repository_url, } -html_short_title = f'{html_theme_options["short_project"]} v{release}' +html_short_title = f"{html_theme_options['short_project']} v{release}" def setup(app): diff --git a/manage.py b/manage.py index 82faaace..2db2627b 100755 --- a/manage.py +++ b/manage.py @@ -468,12 +468,12 @@ def _compare(actual, infra_list, ocds_list, prefix, suffix): # An editor might've added an infrastructure codelist or copied an OCDS codelist, without updating this script. added = actual - infra_list - ocds_list if added: - sys.exit(f'{prefix} has unexpected {", ".join(added)}: add to infra_{suffix} or ocds_{suffix}?') + sys.exit(f"{prefix} has unexpected {', '.join(added)}: add to infra_{suffix} or ocds_{suffix}?") # An editor might've removed an infrastructure codelist, without updating this script. removed = infra_list - actual if removed: - sys.exit(f'{prefix} is missing {", ".join(removed)}: remove from infra_{suffix}?') + sys.exit(f"{prefix} is missing {', '.join(removed)}: remove from infra_{suffix}?") ocds_base_url = "https://standard.open-contracting.org/1.1/en/" From 852aea5d2b8014646d2446a938cc17a09f34dafb Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Mon, 5 May 2025 12:41:22 -0400 Subject: [PATCH 03/43] chore: Update to latest profile template --- common-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 62a2917b..4c3dd851 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -51,7 +51,7 @@ exceptiongroup==1.2.2 # anyio # cattrs # pytest -h11==0.13.0 +h11==0.16.0 # via # uvicorn # wsproto @@ -124,7 +124,7 @@ requests-cache==1.1.0 # via ocdsextensionregistry selenium==4.11.2 # via -r common-requirements.in -setuptools==75.2.0 +setuptools==80.3.1 # via sphinx-intl six==1.16.0 # via url-normalize From 39ba26d3183afec4412a56b3d6af6b8e302b0493 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 22 May 2025 23:16:15 -0400 Subject: [PATCH 04/43] chore: Use consistent way to refer to json.JSONDecodeError --- manage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage.py b/manage.py index 2db2627b..519cdfed 100755 --- a/manage.py +++ b/manage.py @@ -1000,7 +1000,7 @@ def _link(name, fields, text): f"{identifier} ({title}): OC4IDS is invalid: " f"{e.message} ({'/'.join(e.absolute_schema_path)})" ) - except json.decoder.JSONDecodeError as e: + except json.JSONDecodeError as e: click.echo(f"{identifier} ({title}): JSON is invalid: {e}: {example}") if additional_fields: From 8184ac9d9a860ead320752a91fb0eb9f9f1b67ef Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 10 Jun 2025 10:25:58 -0400 Subject: [PATCH 05/43] build: Update to latest profile template --- common-requirements.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 4c3dd851..3983c9d2 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -88,7 +88,7 @@ mdurl==0.1.2 # via markdown-it-py myst-parser==0.18.1 # via -r common-requirements.in -ocds-babel==0.3.6 +ocds-babel==0.3.7 # via -r common-requirements.in ocdsextensionregistry==0.6.5 # via -r common-requirements.in @@ -114,7 +114,7 @@ pytz==2021.1 # via babel pyyaml==6.0.1 # via myst-parser -requests==2.32.2 +requests==2.32.4 # via # elasticsearch # ocdsextensionregistry @@ -124,7 +124,7 @@ requests-cache==1.1.0 # via ocdsextensionregistry selenium==4.11.2 # via -r common-requirements.in -setuptools==80.3.1 +setuptools==80.9.0 # via sphinx-intl six==1.16.0 # via url-normalize @@ -158,7 +158,7 @@ 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@d56505d69fceeb43535a3387172b2024eead536e#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@185b1be837be4158bf7e04c143bca0911862e35b#egg=standard_theme # via -r common-requirements.in starlette==0.40.0 # via sphinx-autobuild From c78b652a5fa58a7a95dece827233e2cd11ae68f7 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 24 Jun 2025 12:19:54 -0400 Subject: [PATCH 06/43] build: Update to latest profile template --- .github/workflows/ci.yml | 2 ++ common-requirements.txt | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 149dafa1..c0e09820 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,7 @@ name: CI on: [push, pull_request] +permissions: + contents: read jobs: build: uses: open-contracting/.github/.github/workflows/ci-profile.yml@main diff --git a/common-requirements.txt b/common-requirements.txt index 3983c9d2..29cab845 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -42,7 +42,7 @@ docutils==0.18 # via # myst-parser # sphinx -elastic-transport==8.4.0 +elastic-transport==8.17.1 # via elasticsearch elasticsearch==8.6.2 # via ocdsindex @@ -158,7 +158,7 @@ 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@185b1be837be4158bf7e04c143bca0911862e35b#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@c83a80cb13b71bab23e251bc7353c1c76fabb228#egg=standard_theme # via -r common-requirements.in starlette==0.40.0 # via sphinx-autobuild @@ -180,7 +180,7 @@ uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 # via requests-cache -urllib3==1.26.19 +urllib3==2.5.0 # via # elastic-transport # requests From 002909b0934e2cbc29e6de266a429065948026d1 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 24 Jun 2025 13:12:59 -0400 Subject: [PATCH 07/43] ci: Limit the default permissions of GITHUB_TOKEN --- .github/workflows/ci.yml | 4 ++-- .github/workflows/js.yml | 2 ++ .github/workflows/shell.yml | 2 ++ .github/workflows/spellcheck.yml | 2 ++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0e09820..b1829c54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,10 @@ name: CI on: [push, pull_request] -permissions: - contents: read jobs: build: uses: open-contracting/.github/.github/workflows/ci-profile.yml@main + permissions: + contents: read secrets: private-key: ${{ secrets.PRIVATE_KEY }} elasticsearch-password: ${{ secrets.ELASTICSEARCH_PASSWORD }} diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 565d0330..62f7bfde 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -3,5 +3,7 @@ on: [push, pull_request] jobs: lint: uses: open-contracting/.github/.github/workflows/js.yml@main + permissions: + contents: read with: filenames: docs/_static/json-example-format.js diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml index dfdb0acf..67df87a1 100644 --- a/.github/workflows/shell.yml +++ b/.github/workflows/shell.yml @@ -3,3 +3,5 @@ on: [push, pull_request] jobs: lint: uses: open-contracting/.github/.github/workflows/shell.yml@main + permissions: + contents: read diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index ebac9567..3fe75a97 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -3,6 +3,8 @@ on: [push, pull_request] jobs: lint: uses: open-contracting/.github/.github/workflows/spellcheck.yml@main + permissions: + contents: read with: ignore: fo,tne,zar skip: docson,locale,country.csv,currency.csv From 77a5f86fca94cfbf1a7daee43069b73583de12e4 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 26 Jun 2025 15:27:22 -0400 Subject: [PATCH 08/43] build: Use html_css_files and html_js_files --- docs/_static/{basic.css => custom.css} | 0 docs/_templates/layout.html | 2 -- docs/conf.py | 27 ++++++-------------------- 3 files changed, 6 insertions(+), 23 deletions(-) rename docs/_static/{basic.css => custom.css} (100%) diff --git a/docs/_static/basic.css b/docs/_static/custom.css similarity index 100% rename from docs/_static/basic.css rename to docs/_static/custom.css diff --git a/docs/_templates/layout.html b/docs/_templates/layout.html index 9d6b5e89..017e66e4 100644 --- a/docs/_templates/layout.html +++ b/docs/_templates/layout.html @@ -1,5 +1,3 @@ -{% set css_files = css_files + ["_static/renderjson.css", "https://fonts.googleapis.com/css?family=Montserrat", "_static/basic.css"] %} -{% set script_files = script_files + ["_static/renderjson.js", "_static/json-example-format.js"] %} {% extends "!layout.html" %} {% block developed_by %} diff --git a/docs/conf.py b/docs/conf.py index 6d3e9320..73972714 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,11 +1,8 @@ # Configuration file for the Sphinx documentation builder. # -# This file only contains a selection of the most common options. For a full -# list see the documentation: +# For the full list of built-in configuration values, see the documentation: # https://www.sphinx-doc.org/en/master/usage/configuration.html -# -- Path setup -------------------------------------------------------------- - import csv import os from glob import glob @@ -17,6 +14,7 @@ from sphinx.locale import get_translation # -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information project = "Open Contracting for Infrastructure Data Standards Toolkit" copyright = "Open Contracting Partnership" @@ -25,12 +23,9 @@ version = "0.9" release = "0.9.5" - # -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. extensions = [ "myst_parser", "sphinxcontrib.jsonschema", @@ -39,28 +34,18 @@ "sphinx_design", ] -# Add any paths that contain templates here, relative to this directory. templates_path = ["_templates"] - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "**/docson/[!p]**", "**/docson/package*.json"] - # -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# html_theme = "standard_theme" # 'pydata_sphinx_theme' html_theme_path = [standard_theme.get_html_theme_path()] html_favicon = "_static/favicon-16x16.ico" - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". 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"] # -- Local configuration ----------------------------------------------------- From 4e1d5f8eb7878c5070be29c58a9581a6a074cb4a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 7 Jul 2025 19:11:34 +0000 Subject: [PATCH 09/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.11.4 → v0.12.2](https://github.com/astral-sh/ruff-pre-commit/compare/v0.11.4...v0.12.2) - [github.com/astral-sh/uv-pre-commit: 0.6.12 → 0.7.19](https://github.com/astral-sh/uv-pre-commit/compare/0.6.12...0.7.19) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 39ef46bc..6921fb7e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,12 +5,12 @@ default_language_version: python: python3.10 repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.4 + rev: v0.12.2 hooks: - id: ruff - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.6.12 + rev: 0.7.19 hooks: - id: pip-compile name: pip-compile common-requirements.in From 8dcf82c06fe7bd210e88462e2366d140c9ec0339 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 22 Jul 2025 11:11:05 -0400 Subject: [PATCH 10/43] build: Upgrade to latest profile template --- common-requirements.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 29cab845..6111c7c4 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -158,9 +158,9 @@ 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@c83a80cb13b71bab23e251bc7353c1c76fabb228#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@26357a570a259c17ceb210da6d9a4cfc23c2609b#egg=standard_theme # via -r common-requirements.in -starlette==0.40.0 +starlette==0.47.2 # via sphinx-autobuild tomli==2.0.1 # via pytest @@ -170,11 +170,12 @@ trio==0.20.0 # trio-websocket trio-websocket==0.9.2 # via selenium -typing-extensions==4.4.0 +typing-extensions==4.14.1 # via # anyio # cattrs # myst-parser + # starlette # uvicorn uc-micro-py==1.0.1 # via linkify-it-py From 6cd6bae4c307a0173e5b19880b40c7d34f6b1472 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Mon, 11 Aug 2025 22:09:23 -0400 Subject: [PATCH 11/43] chore: Use new ruff-check hook id --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6921fb7e..abdd165f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.12.2 hooks: - - id: ruff + - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit rev: 0.7.19 From e5dc4000c60fddc42100ca832857c94765da73cf Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 2 Sep 2025 20:58:28 -0400 Subject: [PATCH 12/43] chore: Fix internal reference --- docs/guidance/language.md | 2 +- docs/locale/es/LC_MESSAGES/guidance/language.po | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/guidance/language.md b/docs/guidance/language.md index 1281ab43..d43d3071 100644 --- a/docs/guidance/language.md +++ b/docs/guidance/language.md @@ -53,7 +53,7 @@ flatten-tool flatten -s https://standard.open-contracting.org/infrastructure/0.9 ## Publishing in multiple languages -To publish data in multiple languages, follow the above guidance and publish a separate [project package](../../reference/package.md) for each language. You need to ensure that the values of `id` fields are consistent across packages, so that users can find the translations of objects. +To publish data in multiple languages, follow the above guidance and publish a separate [project package](../reference/package.md) for each language. You need to ensure that the values of `id` fields are consistent across packages, so that users can find the translations of objects. ## Internationalization lookup table diff --git a/docs/locale/es/LC_MESSAGES/guidance/language.po b/docs/locale/es/LC_MESSAGES/guidance/language.po index 3e7529c6..fee0eefb 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/language.po +++ b/docs/locale/es/LC_MESSAGES/guidance/language.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 16:50+1300\n" +"POT-Creation-Date: 2025-09-02 20:56-0400\n" "PO-Revision-Date: 2023-12-14 22:18+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" @@ -141,12 +141,12 @@ msgstr "Publicando en múltiples idiomas" #: ../../docs/guidance/language.md:56 msgid "" "To publish data in multiple languages, follow the above guidance and publish" -" a separate [project package](../../reference/package.md) for each language." -" You need to ensure that the values of `id` fields are consistent across " +" a separate [project package](../reference/package.md) for each language. " +"You need to ensure that the values of `id` fields are consistent across " "packages, so that users can find the translations of objects." msgstr "" "Para publicar datos en varios idiomas, siga la guía de arriba y publique un " -"[project package](../../reference/package.md) separado para cada idioma. " +"[project package](../reference/package.md) separado para cada idioma. " "Tiene que asegurar que los valores de los campos del `id` sean consistentes " "entre los paquetes, para que los usuarios puedan encontrar las traducciones " "de los objetos. " From 31baab760bed32d8a2453255c57ca774dadb6b9f Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 2 Sep 2025 20:58:40 -0400 Subject: [PATCH 13/43] i18n: Run make push and make pull --- docs/locale/es/LC_MESSAGES/404.po | 2 +- docs/locale/es/LC_MESSAGES/about.po | 2 +- docs/locale/es/LC_MESSAGES/cost/ids/sustainability.po | 7 +++---- docs/locale/es/LC_MESSAGES/cost/index.po | 2 +- docs/locale/es/LC_MESSAGES/guidance/data_user_guide.po | 2 +- docs/locale/es/LC_MESSAGES/guidance/index.po | 2 +- docs/locale/es/LC_MESSAGES/guidance/using.po | 2 +- docs/locale/es/LC_MESSAGES/index.po | 2 +- docs/locale/es/LC_MESSAGES/infrastructure-schema.po | 6 ++++-- docs/locale/es/LC_MESSAGES/reference/browser.po | 2 +- docs/locale/es/LC_MESSAGES/reference/changelog.po | 2 +- docs/locale/es/LC_MESSAGES/reference/prefixes.po | 2 +- docs/locale/es/LC_MESSAGES/sphinx.po | 4 ++-- docs/locale/es/LC_MESSAGES/support.po | 2 +- 14 files changed, 20 insertions(+), 19 deletions(-) diff --git a/docs/locale/es/LC_MESSAGES/404.po b/docs/locale/es/LC_MESSAGES/404.po index e4b009c2..25b1800d 100644 --- a/docs/locale/es/LC_MESSAGES/404.po +++ b/docs/locale/es/LC_MESSAGES/404.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:12+0000\n" "Last-Translator: Juan Pane , 2021\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/about.po b/docs/locale/es/LC_MESSAGES/about.po index 4c9ba6e8..3d211bae 100644 --- a/docs/locale/es/LC_MESSAGES/about.po +++ b/docs/locale/es/LC_MESSAGES/about.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:12+0000\n" "Last-Translator: Francis C. Bennaton, 2024\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/cost/ids/sustainability.po b/docs/locale/es/LC_MESSAGES/cost/ids/sustainability.po index b8334bf7..8a7bc156 100644 --- a/docs/locale/es/LC_MESSAGES/cost/ids/sustainability.po +++ b/docs/locale/es/LC_MESSAGES/cost/ids/sustainability.po @@ -5,8 +5,8 @@ # # Translators: # Francis C. Bennaton, 2024 -# Duncan Dewhurst , 2025 # Evelyn Dinora Hernandez Martinez , 2025 +# Duncan Dewhurst , 2025 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2023-12-14 22:18+0000\n" -"Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" +"Last-Translator: Duncan Dewhurst , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -3246,8 +3246,7 @@ msgstr "" "Para cada período de informe, agregue un objeto " "[`Observation`](../../reference/schema.md#observation) a la matiz de la " "métrica [`.observations`](project-" -"schema.json,/definitions/Metric,observations) de la métrica ) y establezca " -"su:" +"schema.json,/definitions/Metric,observations) de la métrica y establezca su:" #: ../../docs/cost/ids/sustainability.md:2775 #: ../../docs/cost/ids/sustainability.md:2787 diff --git a/docs/locale/es/LC_MESSAGES/cost/index.po b/docs/locale/es/LC_MESSAGES/cost/index.po index 7739481a..627cb4ca 100644 --- a/docs/locale/es/LC_MESSAGES/cost/index.po +++ b/docs/locale/es/LC_MESSAGES/cost/index.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:12+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/guidance/data_user_guide.po b/docs/locale/es/LC_MESSAGES/guidance/data_user_guide.po index b850597b..cc36feb3 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/data_user_guide.po +++ b/docs/locale/es/LC_MESSAGES/guidance/data_user_guide.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2020-05-13 23:48+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/guidance/index.po b/docs/locale/es/LC_MESSAGES/guidance/index.po index 293715b9..fcfdb922 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/index.po +++ b/docs/locale/es/LC_MESSAGES/guidance/index.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:13+0000\n" "Last-Translator: Romina Fernandez , 2019\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/guidance/using.po b/docs/locale/es/LC_MESSAGES/guidance/using.po index 45be18a1..894277ef 100644 --- a/docs/locale/es/LC_MESSAGES/guidance/using.po +++ b/docs/locale/es/LC_MESSAGES/guidance/using.po @@ -15,7 +15,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:13+0000\n" "Last-Translator: Francis C. Bennaton, 2024\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/index.po b/docs/locale/es/LC_MESSAGES/index.po index f7b56489..41acc572 100644 --- a/docs/locale/es/LC_MESSAGES/index.po +++ b/docs/locale/es/LC_MESSAGES/index.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-18 09:20+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:12+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/infrastructure-schema.po b/docs/locale/es/LC_MESSAGES/infrastructure-schema.po index bbe94d40..014457e2 100644 --- a/docs/locale/es/LC_MESSAGES/infrastructure-schema.po +++ b/docs/locale/es/LC_MESSAGES/infrastructure-schema.po @@ -18,14 +18,14 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-03-25 15:32+1300\n" +"POT-Creation-Date: 2025-09-02 20:56-0400\n" "PO-Revision-Date: 2020-06-25 01:03+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.17.0\n" "Language: es\n" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" @@ -2280,6 +2280,7 @@ msgstr "" #. /definitions/Organization/properties/id/description #: schema/project-level/project-schema.json:1 +#, python-brace-format msgid "" "The ID used for cross-referencing to this party from other sections of the " "release. This field may be built with the following structure " @@ -3238,6 +3239,7 @@ msgstr "El nombre completo de la persona." #. /definitions/Person/properties/identifier/description #: schema/project-level/project-schema.json:1 +#, python-brace-format msgid "" "An official identifier for the person. The scheme should follow the pattern " "{JURISDICTION}-{TYPE}, where JURISDICTION is a three-letter, uppercase ISO " diff --git a/docs/locale/es/LC_MESSAGES/reference/browser.po b/docs/locale/es/LC_MESSAGES/reference/browser.po index 3255d7d3..84510efd 100644 --- a/docs/locale/es/LC_MESSAGES/reference/browser.po +++ b/docs/locale/es/LC_MESSAGES/reference/browser.po @@ -12,7 +12,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-15 11:03+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:13+0000\n" "Last-Translator: Cecilia Casco , 2021\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/reference/changelog.po b/docs/locale/es/LC_MESSAGES/reference/changelog.po index e33efd6e..c3e6f4b8 100644 --- a/docs/locale/es/LC_MESSAGES/reference/changelog.po +++ b/docs/locale/es/LC_MESSAGES/reference/changelog.po @@ -18,7 +18,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-03-21 16:50+1300\n" +"POT-Creation-Date: 2025-09-02 20:53-0400\n" "PO-Revision-Date: 2020-05-13 23:49+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/reference/prefixes.po b/docs/locale/es/LC_MESSAGES/reference/prefixes.po index 5aa27cef..38c239e1 100644 --- a/docs/locale/es/LC_MESSAGES/reference/prefixes.po +++ b/docs/locale/es/LC_MESSAGES/reference/prefixes.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-15 11:03+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2023-12-14 22:18+0000\n" "Last-Translator: Francis C. Bennaton, 2024\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" diff --git a/docs/locale/es/LC_MESSAGES/sphinx.po b/docs/locale/es/LC_MESSAGES/sphinx.po index 448eb666..80816641 100644 --- a/docs/locale/es/LC_MESSAGES/sphinx.po +++ b/docs/locale/es/LC_MESSAGES/sphinx.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-15 11:03+1300\n" +"POT-Creation-Date: 2025-09-02 20:53-0400\n" "PO-Revision-Date: 2020-05-13 23:47+0000\n" "Last-Translator: Romina Fernandez , 2020\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" @@ -21,6 +21,6 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" -#: ../../docs/_templates/layout.html:15 +#: ../../docs/_templates/layout.html:13 msgid "Data Review Tool" msgstr "Herramienta de Revisión de Datos" diff --git a/docs/locale/es/LC_MESSAGES/support.po b/docs/locale/es/LC_MESSAGES/support.po index 254e8ee9..bef1ee10 100644 --- a/docs/locale/es/LC_MESSAGES/support.po +++ b/docs/locale/es/LC_MESSAGES/support.po @@ -14,7 +14,7 @@ msgid "" msgstr "" "Project-Id-Version: Open Contracting for Infrastructure Data Standards Toolkit 0.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-15 11:03+1300\n" +"POT-Creation-Date: 2025-03-21 16:50+1300\n" "PO-Revision-Date: 2019-03-21 15:12+0000\n" "Last-Translator: Evelyn Dinora Hernandez Martinez , 2025\n" "Language-Team: Spanish (https://app.transifex.com/open-contracting-partnership-1/teams/112299/es/)\n" From bd53e212ab38d31d8de8811850bbd351fb3796b7 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 2 Sep 2025 21:23:02 -0400 Subject: [PATCH 14/43] i18n: Switch to Crowdin from Transifex --- .tx/config | 282 ---------------------------------------- common-requirements.txt | 2 +- crowdin.yml | 166 +++++++++++++++++++++++ include/common.mk | 31 ----- include/config.mk | 4 - 5 files changed, 167 insertions(+), 318 deletions(-) delete mode 100644 .tx/config create mode 100644 crowdin.yml diff --git a/.tx/config b/.tx/config deleted file mode 100644 index 541ddbca..00000000 --- a/.tx/config +++ /dev/null @@ -1,282 +0,0 @@ -[main] -host = https://www.transifex.com - -[o:open-contracting-partnership-1:p:oc4ids-09:r:404] -file_filter = docs/locale//LC_MESSAGES/404.po -source_file = build/locale/404.pot -type = PO -minimum_perc = 0 -resource_name = 404 -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:about] -file_filter = docs/locale//LC_MESSAGES/about.po -source_file = build/locale/about.pot -type = PO -minimum_perc = 0 -resource_name = about -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--common] -file_filter = docs/locale//LC_MESSAGES/cost/common.po -source_file = build/locale/cost/common.pot -type = PO -minimum_perc = 0 -resource_name = cost--common -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--ids--core] -file_filter = docs/locale//LC_MESSAGES/cost/ids/core.po -source_file = build/locale/cost/ids/core.pot -type = PO -minimum_perc = 0 -resource_name = cost--ids--core -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--ids--index] -file_filter = docs/locale//LC_MESSAGES/cost/ids/index.po -source_file = build/locale/cost/ids/index.pot -type = PO -minimum_perc = 0 -resource_name = cost--ids--index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--ids--sustainability] -file_filter = docs/locale//LC_MESSAGES/cost/ids/sustainability.po -source_file = build/locale/cost/ids/sustainability.pot -type = PO -minimum_perc = 0 -resource_name = cost--ids--sustainability -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--index] -file_filter = docs/locale//LC_MESSAGES/cost/index.po -source_file = build/locale/cost/index.pot -type = PO -minimum_perc = 0 -resource_name = cost--index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:cost--ocds] -file_filter = docs/locale//LC_MESSAGES/cost/ocds.po -source_file = build/locale/cost/ocds.pot -type = PO -minimum_perc = 0 -resource_name = cost--ocds -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--data_user_guide] -file_filter = docs/locale//LC_MESSAGES/guidance/data_user_guide.po -source_file = build/locale/guidance/data_user_guide.pot -type = PO -minimum_perc = 0 -resource_name = guidance--data_user_guide -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--evaluating] -file_filter = docs/locale//LC_MESSAGES/guidance/evaluating.po -source_file = build/locale/guidance/evaluating.pot -type = PO -minimum_perc = 0 -resource_name = guidance--evaluating -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--example] -file_filter = docs/locale//LC_MESSAGES/guidance/example.po -source_file = build/locale/guidance/example.pot -type = PO -minimum_perc = 0 -resource_name = guidance--example -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--identifiers] -file_filter = docs/locale//LC_MESSAGES/guidance/identifiers.po -source_file = build/locale/guidance/identifiers.pot -type = PO -minimum_perc = 0 -resource_name = guidance--identifiers -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--implementation] -file_filter = docs/locale//LC_MESSAGES/guidance/implementation.po -source_file = build/locale/guidance/implementation.pot -type = PO -minimum_perc = 0 -resource_name = guidance--implementation -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--index] -file_filter = docs/locale//LC_MESSAGES/guidance/index.po -source_file = build/locale/guidance/index.pot -type = PO -minimum_perc = 0 -resource_name = guidance--index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--language] -file_filter = docs/locale//LC_MESSAGES/guidance/language.po -source_file = build/locale/guidance/language.pot -type = PO -minimum_perc = 0 -resource_name = guidance--language -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--publishing] -file_filter = docs/locale//LC_MESSAGES/guidance/publishing.po -source_file = build/locale/guidance/publishing.pot -type = PO -minimum_perc = 0 -resource_name = guidance--publishing -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:guidance--using] -file_filter = docs/locale//LC_MESSAGES/guidance/using.po -source_file = build/locale/guidance/using.pot -type = PO -minimum_perc = 0 -resource_name = guidance--using -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:index] -file_filter = docs/locale//LC_MESSAGES/index.po -source_file = build/locale/index.pot -type = PO -minimum_perc = 0 -resource_name = index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:infrastructure-codelists] -file_filter = docs/locale//LC_MESSAGES/infrastructure-codelists.po -source_file = build/locale/infrastructure-codelists.pot -type = PO -minimum_perc = 0 -resource_name = infrastructure-codelists -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:infrastructure-mappings] -file_filter = docs/locale//LC_MESSAGES/infrastructure-mappings.po -source_file = build/locale/infrastructure-mappings.pot -type = PO -minimum_perc = 0 -resource_name = infrastructure-mappings -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:infrastructure-schema] -file_filter = docs/locale//LC_MESSAGES/infrastructure-schema.po -source_file = build/locale/infrastructure-schema.pot -type = PO -minimum_perc = 0 -resource_name = infrastructure-schema -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:projects--index] -file_filter = docs/locale//LC_MESSAGES/projects/index.po -source_file = build/locale/projects/index.pot -type = PO -minimum_perc = 0 -resource_name = projects--index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--browser] -file_filter = docs/locale//LC_MESSAGES/reference/browser.po -source_file = build/locale/reference/browser.pot -type = PO -minimum_perc = 0 -resource_name = reference--browser -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--changelog] -file_filter = docs/locale//LC_MESSAGES/reference/changelog.po -source_file = build/locale/reference/changelog.pot -type = PO -minimum_perc = 0 -resource_name = reference--changelog -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--codelists] -file_filter = docs/locale//LC_MESSAGES/reference/codelists.po -source_file = build/locale/reference/codelists.pot -type = PO -minimum_perc = 0 -resource_name = reference--codelists -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--index] -file_filter = docs/locale//LC_MESSAGES/reference/index.po -source_file = build/locale/reference/index.pot -type = PO -minimum_perc = 0 -resource_name = reference--index -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--package] -file_filter = docs/locale//LC_MESSAGES/reference/package.po -source_file = build/locale/reference/package.pot -type = PO -minimum_perc = 0 -resource_name = reference--package -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--prefixes] -file_filter = docs/locale//LC_MESSAGES/reference/prefixes.po -source_file = build/locale/reference/prefixes.pot -type = PO -minimum_perc = 0 -resource_name = reference--prefixes -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:reference--schema] -file_filter = docs/locale//LC_MESSAGES/reference/schema.po -source_file = build/locale/reference/schema.pot -type = PO -minimum_perc = 0 -resource_name = reference--schema -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:sphinx] -file_filter = docs/locale//LC_MESSAGES/sphinx.po -source_file = build/locale/sphinx.pot -type = PO -minimum_perc = 0 -resource_name = sphinx -replace_edited_strings = false -keep_translations = false - -[o:open-contracting-partnership-1:p:oc4ids-09:r:support] -file_filter = docs/locale//LC_MESSAGES/support.po -source_file = build/locale/support.pot -type = PO -minimum_perc = 0 -resource_name = support -replace_edited_strings = false -keep_translations = false - diff --git a/common-requirements.txt b/common-requirements.txt index 6111c7c4..9901c62d 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -158,7 +158,7 @@ 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@26357a570a259c17ceb210da6d9a4cfc23c2609b#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@1c192073bbc326445fbd0092d0cefcdea9962465#egg=standard_theme # via -r common-requirements.in starlette==0.47.2 # via sphinx-autobuild diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 00000000..9cfdbe4f --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,166 @@ +{ + "project_id": 825758, + "preserve_hierarchy": true, + "files": [ + { + "source": "/build/locale/404.pot", + "dest": "404.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/404.po" + }, + { + "source": "/build/locale/about.pot", + "dest": "about.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/about.po" + }, + { + "source": "/build/locale/cost/common.pot", + "dest": "cost/common.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/common.po" + }, + { + "source": "/build/locale/cost/ids/core.pot", + "dest": "cost/ids/core.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/ids/core.po" + }, + { + "source": "/build/locale/cost/ids/index.pot", + "dest": "cost/ids/index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/ids/index.po" + }, + { + "source": "/build/locale/cost/ids/sustainability.pot", + "dest": "cost/ids/sustainability.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/ids/sustainability.po" + }, + { + "source": "/build/locale/cost/index.pot", + "dest": "cost/index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/index.po" + }, + { + "source": "/build/locale/cost/ocds.pot", + "dest": "cost/ocds.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/cost/ocds.po" + }, + { + "source": "/build/locale/guidance/data_user_guide.pot", + "dest": "guidance/data_user_guide.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/data_user_guide.po" + }, + { + "source": "/build/locale/guidance/evaluating.pot", + "dest": "guidance/evaluating.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/evaluating.po" + }, + { + "source": "/build/locale/guidance/example.pot", + "dest": "guidance/example.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/example.po" + }, + { + "source": "/build/locale/guidance/identifiers.pot", + "dest": "guidance/identifiers.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/identifiers.po" + }, + { + "source": "/build/locale/guidance/implementation.pot", + "dest": "guidance/implementation.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/implementation.po" + }, + { + "source": "/build/locale/guidance/index.pot", + "dest": "guidance/index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/index.po" + }, + { + "source": "/build/locale/guidance/language.pot", + "dest": "guidance/language.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/language.po" + }, + { + "source": "/build/locale/guidance/publishing.pot", + "dest": "guidance/publishing.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/publishing.po" + }, + { + "source": "/build/locale/guidance/using.pot", + "dest": "guidance/using.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/guidance/using.po" + }, + { + "source": "/build/locale/index.pot", + "dest": "index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/index.po" + }, + { + "source": "/build/locale/infrastructure-codelists.pot", + "dest": "infrastructure-codelists.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/infrastructure-codelists.po" + }, + { + "source": "/build/locale/infrastructure-mappings.pot", + "dest": "infrastructure-mappings.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/infrastructure-mappings.po" + }, + { + "source": "/build/locale/infrastructure-schema.pot", + "dest": "infrastructure-schema.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/infrastructure-schema.po" + }, + { + "source": "/build/locale/infrastructure-theme.pot", + "dest": "infrastructure-theme.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/infrastructure-theme.po" + }, + { + "source": "/build/locale/projects/index.pot", + "dest": "projects/index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/projects/index.po" + }, + { + "source": "/build/locale/reference/browser.pot", + "dest": "reference/browser.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/browser.po" + }, + { + "source": "/build/locale/reference/changelog.pot", + "dest": "reference/changelog.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/changelog.po" + }, + { + "source": "/build/locale/reference/codelists.pot", + "dest": "reference/codelists.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/codelists.po" + }, + { + "source": "/build/locale/reference/index.pot", + "dest": "reference/index.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/index.po" + }, + { + "source": "/build/locale/reference/package.pot", + "dest": "reference/package.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/package.po" + }, + { + "source": "/build/locale/reference/prefixes.pot", + "dest": "reference/prefixes.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/prefixes.po" + }, + { + "source": "/build/locale/reference/schema.pot", + "dest": "reference/schema.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/reference/schema.po" + }, + { + "source": "/build/locale/sphinx.pot", + "dest": "sphinx.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/sphinx.po" + }, + { + "source": "/build/locale/support.pot", + "dest": "support.pot", + "translation": "/docs/locale/%two_letters_code%/LC_MESSAGES/support.po" + } + ] +} \ No newline at end of file diff --git a/include/common.mk b/include/common.mk index 63cb5b5c..12a9c619 100644 --- a/include/common.mk +++ b/include/common.mk @@ -63,37 +63,6 @@ docs/locale: $(TRANSLATIONS:.%=docs/locale/%) pocount: find $(LOCALE_DIR) -name LC_MESSAGES -exec pocount --incomplete --short "{}" + -### Transifex - -.PHONY: clean_txconfig -clean_txconfig: - rm -f .tx/config - sphinx-intl create-txconfig - -.PHONY: update_txconfig -update_txconfig: - sphinx-intl update-txconfig-resources --transifex-organization-name $(TRANSIFEX_ORGANIZATION) --transifex-project-name $(TRANSIFEX_PROJECT) --pot-dir $(POT_DIR) --locale-dir $(LOCALE_DIR) - -# Builds and pushes the .pot files (`source_file` in .tx/config) to Transifex. -.PHONY: push -push: extract - tx push -s - -force_push.%: extract - tx push -f -s -t -l $* - -# Also pushes the translation .po files (`file_filter` in .tx/config) to Transifex. -.PHONY: force_push -force_push: extract - tx push -f -s -t -l $(COMMA_SEPARATED_TRANSLATIONS) - -pull.%: FORCE - tx pull -f -l $* - -.PHONY: pull -pull: - tx pull -f -l $(COMMA_SEPARATED_TRANSLATIONS) - ### Current language # Create a symlink for the language, so that file paths in `jsonschema` directives resolve. diff --git a/include/config.mk b/include/config.mk index 69c5432b..e88a3036 100644 --- a/include/config.mk +++ b/include/config.mk @@ -19,10 +19,6 @@ DIST_FILES= POT_DIR=$(BUILD_DIR)/locale # The prefix, if any, to the schema and codelists domains. DOMAIN_PREFIX=infrastructure- -# The Transifex project name. -TRANSIFEX_PROJECT=oc4ids-09 -# The Transifex organization name. -TRANSIFEX_ORGANIZATION=open-contracting-partnership-1 # Any additional extract targets. EXTRACT_TARGETS=extract_mappings # Extra arguments for sphinx-autobuild. From 840f2b67a031be523c493733ea46567b9c02859e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:55:52 +0000 Subject: [PATCH 15/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.12.2 → v0.13.3](https://github.com/astral-sh/ruff-pre-commit/compare/v0.12.2...v0.13.3) - [github.com/astral-sh/uv-pre-commit: 0.7.19 → 0.8.23](https://github.com/astral-sh/uv-pre-commit/compare/0.7.19...0.8.23) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index abdd165f..410bf121 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,12 +5,12 @@ default_language_version: python: python3.10 repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.12.2 + rev: v0.13.3 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.7.19 + rev: 0.8.23 hooks: - id: pip-compile name: pip-compile common-requirements.in From 82f6e9cac77e22312b7f3efe4bfa3b36e82f0eb0 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 18 Nov 2025 01:11:10 -0500 Subject: [PATCH 16/43] build: Update to latest profile template --- common-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 9901c62d..ed0bd7c1 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -158,9 +158,9 @@ 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@1c192073bbc326445fbd0092d0cefcdea9962465#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@2c80f7d4748e768eead3fd34d31c00d6b953c02c#egg=standard_theme # via -r common-requirements.in -starlette==0.47.2 +starlette==0.49.1 # via sphinx-autobuild tomli==2.0.1 # via pytest From d0400aa3d982f926e9a46f9597936d4162b7f562 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 19 Nov 2025 13:48:07 -0500 Subject: [PATCH 17/43] build: Upgrade vulnerable dependencies --- common-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-requirements.txt b/common-requirements.txt index ed0bd7c1..7d08459e 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -160,7 +160,7 @@ sphinxcontrib-serializinghtml==1.1.5 # via sphinx standard-theme @ git+https://github.com/open-contracting/standard_theme.git@2c80f7d4748e768eead3fd34d31c00d6b953c02c#egg=standard_theme # via -r common-requirements.in -starlette==0.49.1 +starlette==0.50.0 # via sphinx-autobuild tomli==2.0.1 # via pytest From a6ac942e7e4985b9c076e095512e3df5c1a0b130 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 27 Nov 2025 15:42:46 -0500 Subject: [PATCH 18/43] ci: Disable AppArmor instead of using --no-sandbox (in conftest.py) open-contracting/software-development-handbook#142 --- tests/conftest.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index f5a6035f..2a393883 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -11,7 +11,6 @@ def browser(request): options = Options() options.add_argument("--headless") - options.add_argument("--no-sandbox") browser = webdriver.Chrome(options=options) browser.implicitly_wait(3) From 5c035be83d5ccebbc788c4cf1d650b8f41d7fd7d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 28 Nov 2025 15:45:51 -0500 Subject: [PATCH 19/43] docs: Document use of filenames input --- .github/workflows/js.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 62f7bfde..df3414f6 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -6,4 +6,4 @@ jobs: permissions: contents: read with: - filenames: docs/_static/json-example-format.js + filenames: docs/_static/json-example-format.js # ignore renderjson.js, docson From 72960bb94d1f67ae8e3e915e1633f1a98de45a6d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 11 Dec 2025 12:42:04 -0500 Subject: [PATCH 20/43] build: Upgrade vulnerable dependencies --- common-requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 7d08459e..3e5d0aaa 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -158,7 +158,7 @@ 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@2c80f7d4748e768eead3fd34d31c00d6b953c02c#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@5d169dcc532807146e3f1dbcf7bae9c5be11c398#egg=standard_theme # via -r common-requirements.in starlette==0.50.0 # via sphinx-autobuild @@ -181,7 +181,7 @@ uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 # via requests-cache -urllib3==2.5.0 +urllib3==2.6.2 # via # elastic-transport # requests From 0851635bc4bd6a2c89cfa785bfb36021c691d16b Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 11 Dec 2025 22:26:32 -0500 Subject: [PATCH 21/43] Build From 7323a6dc6c6fc36a3ac7622f966fb7dffab11289 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 5 Jan 2026 19:28:32 +0000 Subject: [PATCH 22/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.13.3 → v0.14.10](https://github.com/astral-sh/ruff-pre-commit/compare/v0.13.3...v0.14.10) - [github.com/astral-sh/uv-pre-commit: 0.8.23 → 0.9.21](https://github.com/astral-sh/uv-pre-commit/compare/0.8.23...0.9.21) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 410bf121..f989312e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -5,12 +5,12 @@ default_language_version: python: python3.10 repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.13.3 + rev: v0.14.10 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.8.23 + rev: 0.9.21 hooks: - id: pip-compile name: pip-compile common-requirements.in From 850a22fde98db185e4fe9ff5c2ea29ede89a31d5 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 14 Jan 2026 11:29:43 -0500 Subject: [PATCH 23/43] build: Update to latest profile template --- common-requirements.txt | 4 ++-- script/diff | 8 ++++---- script/update | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index 3e5d0aaa..30783e10 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -158,7 +158,7 @@ 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@5d169dcc532807146e3f1dbcf7bae9c5be11c398#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@dc06bcc22807e2d2950287746c4e5feb7988a131#egg=standard_theme # via -r common-requirements.in starlette==0.50.0 # via sphinx-autobuild @@ -181,7 +181,7 @@ uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 # via requests-cache -urllib3==2.6.2 +urllib3==2.6.3 # via # elastic-transport # requests diff --git a/script/diff b/script/diff index 85fb10c9..9de4f793 100755 --- a/script/diff +++ b/script/diff @@ -3,14 +3,14 @@ # No -e, because diff uses exit status 1 when differences are found. set -u -curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/docs/conf.py | diff -u - docs/conf.py +curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/docs/conf.py | diff -u - docs/conf.py for f in .github/workflows/ci.yml .github/workflows/spellcheck.yml include/config.mk; do - curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/$f | diff -u - $f + curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f | diff -u - $f done if [ -d util ] || [ -d schema/project-level ]; then - curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/.gitignore | diff -u - .gitignore + curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/.gitignore | diff -u - .gitignore else - curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/manage.py | diff -u - manage.py + curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/manage.py | diff -u - manage.py fi diff --git a/script/update b/script/update index a1ec03c3..ca0d1345 100755 --- a/script/update +++ b/script/update @@ -6,11 +6,11 @@ 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/lint.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 - curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/$f + curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f done if [ ! -d schema/project-level ]; then - curl -sS -o .gitignore https://raw.githubusercontent.com/open-contracting/standard_profile_template/latest/.gitignore + curl -sS -o .gitignore https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/.gitignore fi chmod +x script/* From 8206a9efd5be5707474f202a62f04615417e8d18 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Mon, 9 Feb 2026 12:43:59 -0500 Subject: [PATCH 24/43] ci: Remove python-version --- .github/workflows/lint.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 600ad9d5..1f620102 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,5 +7,3 @@ jobs: contents: write secrets: personal-access-token: ${{ secrets.PAT }} - with: - python-version: '3.10' From 67aa6de607a618fa0c39a12bff7acc6ddc13c75e Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Mon, 9 Feb 2026 21:01:25 -0500 Subject: [PATCH 25/43] build: Update to latest profile template --- .pre-commit-config.yaml | 2 -- .python-version | 2 +- common-requirements.txt | 25 ++++++++----------------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f989312e..65bd3b08 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,6 @@ ci: autoupdate_schedule: quarterly skip: [pip-compile] -default_language_version: - python: python3.10 repos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.14.10 diff --git a/.python-version b/.python-version index c8cfe395..6324d401 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.10 +3.14 diff --git a/common-requirements.txt b/common-requirements.txt index 30783e10..f1f6077e 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -14,7 +14,6 @@ attrs==23.1.0 # via # cattrs # outcome - # pytest # requests-cache # trio babel==2.9.1 @@ -46,11 +45,6 @@ elastic-transport==8.17.1 # via elasticsearch elasticsearch==8.6.2 # via ocdsindex -exceptiongroup==1.2.2 - # via - # anyio - # cattrs - # pytest h11==0.16.0 # via # uvicorn @@ -74,7 +68,7 @@ jsonref==1.0.0.post1 # via ocdsextensionregistry linkify-it-py==1.0.1 # via -r common-requirements.in -lxml==4.9.1 +lxml==6.0.2 # via ocdsindex markdown-it-py==2.2.0 # via @@ -102,13 +96,15 @@ packaging==24.1 # sphinx platformdirs==3.9.1 # via requests-cache -pluggy==0.13.1 +pluggy==1.6.0 # via pytest pygments==2.15.1 - # via sphinx + # via + # pytest + # sphinx pysocks==1.7.1 # via urllib3 -pytest==7.2.0 +pytest==9.0.2 # via -r common-requirements.in pytz==2021.1 # via babel @@ -158,12 +154,10 @@ 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@dc06bcc22807e2d2950287746c4e5feb7988a131#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@b84d9063694aa69ac74a56bb415f2e3ed37e2a45#egg=standard_theme # via -r common-requirements.in starlette==0.50.0 # via sphinx-autobuild -tomli==2.0.1 - # via pytest trio==0.20.0 # via # selenium @@ -172,11 +166,8 @@ trio-websocket==0.9.2 # via selenium typing-extensions==4.14.1 # via - # anyio - # cattrs # myst-parser # starlette - # uvicorn uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 @@ -189,7 +180,7 @@ urllib3==2.6.3 # selenium uvicorn==0.30.6 # via sphinx-autobuild -watchfiles==0.24.0 +watchfiles==1.1.1 # via sphinx-autobuild websockets==13.0.1 # via sphinx-autobuild From 4d32c69adabf97a5e777de58d983fb12f2085e97 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 31 Mar 2026 12:01:36 -0400 Subject: [PATCH 26/43] build: Update to latest profile template --- .python-version | 2 +- common-requirements.txt | 71 +++++++++++++++++++++++++++-------------- 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/.python-version b/.python-version index 6324d401..e4fba218 100644 --- a/.python-version +++ b/.python-version @@ -1 +1 @@ -3.14 +3.12 diff --git a/common-requirements.txt b/common-requirements.txt index f1f6077e..e6212cf3 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -4,25 +4,24 @@ alabaster==0.7.12 # via sphinx anyio==4.4.0 # via + # elasticsearch # starlette # watchfiles async-generator==1.10 - # via - # trio - # trio-websocket -attrs==23.1.0 + # via trio-typing +attrs==25.4.0 # via # cattrs # outcome # requests-cache # trio -babel==2.9.1 +babel==2.18.0 # via # sphinx # sphinx-intl cattrs==23.1.2 # via requests-cache -certifi==2024.7.4 +certifi==2026.1.4 # via # elastic-transport # requests @@ -41,9 +40,9 @@ docutils==0.18 # via # myst-parser # sphinx -elastic-transport==8.17.1 +elastic-transport==9.2.1 # via elasticsearch -elasticsearch==8.6.2 +elasticsearch==9.3.0 # via ocdsindex h11==0.16.0 # via @@ -56,6 +55,8 @@ idna==3.7 # trio imagesize==1.4.1 # via sphinx +importlib-metadata==8.7.1 + # via trio-typing iniconfig==1.1.1 # via pytest jinja2==3.1.6 @@ -80,25 +81,30 @@ mdit-py-plugins==0.3.1 # via myst-parser mdurl==0.1.2 # via markdown-it-py +mypy-extensions==1.1.0 + # via trio-typing myst-parser==0.18.1 # via -r common-requirements.in ocds-babel==0.3.7 # via -r common-requirements.in ocdsextensionregistry==0.6.5 # via -r common-requirements.in -ocdsindex==0.2.0 +ocdsindex==0.4.0 # via -r common-requirements.in -outcome==1.1.0 - # via trio +outcome==1.3.0.post0 + # via + # trio + # trio-websocket packaging==24.1 # via # pytest # sphinx + # trio-typing platformdirs==3.9.1 # via requests-cache pluggy==1.6.0 # via pytest -pygments==2.15.1 +pygments==2.20.0 # via # pytest # sphinx @@ -106,11 +112,11 @@ pysocks==1.7.1 # via urllib3 pytest==9.0.2 # via -r common-requirements.in -pytz==2021.1 - # via babel +python-dateutil==2.9.0.post0 + # via elasticsearch pyyaml==6.0.1 # via myst-parser -requests==2.32.4 +requests==2.33.0 # via # elasticsearch # ocdsextensionregistry @@ -118,15 +124,19 @@ requests==2.32.4 # sphinx requests-cache==1.1.0 # via ocdsextensionregistry -selenium==4.11.2 +selenium==4.40.0 # via -r common-requirements.in -setuptools==80.9.0 +setuptools==82.0.1 # via sphinx-intl six==1.16.0 - # via url-normalize -sniffio==1.2.0 + # via + # python-dateutil + # url-normalize +sniffio==1.3.1 # via # anyio + # elastic-transport + # elasticsearch # trio snowballstemmer==2.1.0 # via sphinx @@ -154,20 +164,29 @@ 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@b84d9063694aa69ac74a56bb415f2e3ed37e2a45#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@5ab01a75d04b92c39a7826b91250157667521cff#egg=standard_theme # via -r common-requirements.in starlette==0.50.0 # via sphinx-autobuild -trio==0.20.0 +trio==0.32.0 # via # selenium + # trio-typing # trio-websocket -trio-websocket==0.9.2 +trio-typing==0.10.0 + # via selenium +trio-websocket==0.12.2 + # via selenium +types-certifi==2021.10.8.3 + # via selenium +types-urllib3==1.26.25.14 # via selenium -typing-extensions==4.14.1 +typing-extensions==4.15.0 # via + # elasticsearch # myst-parser - # starlette + # selenium + # trio-typing uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 @@ -182,7 +201,11 @@ uvicorn==0.30.6 # via sphinx-autobuild watchfiles==1.1.1 # via sphinx-autobuild +websocket-client==1.9.0 + # via selenium websockets==13.0.1 # via sphinx-autobuild wsproto==1.1.0 # via trio-websocket +zipp==3.23.0 + # via importlib-metadata From 76a71e3b7620a868094a6c9e2a81e060b4880dce Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 1 Apr 2026 01:27:35 -0400 Subject: [PATCH 27/43] build: Update to latest profile template --- common-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-requirements.txt b/common-requirements.txt index e6212cf3..ed2d135b 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -89,7 +89,7 @@ ocds-babel==0.3.7 # via -r common-requirements.in ocdsextensionregistry==0.6.5 # via -r common-requirements.in -ocdsindex==0.4.0 +ocdsindex==0.4.1 # via -r common-requirements.in outcome==1.3.0.post0 # via From 1c133411beba05d9f7396afdc01c4955ddb3e678 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2026 19:44:26 +0000 Subject: [PATCH 28/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.14.10 → v0.15.9](https://github.com/astral-sh/ruff-pre-commit/compare/v0.14.10...v0.15.9) - [github.com/astral-sh/uv-pre-commit: 0.9.21 → 0.11.3](https://github.com/astral-sh/uv-pre-commit/compare/0.9.21...0.11.3) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 65bd3b08..a48a5f03 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,12 +3,12 @@ ci: skip: [pip-compile] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.14.10 + rev: v0.15.9 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.9.21 + rev: 0.11.3 hooks: - id: pip-compile name: pip-compile common-requirements.in From 3649f1713b7be69c27b2c484546eb1c62b5f291a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2026 19:49:58 +0000 Subject: [PATCH 29/43] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- manage.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/manage.py b/manage.py index 519cdfed..9b59fc4a 100755 --- a/manage.py +++ b/manage.py @@ -714,10 +714,8 @@ def _compare(actual, infra_list, ocds_list, prefix, suffix): "Organization", { # Refer to project instead of contracting process, link to infrastructure codelist instead of PPP codelist. - ("properties", "roles", "description"): lambda s: ( - s.replace("contracting process", "project").replace( - "profiles/ppp/latest/en/", "infrastructure/{{version}}/{{lang}}/" - ) + ("properties", "roles", "description"): lambda s: s.replace("contracting process", "project").replace( + "profiles/ppp/latest/en/", "infrastructure/{{version}}/{{lang}}/" ), }, ) @@ -778,8 +776,8 @@ def _compare(actual, infra_list, ocds_list, prefix, suffix): "Document", { # Link to infrastructure codelist instead of PPP codelist. - ("properties", "documentType", "description"): lambda s: ( - s.replace("profiles/ppp/latest/en/", "infrastructure/{{version}}/{{lang}}/") + ("properties", "documentType", "description"): lambda s: s.replace( + "profiles/ppp/latest/en/", "infrastructure/{{version}}/{{lang}}/" ), }, ) @@ -799,8 +797,8 @@ def _compare(actual, infra_list, ocds_list, prefix, suffix): _copy_element( "Metric", { - ("properties", "id", "description"): lambda s: ( - s.replace("contracting process", "contracting process or project") + ("properties", "id", "description"): lambda s: s.replace( + "contracting process", "contracting process or project" ), }, ) @@ -844,11 +842,9 @@ def _compare(actual, infra_list, ocds_list, prefix, suffix): "MilestoneReference", { # Remove reference to release, add reference to project. - ("properties", "id", "description"): lambda s: ( - s.replace( - " described elsewhere in a release about this contracting process.", - " in this project or contracting process's `.milestones`.", - ) + ("properties", "id", "description"): lambda s: s.replace( + " described elsewhere in a release about this contracting process.", + " in this project or contracting process's `.milestones`.", ), }, ) From 636e47f7fe2b277c8d0b569293a58c038fbe6c13 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:04:12 -0400 Subject: [PATCH 30/43] security: Implement dependency cooldowns open-contracting/software-development-handbook#161 --- .github/dependabot.yml | 2 ++ pyproject.toml | 3 +++ 2 files changed, 5 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 12301490..5e4251f2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,3 +4,5 @@ updates: directory: "/" schedule: interval: "daily" + cooldown: + default-days: 7 diff --git a/pyproject.toml b/pyproject.toml index 8cd10b2a..8dd8c13f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,3 +33,6 @@ ignore-variadic-names = true "D301", # click escapes "TRY003", # errors ] + +[tool.uv.pip] +exclude-newer = "1 week" From 852fe8bad2b4e147b0ac4cb2d1288557f5cdb53e Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 22 Apr 2026 15:25:27 -0400 Subject: [PATCH 31/43] build: Update to latest profile template --- common-requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common-requirements.txt b/common-requirements.txt index ed2d135b..d1616fcb 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -69,7 +69,7 @@ jsonref==1.0.0.post1 # via ocdsextensionregistry linkify-it-py==1.0.1 # via -r common-requirements.in -lxml==6.0.2 +lxml==6.0.4 # via ocdsindex markdown-it-py==2.2.0 # via @@ -110,7 +110,7 @@ pygments==2.20.0 # sphinx pysocks==1.7.1 # via urllib3 -pytest==9.0.2 +pytest==9.0.3 # via -r common-requirements.in python-dateutil==2.9.0.post0 # via elasticsearch @@ -164,7 +164,7 @@ 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@5ab01a75d04b92c39a7826b91250157667521cff#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@91c74b23da0079f05813fc8b4a4bc795026e8ae7#egg=standard_theme # via -r common-requirements.in starlette==0.50.0 # via sphinx-autobuild From 0cd7bf9b94c85f1e83206d5d2f0108709f42f070 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 24 Apr 2026 18:50:17 -0400 Subject: [PATCH 32/43] ci: Add ocds-disallow-null to lint.yml --- .github/workflows/lint.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1f620102..079ddeca 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,3 +7,5 @@ jobs: contents: write secrets: personal-access-token: ${{ secrets.PAT }} + with: + ocds-disallow-null: true From a7a2901423df4b131cbe7b560621ca2a9ca84a23 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 19:42:04 +0000 Subject: [PATCH 33/43] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.15.9 → v0.15.20](https://github.com/astral-sh/ruff-pre-commit/compare/v0.15.9...v0.15.20) - [github.com/astral-sh/uv-pre-commit: 0.11.3 → 0.11.26](https://github.com/astral-sh/uv-pre-commit/compare/0.11.3...0.11.26) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a48a5f03..041dee99 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,12 +3,12 @@ ci: skip: [pip-compile] repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.15.9 + rev: v0.15.20 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/astral-sh/uv-pre-commit - rev: 0.11.3 + rev: 0.11.26 hooks: - id: pip-compile name: pip-compile common-requirements.in From d44a081dc557ba0dcfbd6e8d8e511aa49a2a01f9 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 7 Jul 2026 12:25:18 -0400 Subject: [PATCH 34/43] build: Update to latest profile template --- .github/workflows/lint.yml | 2 -- common-requirements.txt | 10 +++++----- script/diff | 2 +- script/update | 2 +- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 079ddeca..1f620102 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,5 +7,3 @@ jobs: contents: write secrets: personal-access-token: ${{ secrets.PAT }} - with: - ocds-disallow-null: true diff --git a/common-requirements.txt b/common-requirements.txt index d1616fcb..09dbd234 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -48,7 +48,7 @@ h11==0.16.0 # via # uvicorn # wsproto -idna==3.7 +idna==3.15 # via # anyio # requests @@ -69,7 +69,7 @@ jsonref==1.0.0.post1 # via ocdsextensionregistry linkify-it-py==1.0.1 # via -r common-requirements.in -lxml==6.0.4 +lxml==6.1.0 # via ocdsindex markdown-it-py==2.2.0 # via @@ -164,9 +164,9 @@ 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@91c74b23da0079f05813fc8b4a4bc795026e8ae7#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@e86740617bdff1e9518b7905423201a1eca00a37#egg=standard_theme # via -r common-requirements.in -starlette==0.50.0 +starlette==1.3.1 # via sphinx-autobuild trio==0.32.0 # via @@ -191,7 +191,7 @@ uc-micro-py==1.0.1 # via linkify-it-py url-normalize==1.4.3 # via requests-cache -urllib3==2.6.3 +urllib3==2.7.0 # via # elastic-transport # requests diff --git a/script/diff b/script/diff index 9de4f793..6bbbd9a0 100755 --- a/script/diff +++ b/script/diff @@ -5,7 +5,7 @@ set -u curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/docs/conf.py | diff -u - docs/conf.py -for f in .github/workflows/ci.yml .github/workflows/spellcheck.yml include/config.mk; do +for f in .github/workflows/ci.yml .github/workflows/lint.yml .github/workflows/spellcheck.yml include/config.mk; do curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f | diff -u - $f done diff --git a/script/update b/script/update index ca0d1345..21025608 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/lint.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/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 curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f done From 2f54dfdaf691e0a18e1a849d419466fe2bd1fc4c Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:42:08 -0400 Subject: [PATCH 35/43] ci: Restore ocds-disallow-null --- .github/workflows/lint.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1f620102..079ddeca 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -7,3 +7,5 @@ jobs: contents: write secrets: personal-access-token: ${{ secrets.PAT }} + with: + ocds-disallow-null: true From bd3ca095684d6117a96a48a23cae032e9748236d Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Wed, 8 Jul 2026 00:31:41 -0400 Subject: [PATCH 36/43] build: Update to latest profile template --- .github/workflows/js.yml | 2 -- .pre-commit-config.yaml | 4 ++++ biome.json | 41 ++++++++++++++++++++++++++++++++++++++++ common-requirements.txt | 2 +- docs/_static/custom.css | 17 ++++++++++++++--- script/diff | 4 +--- script/update | 2 +- 7 files changed, 62 insertions(+), 10 deletions(-) create mode 100644 biome.json diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index df3414f6..7c4689fb 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -5,5 +5,3 @@ jobs: uses: open-contracting/.github/.github/workflows/js.yml@main permissions: contents: read - with: - filenames: docs/_static/json-example-format.js # ignore renderjson.js, docson diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 041dee99..fa2a642f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,3 +14,7 @@ repos: 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 + hooks: + - id: biome-check diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..ed90fb14 --- /dev/null +++ b/biome.json @@ -0,0 +1,41 @@ +{ + "vcs": { + "enabled": true, + "clientKind": "git", + "useIgnoreFile": true, + "defaultBranch": "main" + }, + "files": { + "includes": [ + "**", + "!docs/_static/docson", + "!docs/_static/renderjson.*", + "!docs/_templates", + "!docs/examples", + "!schema" + ] + }, + "assist": { + "actions": { + "source": { + "organizeImports": "on" + } + } + }, + "formatter": { + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 119 + }, + "json": { + "formatter": { + "indentWidth": 2 + } + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + } +} diff --git a/common-requirements.txt b/common-requirements.txt index 09dbd234..e608011f 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -164,7 +164,7 @@ 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@e86740617bdff1e9518b7905423201a1eca00a37#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@267fa534587afba86f5569bcaff256cff9d30746#egg=standard_theme # via -r common-requirements.in starlette==1.3.1 # via sphinx-autobuild diff --git a/docs/_static/custom.css b/docs/_static/custom.css index 03d59ce4..d20e7951 100644 --- a/docs/_static/custom.css +++ b/docs/_static/custom.css @@ -13,10 +13,21 @@ text-decoration-style: dotted; } -h1, h2, .rst-content .toctree-wrapper p.caption, h3, h4, h5, h6, legend, .wy-menu-vertical a, .oc-custom-select, #rtd-search-form input, .wy-side-nav-search > a{ - font-family: 'Montserrat',"Helvetica Neue",Helvetica,Arial,sans-serif; +h1, +h2, +.rst-content .toctree-wrapper p.caption, +h3, +h4, +h5, +h6, +legend, +.wy-menu-vertical a, +.oc-custom-select, +#rtd-search-form input, +.wy-side-nav-search > a { + font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; } .wy-menu-vertical a { - font-size: 95% + font-size: 95%; } diff --git a/script/diff b/script/diff index 6bbbd9a0..18f5fbdc 100755 --- a/script/diff +++ b/script/diff @@ -3,9 +3,7 @@ # No -e, because diff uses exit status 1 when differences are found. set -u -curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/docs/conf.py | diff -u - docs/conf.py - -for f in .github/workflows/ci.yml .github/workflows/lint.yml .github/workflows/spellcheck.yml include/config.mk; do +for f in biome.json .github/workflows/ci.yml .github/workflows/lint.yml .github/workflows/spellcheck.yml docs/conf.py include/config.mk; do curl -sS https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f | diff -u - $f done diff --git a/script/update b/script/update index 21025608..ede828d3 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/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 docs/_static/favicon-16x16.ico include/common.mk include/prologue.mk script/diff script/update tests/conftest.py tests/test_common.py; do curl -sS -o $f https://raw.githubusercontent.com/open-contracting/standard_profile_template/refs/heads/latest/$f done From a30a6b8575a6b3e15e59788b13bd8f29137cb9e8 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:46:57 -0400 Subject: [PATCH 37/43] chore(biome): linter.rules.recommended is true by default and deprecated (use linter.rules.preset) --- biome.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/biome.json b/biome.json index ed90fb14..95e612be 100644 --- a/biome.json +++ b/biome.json @@ -33,9 +33,6 @@ } }, "linter": { - "enabled": true, - "rules": { - "recommended": true - } + "enabled": true } } From e763151d1e0a65013a9889dfcac990c6935b76e9 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 10 Jul 2026 16:46:33 -0400 Subject: [PATCH 38/43] build: Update to latest profile template --- biome.json | 30 ++++-------------------------- 1 file changed, 4 insertions(+), 26 deletions(-) diff --git a/biome.json b/biome.json index 95e612be..4c0f7722 100644 --- a/biome.json +++ b/biome.json @@ -5,34 +5,12 @@ "useIgnoreFile": true, "defaultBranch": "main" }, - "files": { - "includes": [ - "**", - "!docs/_static/docson", - "!docs/_static/renderjson.*", - "!docs/_templates", - "!docs/examples", - "!schema" - ] - }, - "assist": { - "actions": { - "source": { - "organizeImports": "on" - } - } - }, "formatter": { "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 119 + "lineWidth": 119, + "includes": ["**", "!docs/examples/**/*.json", "!schema/**/*.json"] }, - "json": { - "formatter": { - "indentWidth": 2 - } - }, - "linter": { - "enabled": true + "files": { + "includes": ["**", "!docs/_static/docson", "!docs/_templates", "!docs/_static/renderjson.*"] } } From b00764c9a054b58aad44b4dc0b94053b085e3386 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 23 Jul 2026 16:13:56 -0400 Subject: [PATCH 39/43] chore: Upgrade ruff --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8dd8c13f..53049583 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ target-version = "py310" [tool.ruff.lint] select = ["ALL"] ignore = [ - "ANN", "C901", "COM812", "D203", "D212", "D415", "EM", "ISC001", "PERF203", "PLR091", "Q000", + "ANN", "C901", "COM812", "CPY001", "D203", "D212", "D415", "EM", "ISC001", "PERF203", "PLR091", "Q000", "D1", "D205", "PTH", "D200", # https://github.com/astral-sh/ruff/issues/6269 From 3aa8d6f1db35efec6593532619d405a2d59c77ca Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Fri, 24 Jul 2026 11:06:45 -0400 Subject: [PATCH 40/43] chore: Remove ruff target-version --- pyproject.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 53049583..66170be1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,6 @@ version = "0.0.0" [tool.ruff] line-length = 119 -target-version = "py310" [tool.ruff.lint] select = ["ALL"] From 544ec097d74255c2c1e2a6dd16ea0738bd1daca5 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 6 Aug 2026 23:39:54 -0400 Subject: [PATCH 41/43] chore: Use python3 interpreter (python not found on macOS) --- manage.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage.py b/manage.py index 9b59fc4a..497b084b 100755 --- a/manage.py +++ b/manage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import csv import json import re From 3c92432d3efece90256b99f90d3e1a9196160514 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 17 Sep 2026 21:47:17 -0400 Subject: [PATCH 42/43] build: Update to latest profile template --- .github/workflows/js.yml | 2 +- .github/workflows/lint.yml | 4 +--- .github/workflows/shell.yml | 2 +- .github/workflows/spellcheck.yml | 2 +- common-requirements.txt | 4 ++-- 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 7c4689fb..ab79551b 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -1,7 +1,7 @@ name: Lint JavaScript on: [push, pull_request] jobs: - lint: + js: uses: open-contracting/.github/.github/workflows/js.yml@main permissions: contents: read diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 079ddeca..e37180e8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -4,8 +4,6 @@ jobs: lint: uses: open-contracting/.github/.github/workflows/lint.yml@main permissions: - contents: write - secrets: - personal-access-token: ${{ secrets.PAT }} + contents: read with: ocds-disallow-null: true diff --git a/.github/workflows/shell.yml b/.github/workflows/shell.yml index 67df87a1..db657bed 100644 --- a/.github/workflows/shell.yml +++ b/.github/workflows/shell.yml @@ -1,7 +1,7 @@ name: Lint Shell on: [push, pull_request] jobs: - lint: + shell: uses: open-contracting/.github/.github/workflows/shell.yml@main permissions: contents: read diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 3fe75a97..7e98c567 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -1,7 +1,7 @@ name: Spell-check on: [push, pull_request] jobs: - lint: + spellcheck: uses: open-contracting/.github/.github/workflows/spellcheck.yml@main permissions: contents: read diff --git a/common-requirements.txt b/common-requirements.txt index e608011f..cc4e2acc 100644 --- a/common-requirements.txt +++ b/common-requirements.txt @@ -126,7 +126,7 @@ requests-cache==1.1.0 # via ocdsextensionregistry selenium==4.40.0 # via -r common-requirements.in -setuptools==82.0.1 +setuptools==84.0.0 # via sphinx-intl six==1.16.0 # via @@ -164,7 +164,7 @@ 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@267fa534587afba86f5569bcaff256cff9d30746#egg=standard_theme +standard-theme @ git+https://github.com/open-contracting/standard_theme.git@c1594b82ed4f9d75b85b3cd0dfb86b3a0d9ef965#egg=standard_theme # via -r common-requirements.in starlette==1.3.1 # via sphinx-autobuild From 5c2be3a7eafa9fab81210d28fb4f149e3f29b745 Mon Sep 17 00:00:00 2001 From: James McKinney <26463+jpmckinney@users.noreply.github.com> Date: Thu, 17 Sep 2026 23:10:46 -0400 Subject: [PATCH 43/43] ci: Make job name consistent --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b1829c54..eed44d62 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,7 +1,7 @@ name: CI on: [push, pull_request] jobs: - build: + ci: uses: open-contracting/.github/.github/workflows/ci-profile.yml@main permissions: contents: read