From 1bf091ea97263289b0d045d67c126d3222b79bab Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 5 Mar 2026 15:57:18 +0100 Subject: [PATCH 1/5] switch to zensical since mkdocs 1 is unmaintained and mkdocs 2 is ... special --- documentation/.gitignore | 2 +- documentation/.python-version | 1 - .../overrides/partials/copyright.html | 4 +- documentation/pyproject.toml | 10 +- documentation/uv.lock | 129 ++++++++++++++ documentation/zensical.toml | 159 ++++++++++++++++++ 6 files changed, 294 insertions(+), 11 deletions(-) delete mode 100644 documentation/.python-version create mode 100644 documentation/uv.lock create mode 100644 documentation/zensical.toml diff --git a/documentation/.gitignore b/documentation/.gitignore index af3887b1b..70a321042 100644 --- a/documentation/.gitignore +++ b/documentation/.gitignore @@ -9,6 +9,6 @@ wheels/ # Virtual environments .venv -uv.lock site/* +.python-version diff --git a/documentation/.python-version b/documentation/.python-version deleted file mode 100644 index e4fba2183..000000000 --- a/documentation/.python-version +++ /dev/null @@ -1 +0,0 @@ -3.12 diff --git a/documentation/overrides/partials/copyright.html b/documentation/overrides/partials/copyright.html index 5016d64ef..e5109fcb9 100644 --- a/documentation/overrides/partials/copyright.html +++ b/documentation/overrides/partials/copyright.html @@ -12,8 +12,8 @@ {% endif %} {% if not config.extra.generator == false %} Made with - - Material for MkDocs + + Zensical {% endif %} \ No newline at end of file diff --git a/documentation/pyproject.toml b/documentation/pyproject.toml index ad15b5223..89508bc21 100644 --- a/documentation/pyproject.toml +++ b/documentation/pyproject.toml @@ -1,13 +1,9 @@ [project] -name = "codabench-mkdocs" +name = "documentation" version = "0.1.0" description = "Add your description here" readme = "README.md" -requires-python = ">=3.12" +requires-python = ">=3.14" dependencies = [ - "mike>=2.1.3", - "mkdocs-glightbox>=0.4.0", - "mkdocs-material>=9.6.15", - "mkdocs-open-in-new-tab>=1.0.8", - "mkdocs-to-pdf>=0.10.1", + "zensical>=0.0.24", ] diff --git a/documentation/uv.lock b/documentation/uv.lock new file mode 100644 index 000000000..49b4ac5fe --- /dev/null +++ b/documentation/uv.lock @@ -0,0 +1,129 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" + +[[package]] +name = "click" +version = "8.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3d/fa/656b739db8587d7b5dfa22e22ed02566950fbfbcdc20311993483657a5c0/click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a", size = 295065, upload-time = "2025-11-15T20:45:42.706Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/98/78/01c019cdb5d6498122777c1a43056ebb3ebfeef2076d9d026bfe15583b2b/click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6", size = 108274, upload-time = "2025-11-15T20:45:41.139Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "deepmerge" +version = "2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a8/3a/b0ba594708f1ad0bc735884b3ad854d3ca3bdc1d741e56e40bbda6263499/deepmerge-2.0.tar.gz", hash = "sha256:5c3d86081fbebd04dd5de03626a0607b809a98fb6ccba5770b62466fe940ff20", size = 19890, upload-time = "2024-08-30T05:31:50.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2d/82/e5d2c1c67d19841e9edc74954c827444ae826978499bde3dfc1d007c8c11/deepmerge-2.0-py3-none-any.whl", hash = "sha256:6de9ce507115cff0bed95ff0ce9ecc31088ef50cbdf09bc90a09349a318b3d00", size = 13475, upload-time = "2024-08-30T05:31:48.659Z" }, +] + +[[package]] +name = "documentation" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "zensical" }, +] + +[package.metadata] +requires-dist = [{ name = "zensical", specifier = ">=0.0.24" }] + +[[package]] +name = "markdown" +version = "3.10.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, +] + +[[package]] +name = "pygments" +version = "2.19.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/63/06673d1eb6d8f83c0ea1f677d770e12565fb516928b4109c9e2055656a9e/pymdown_extensions-10.21.tar.gz", hash = "sha256:39f4a020f40773f6b2ff31d2cd2546c2c04d0a6498c31d9c688d2be07e1767d5", size = 853363, upload-time = "2026-02-15T20:44:06.748Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/2c/5b079febdc65e1c3fb2729bf958d18b45be7113828528e8a0b5850dd819a/pymdown_extensions-10.21-py3-none-any.whl", hash = "sha256:91b879f9f864d49794c2d9534372b10150e6141096c3908a455e45ca72ad9d3f", size = 268877, upload-time = "2026-02-15T20:44:05.464Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "zensical" +version = "0.0.24" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "deepmerge" }, + { name = "markdown" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/96/9c6cbdd7b351d1023cdbbcf7872d4cb118b0334cfe5821b99e0dd18e3f00/zensical-0.0.24.tar.gz", hash = "sha256:b5d99e225329bf4f98c8022bdf0a0ee9588c2fada7b4df1b7b896fcc62b37ec3", size = 3840688, upload-time = "2026-02-26T09:43:44.557Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/aa/b8201af30e376a67566f044a1c56210edac5ae923fd986a836d2cf593c9c/zensical-0.0.24-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d390c5453a5541ca35d4f9e1796df942b6612c546e3153dd928236d3b758409a", size = 12263407, upload-time = "2026-02-26T09:43:14.716Z" }, + { url = "https://files.pythonhosted.org/packages/78/8e/3d910214471ade604fd39b080db3696864acc23678b5b4b8475c7dbfd2ce/zensical-0.0.24-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:81ac072869cf4d280853765b2bfb688653da0dfb9408f3ab15aca96455ab8223", size = 12142610, upload-time = "2026-02-26T09:43:17.546Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d7/eb0983640aa0419ddf670298cfbcf8b75629b6484925429b857851e00784/zensical-0.0.24-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5eb1dfa84cae8e960bfa2c6851d2bc8e9710c4c4c683bd3aaf23185f646ae46", size = 12508380, upload-time = "2026-02-26T09:43:20.114Z" }, + { url = "https://files.pythonhosted.org/packages/a3/04/4405b9e6f937a75db19f0d875798a7eb70817d6a3bec2a2d289a2d5e8aea/zensical-0.0.24-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:57d7c9e589da99c1879a1c703e67c85eaa6be4661cdc6ce6534f7bb3575983f4", size = 12440807, upload-time = "2026-02-26T09:43:22.679Z" }, + { url = "https://files.pythonhosted.org/packages/12/dc/a7ca2a4224b3072a2c2998b6611ad7fd4f8f131ceae7aa23238d97d26e22/zensical-0.0.24-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42fcc121c3095734b078a95a0dae4d4924fb8fbf16bf730456146ad6cab48ad0", size = 12782727, upload-time = "2026-02-26T09:43:25.347Z" }, + { url = "https://files.pythonhosted.org/packages/42/37/22f1727da356ed3fcbd31f68d4a477f15c232997c87e270cfffb927459ac/zensical-0.0.24-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:832d4a2a051b9f49561031a2986ace502326f82d9a401ddf125530d30025fdd4", size = 12547616, upload-time = "2026-02-26T09:43:28.031Z" }, + { url = "https://files.pythonhosted.org/packages/6d/ff/c75ff111b8e12157901d00752beef9d691dbb5a034b6a77359972262416a/zensical-0.0.24-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e5fea3bb61238dba9f930f52669db67b0c26be98e1c8386a05eb2b1e3cb875dc", size = 12684883, upload-time = "2026-02-26T09:43:30.642Z" }, + { url = "https://files.pythonhosted.org/packages/b9/92/4f6ea066382e3d068d3cadbed99e9a71af25e46c84a403e0f747960472a2/zensical-0.0.24-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:75eef0428eec2958590633fdc82dc2a58af124879e29573aa7e153b662978073", size = 12713825, upload-time = "2026-02-26T09:43:33.273Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fb/bf735b19bce0034b1f3b8e1c50b2896ebbd0c5d92d462777e759e78bb083/zensical-0.0.24-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:3c6b39659156394ff805b4831dac108c839483d9efa4c9b901eaa913efee1ac7", size = 12854318, upload-time = "2026-02-26T09:43:35.632Z" }, + { url = "https://files.pythonhosted.org/packages/7e/28/0ddab6c1237e3625e7763ff666806f31e5760bb36d18624135a6bb6e8643/zensical-0.0.24-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:9eef82865a18b3ca4c3cd13e245dff09a865d1da3c861e2fc86eaa9253a90f02", size = 12818270, upload-time = "2026-02-26T09:43:37.749Z" }, + { url = "https://files.pythonhosted.org/packages/2a/93/d2cef3705d4434896feadffb5b3e44744ef9f1204bc41202c1b84a4eeef6/zensical-0.0.24-cp310-abi3-win32.whl", hash = "sha256:f4d0ff47d505c786a26c9332317aa3e9ad58d1382f55212a10dc5bafcca97864", size = 11857695, upload-time = "2026-02-26T09:43:39.906Z" }, + { url = "https://files.pythonhosted.org/packages/f1/26/9707587c0f6044dd1e1cc5bc3b9fa5fed81ce6c7bcdb09c21a9795e802d9/zensical-0.0.24-cp310-abi3-win_amd64.whl", hash = "sha256:e00a62cf04526dbed665e989b8f448eb976247f077a76dfdd84699ace4aa3ac3", size = 12057762, upload-time = "2026-02-26T09:43:42.627Z" }, +] diff --git a/documentation/zensical.toml b/documentation/zensical.toml new file mode 100644 index 000000000..f3cfc6b66 --- /dev/null +++ b/documentation/zensical.toml @@ -0,0 +1,159 @@ +[project] +site_name = "Codabench Docs" +repo_url = "https://github.com/codalab/codabench" +copyright = "Creative Commons Attribution-ShareAlike 4.0 License" +edit_uri = "edit/develop/documentation/docs" +nav = [ + {"Home" = "index.md"}, + {"Participants" = [ + {"Participating in a Competition" = "Participants/User_Participating-in-a-Competition.md"}, + {"List of Current Benchmarks and Competitions" = "https://www.codabench.org/competitions/public/?page=1"} + ]}, + {"Organizers" = [ + {"Benchmark Creation" = [ + {"Getting Started Tutorial" = "Organizers/Benchmark_Creation/Getting-started-with-Codabench.md"}, + {"Advanced Tutorial" = "Organizers/Benchmark_Creation/Advanced-Tutorial.md"}, + {"How to Transition from Codalab to Codabench?" = "Organizers/Benchmark_Creation/How-to-transition-from-CodaLab-to-Codabench.md"}, + {"Competition Creation" = "Organizers/Benchmark_Creation/Competition-Creation.md"}, + {"Competition Creation Form" = "Organizers/Benchmark_Creation/Competition-Creation-Form.md"}, + {"Competition Creation Bundle" = "Organizers/Benchmark_Creation/Competition-Creation-Bundle.md"}, + {"Competition YAML Structure" = "Organizers/Benchmark_Creation/Competition-Bundle-Structure.md"}, + {"YAML Structure" = "Organizers/Benchmark_Creation/Yaml-Structure.md"}, + {"Competition Docker Image" = "Organizers/Benchmark_Creation/Competition-docker-image.md"}, + {"Dataset Competition Creation and participate instruction" = "Organizers/Benchmark_Creation/Dataset-competition-creation-and-participate-instruction.md"}, + {"Leaderboard Features" = "Organizers/Benchmark_Creation/Leaderboard-Functionality.md"}, + {"Competition Examples" = "https://github.com/codalab/competition-examples/tree/master/codabench"}, + {"Public Tasks and Tasks Sharing" = "Organizers/Benchmark_Creation/Public-Tasks-and-Tasks-Sharing.md"}, + {"Detailed Results and Visualization" = "Organizers/Benchmark_Creation/Detailed-Results-and-Visualizations.md"}, + ]}, + {"Running a Benchmarks" = [ + {"Benchmark Management & List Page" = "Organizers/Running_a_benchmark/Competition-Management-&-List.md"}, + {"Benchmark Detail Page"= "Organizers/Running_a_benchmark/Competition-Detail-Page.md"}, + {"Ressource Management Submissions, Datasets/Programs, Tasks and Competition Bundles" = "Organizers/Running_a_benchmark/Resource-Management.md"}, + {"Update programs or data" = "Organizers/Running_a_benchmark/Update-programs-or-data.md"}, + {"Queue Management" = "Organizers/Running_a_benchmark/Queue-Management.md"}, + {"Compute Worker Management & Setup" = "Organizers/Running_a_benchmark/Compute-Worker-Management---Setup.md"}, + {"Compute Worker Management with Podman" = "Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman.md"}, + {"Server Status" = "Organizers/Running_a_benchmark/Server-status-page.md"} + ]} + ]}, + {"Developers and Administrators" = [ + {"Codabench Basic Installation Guide" = "Developers_and_Administrators/Codabench-Installation.md"}, + {"How to Deploy a Server" = "Developers_and_Administrators/How-to-deploy-Codabench-on-your-server.md"}, + {"Administrative Procedures" = "Developers_and_Administrators/Administrator-procedures.md"}, + {"Codabench Docker Architecture" = "Developers_and_Administrators/Codabench-Architecture.md"}, + {"Submission Docker Container Layout" = "Developers_and_Administrators/Submission-Docker-Container-Layout.md"}, + {"Backups - Automating Creation and Restoring" = "Developers_and_Administrators/Creating-and-Restoring-from-Backup.md"}, + {"Submission Process Overview" = "Developers_and_Administrators/Submission-Process-Overview.md"}, + {"Robot Submissions" = "Developers_and_Administrators/Robot-submissions.md"}, + {"Adding Tests" = "Developers_and_Administrators/Adding-e2e-tests.md"}, + {"Running Tests" = "Developers_and_Administrators/Running-tests.md"}, + {"Automation" = "Developers_and_Administrators/Automating-with-Selenium.md"}, + {"Manual Validation" = "Developers_and_Administrators/Manual-validation.md"}, + {"Validation and deployement of pull requests" = "Developers_and_Administrators/Validation-and-deployment-of-pull-requests.md"}, + {" Upgrading Codabench" = [ + "Developers_and_Administrators/Upgrading_Codabench/index.md", + {"Upgrade RabbitMQ (version < 1.0.0)" = "Developers_and_Administrators/Upgrading_Codabench/Upgrade-RabbitMQ.md"}, + {"Create new logos for each competitions (version < 1.4.1)" = "Developers_and_Administrators/Upgrading_Codabench/Create-new-logos-for-each-competition.md"}, + {"Worker docker image manual update (version < 1.3.1)" = "Developers_and_Administrators/Upgrading_Codabench/Worker-Docker-Image-manual-update.md"}, + {"Add line in .env file for default worker queue duration (version < 1.7.0)" = "Developers_and_Administrators/Upgrading_Codabench/Add-line-into-.env-for-default-queue-worker-duration.md"}, + {"Uncomment a line in your .env file (version < 1.8.0)" = "Developers_and_Administrators/Upgrading_Codabench/Uncomment-a-line-in-your-.env-file.md"}, + {"Rebuilding all docker images (version < 1.9.2)" = "Developers_and_Administrators/Upgrading_Codabench/Rebuilding-all-docker-images.md"}, + {"Move the latest storage_inconsistency files from the logs folder to var/logs (version < 1.12.0)" = "Developers_and_Administrators/Upgrading_Codabench/Move-the-last-storage_inconsistency-files-from--logs-folder-to--var-logs--folder.md"}, + {"Submissions and Participants count (version < 1.14.0)" = "Developers_and_Administrators/Upgrading_Codabench/Submissions-and-Participants-Counts.md"}, + {"Homepage Counters (version < 1.15.0)" = "Developers_and_Administrators/Upgrading_Codabench/Homepage-counters.md"}, + {"User Removal (version < 1.17.0)" = "Developers_and_Administrators/Upgrading_Codabench/User-removal.md"}, + {"Database size fix (version < 1.18.0)" = "Developers_and_Administrators/Upgrading_Codabench/Database-size-fixes.md"} + ]} + ]}, + {"Newsletters Archive" = [ + {"2024" = "Newsletters_Archive/CodaLab-in-2024.md"}, + {"2025" = "Newsletters_Archive/CodaLab-in-2025.md"} + ]}, + {"FAQ" = "Project_CodaBench_FAQ.md"}, + {"Contact Us" = "contact-us.md"} +] + + +[project.theme] +variant = "modern" +custom_dir = "overrides" +features = [ + "content.code.copy", + "navigation.tabs", + "navigation.tabs.sticky", + "search.share", + "navigation.footer", + "navigation.top", + "content.action.edit", + "content.action.view", + "navigation.expand", + "navigation.instant", + "navigation.instant.progress", +] + +# Palette toggle for automatic mode +[[project.theme.palette]] +media = "(prefers-color-scheme)" +toggle.icon = "lucide/sun-moon" +toggle.name = "Switch to light mode" + +# Palette toggle for light mode +[[project.theme.palette]] +media = "(prefers-color-scheme: light)" +scheme = "default" +toggle.icon = "lucide/sun" +toggle.name = "Switch to dark mode" + +# Palette toggle for dark mode +[[project.theme.palette]] +media = "(prefers-color-scheme: dark)" +scheme = "slate" +toggle.icon = "lucide/moon" +toggle.name = "Switch to system preference" + +# Mardown extensions +[project.markdown_extensions.pymdownx.highlight] +anchor_linenums = true +line_spans = "__span" +pygments_lang_class = true +[project.markdown_extensions.pymdownx.inlinehilite] +[project.markdown_extensions.pymdownx.snippets] +[project.markdown_extensions.pymdownx.superfences] +custom_fences = [ + { name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" } +] +[project.markdown_extensions.admonition] +[project.markdown_extensions.pymdownx.details] +[project.markdown_extensions.attr_list] +[project.markdown_extensions.pymdownx.emoji] +[project.markdown_extensions.tables] +[project.markdown_extensions.pymdownx.tabbed] +alternate_style = true +[project.markdown_extensions.pymdownx.tabbed.slugify] +object = "pymdownx.slugs.slugify" +kwds = { case = "lower" } +[project.markdown_extensions.pymdownx.caret] +[project.markdown_extensions.pymdownx.keys] +[project.markdown_extensions.pymdownx.mark] +[project.markdown_extensions.pymdownx.tilde] +[project.markdown_extensions.md_in_html] +[project.markdown_extensions.pymdownx.blocks.caption] +[project.markdown_extensions.zensical.extensions.preview] +configurations = [ + { targets.include = [ + "customization.md", + "setup/extensions/*" + ]} +] + +# Extras +[project.extra] +footer_links = [ + {"text" = "Governance Document"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/GOVERNANCE.md"}, + {"text" = "Privacy Policy"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/PRIVACY.md"}, + {"text" = "About"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/ABOUT.md"} +] \ No newline at end of file From 9d4cf55a22a3d6ee030dc591c1d7337d4a1fc5d1 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 5 Mar 2026 16:10:32 +0100 Subject: [PATCH 2/5] remove some mkdocs traces, update workflow to use zensical instead of mkdocs --- .github/workflows/ghPages-dev.yml | 25 --------------------- .github/workflows/ghPages-prod.yml | 36 +++++++++++++++++------------- documentation/README.md | 20 +++-------------- documentation/main.py | 6 ----- 4 files changed, 23 insertions(+), 64 deletions(-) delete mode 100644 .github/workflows/ghPages-dev.yml delete mode 100644 documentation/main.py diff --git a/.github/workflows/ghPages-dev.yml b/.github/workflows/ghPages-dev.yml deleted file mode 100644 index 9616e1fb5..000000000 --- a/.github/workflows/ghPages-dev.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: github-pages-dev -on: - push: - branches: - - develop -permissions: - contents: write -jobs: - deploy-dev: - runs-on: ubuntu-latest - defaults: - run: - working-directory: documentation/ - steps: - - uses: actions/checkout@v4 - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - run: /home/runner/.local/bin/uv sync - - run: git fetch origin gh-pages --depth=1 && PDF=1 /home/runner/.local/bin/uv run mike deploy -u dev --push \ No newline at end of file diff --git a/.github/workflows/ghPages-prod.yml b/.github/workflows/ghPages-prod.yml index b12be4cd6..d4e64e59b 100644 --- a/.github/workflows/ghPages-prod.yml +++ b/.github/workflows/ghPages-prod.yml @@ -1,25 +1,29 @@ -name: github-pages-prod +name: Documentation on: push: - tags: - - '*' + branches: + - master + - main permissions: - contents: write + contents: read + pages: write + id-token: write jobs: - deploy-prod: + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest - defaults: - run: - working-directory: documentation/ steps: - - uses: actions/checkout@v4 - - name: Configure Git Credentials - run: | - git config user.name github-actions[bot] - git config user.email 41898282+github-actions[bot]@users.noreply.github.com + - uses: actions/configure-pages@v5 + - uses: actions/checkout@v5 - uses: actions/setup-python@v5 with: python-version: 3.x - - run: curl -LsSf https://astral.sh/uv/install.sh | sh - - run: /home/runner/.local/bin/uv sync - - run: git fetch origin gh-pages --depth=1 && PDF=1 /home/runner/.local/bin/uv run mike deploy -u ${{ github.ref_name }} latest --push \ No newline at end of file + - run: pip install zensical + - run: zensical build --clean + - uses: actions/upload-pages-artifact@v4 + with: + path: site + - uses: actions/deploy-pages@v4 + id: deployment \ No newline at end of file diff --git a/documentation/README.md b/documentation/README.md index 8fc6cd6bd..20e8325a8 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -14,26 +14,12 @@ To build the docs locally, you will have to first install [uv](https://github.co Once that is done, you can run the following commands (while inside this folder): ```bash -uv sync # You only need to run this once, it will download all the necessary python packages -PDF=1 uv run mkdocs serve -a localhost:8888 # This will build the site and serve it on localhost:8888 +uv sync --frozen # You only need to run this once, it will download all the necessary python packages +uv run zensical serve -a localhost:8888 # This will build the site and serve it on localhost:8888 ``` Open [localhost:8888](http://localhost:8888/) in your browser and you will see the docs. Every changes you make will rebuild the documentation. You can remove the `PDF=1` environement variable if you want to speed up the build process, but you will not generate the related PDF. - -### Versioning -We use the [mike](https://github.com/jimporter/mike) plugin to preserve multiple version of the docs. - -To use it, you can run the following command: -```bash -PDF=1 uv run mike deploy -u dev # This will create the site and push the changes in the gh-pages branch -uv run mike serve -a localhost:8888 # Serve the site on localhost:8888 -``` -Check the official Github page of the plugin for more information on how it works. - ## Images and Assets -Images and assets are saved in the `_attachments` folder closest to the documentation file that calls for the image. If an image is used in multiple different places, then it should be put in `_attachements` folder in the `docs/` root directory. - -## Github workflow -We have Github workflows set up to automatically rebuild the docs when the `develop` branch receives changes, and when a new tag is created for the `master` branch. \ No newline at end of file +Images and assets are saved in the `_attachments` folder closest to the documentation file that calls for the image. If an image is used in multiple different places, then it should be put in `_attachements` folder in the `docs/` root directory. \ No newline at end of file diff --git a/documentation/main.py b/documentation/main.py deleted file mode 100644 index 04325bc6b..000000000 --- a/documentation/main.py +++ /dev/null @@ -1,6 +0,0 @@ -def main(): - print("Hello from mkdocs!") - - -if __name__ == "__main__": - main() From ec92dabcae846d686a80c9d2e25c8fa1cd871b73 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Fri, 6 Mar 2026 09:07:35 +0100 Subject: [PATCH 3/5] update the documentation to use system font instead of google fonts --- documentation/zensical.toml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/documentation/zensical.toml b/documentation/zensical.toml index f3cfc6b66..1626492a7 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -91,7 +91,7 @@ features = [ "navigation.instant", "navigation.instant.progress", ] - +font = false # Palette toggle for automatic mode [[project.theme.palette]] media = "(prefers-color-scheme)" @@ -117,11 +117,12 @@ toggle.name = "Switch to system preference" anchor_linenums = true line_spans = "__span" pygments_lang_class = true +auto_title = true [project.markdown_extensions.pymdownx.inlinehilite] [project.markdown_extensions.pymdownx.snippets] [project.markdown_extensions.pymdownx.superfences] custom_fences = [ - { name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" } + { name = "mermaid", class = "mermaid", format = "pymdownx.superfences.fence_code_format" } ] [project.markdown_extensions.admonition] [project.markdown_extensions.pymdownx.details] @@ -146,14 +147,14 @@ configurations = [ "setup/extensions/*" ]} ] - +[project.markdown_extensions.pymdownx.smartsymbols] # Extras [project.extra] footer_links = [ - {"text" = "Governance Document"}, - {"href" = "https://github.com/codalab/codabench/blob/master/documentation/GOVERNANCE.md"}, - {"text" = "Privacy Policy"}, - {"href" = "https://github.com/codalab/codabench/blob/master/documentation/PRIVACY.md"}, - {"text" = "About"}, - {"href" = "https://github.com/codalab/codabench/blob/master/documentation/ABOUT.md"} + {"text" = "Governance Document"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/GOVERNANCE.md"}, + {"text" = "Privacy Policy"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/PRIVACY.md"}, + {"text" = "About"}, + {"href" = "https://github.com/codalab/codabench/blob/master/documentation/ABOUT.md"} ] \ No newline at end of file From dbe9d74df754d295e776433072daaec72648b2f3 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Mon, 9 Mar 2026 14:53:31 +0100 Subject: [PATCH 4/5] rebase and update branch with new documentation --- documentation/zensical.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/documentation/zensical.toml b/documentation/zensical.toml index 1626492a7..ccd47bfd2 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -63,7 +63,12 @@ nav = [ {"Submissions and Participants count (version < 1.14.0)" = "Developers_and_Administrators/Upgrading_Codabench/Submissions-and-Participants-Counts.md"}, {"Homepage Counters (version < 1.15.0)" = "Developers_and_Administrators/Upgrading_Codabench/Homepage-counters.md"}, {"User Removal (version < 1.17.0)" = "Developers_and_Administrators/Upgrading_Codabench/User-removal.md"}, - {"Database size fix (version < 1.18.0)" = "Developers_and_Administrators/Upgrading_Codabench/Database-size-fixes.md"} + {"Database size fix (version < 1.18.0)" = "Developers_and_Administrators/Upgrading_Codabench/Database-size-fixes.md"}, + {"Hide Output update (version < 1.19.0)" = "Developers_and_Administrators/Upgrading_Codabench/Hide-output.md"}, + {"Django 3 Upgrades (version < 1.20.0)" = "Developers_and_Administrators/Upgrading_Codabench/Django-3.md"}, + {"Minio Image Upgrade (version < 1.21.0)" = "Developers_and_Administrators/Upgrading_Codabench/Minio-image.md"}, + {"Docker-Py (version < 1.22.0)" = "Developers_and_Administrators/Upgrading_Codabench/Docker-py.md"}, + {"Django 4 Upgrades (version < 1.23.0)" = "Developers_and_Administrators/Upgrading_Codabench/Django-4.md"} ]} ]}, {"Newsletters Archive" = [ From 83edb4c3f61510b8fca4f1f10bc7f7cd87a7fb44 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Mon, 9 Mar 2026 14:54:16 +0100 Subject: [PATCH 5/5] remove mkdocs.yml --- documentation/mkdocs.yml | 176 --------------------------------------- 1 file changed, 176 deletions(-) delete mode 100644 documentation/mkdocs.yml diff --git a/documentation/mkdocs.yml b/documentation/mkdocs.yml deleted file mode 100644 index b452cf2fb..000000000 --- a/documentation/mkdocs.yml +++ /dev/null @@ -1,176 +0,0 @@ -site_name: Codabench Docs -repo_url: https://github.com/codalab/codabench -copyright: Apache-2.0 -edit_uri: edit/develop/documentation/docs - -theme: - name: material - #logo: assets/favicon.ico - #favicon: assets/favicon.ico - custom_dir: overrides - features: - - content.code.copy - - navigation.tabs - - navigation.tabs.sticky - - navigation.indexes - - search.share - - navigation.footer - - navigation.top - - content.action.edit - - content.action.view - - navigation.expand - palette: - # Palette toggle for light mode - - scheme: slate - toggle: - icon: material/brightness-7 - name: Switch to dark mode - primary: indigo - accent: orange - - # Palette toggle for dark mode - - scheme: default - toggle: - icon: material/brightness-4 - name: Switch to light mode - - icon: - repo: fontawesome/brands/github - -markdown_extensions: - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences: - custom_fences: - - name: mermaid - class: mermaid - format: !!python/name:pymdownx.superfences.fence_code_format - - tables - - attr_list - - abbr - - toc: - permalink: true - - admonition - - pymdownx.details - - pymdownx.tabbed: - alternate_style: true - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg - -plugins: - - search - - to-pdf: - enabled_if_env: PDF - download_link: header - author: Codabench Team - copyright: Apache-2.0 - cover_subtitle: Codabench Docs PDF - output_path: codabench-docs.pdf - toc_level: 3 - - # Version docs (with git) - - mike: - # These fields are all optional; the defaults are as below... - alias_type: symlink - redirect_template: null - deploy_prefix: "" - canonical_version: null - version_selector: true - css_dir: css - javascript_dir: js - - - open-in-new-tab: - add_icon: true - - # Image zoom - - glightbox - - - privacy - -extra: - version: - provider: mike - alias: true - footer_links: - - text: "Governance Document" - href: "https://github.com/codalab/codabench/blob/master/documentation/GOVERNANCE.md" - - text: "Privacy Policy" - href: "https://github.com/codalab/codabench/blob/master/documentation/PRIVACY.md" - - text: "About" - href: "https://github.com/codalab/codabench/blob/master/documentation/ABOUT.md" - -nav: - - Home: index.md - - Participants: - - Participating in a Competition: Participants/User_Participating-in-a-Competition.md - - List of Current Benchmarks and Competitions: https://www.codabench.org/competitions/public/?page=1 - - Organizers: - - Benchmark Creation: - - Getting Started Tutorial: Organizers/Benchmark_Creation/Getting-started-with-Codabench.md - - Advanced Tutorial: Organizers/Benchmark_Creation/Advanced-Tutorial.md - - How to Transition from Codalab to Codabench?: Organizers/Benchmark_Creation/How-to-transition-from-CodaLab-to-Codabench.md - - Competition Creation: Organizers/Benchmark_Creation/Competition-Creation.md - - Competition Creation Form: Organizers/Benchmark_Creation/Competition-Creation-Form.md - - Competition Creation Bundle: Organizers/Benchmark_Creation/Competition-Creation-Bundle.md - - Competition Bundle Structure: Organizers/Benchmark_Creation/Competition-Bundle-Structure.md - - YAML Structure: Organizers/Benchmark_Creation/Yaml-Structure.md - - Competition Docker Image: Organizers/Benchmark_Creation/Competition-docker-image.md - - Dataset Competition Creation and participate instruction: Organizers/Benchmark_Creation/Dataset-competition-creation-and-participate-instruction.md - - Leaderboard Features: Organizers/Benchmark_Creation/Leaderboard-Functionality.md - - Competition Examples: Organizers/Benchmark_Creation/Benchmark-Examples.md - - Public Tasks and Tasks Sharing: Organizers/Benchmark_Creation/Public-Tasks-and-Tasks-Sharing.md - - Detailed Results and Visualization: Organizers/Benchmark_Creation/Detailed-Results-and-Visualizations.md - - Running a Benchmarks: - - Benchmark Management & List Page: Organizers/Running_a_benchmark/Competition-Management-&-List.md - - Benchmark Detail Page: Organizers/Running_a_benchmark/Competition-Detail-Page.md - - Ressource Management Submissions, Datasets/Programs, Tasks and Competition Bundles: Organizers/Running_a_benchmark/Resource-Management.md - - Update programs or data: Organizers/Running_a_benchmark/Update-programs-or-data.md - - Queue Management: Organizers/Running_a_benchmark/Queue-Management.md - - Compute Worker Management & Setup: Organizers/Running_a_benchmark/Compute-Worker-Management---Setup.md - - Compute Worker Management with Podman: Organizers/Running_a_benchmark/Compute-worker-installation-with-Podman.md - - Server Status: Organizers/Running_a_benchmark/Server-status-page.md - - Developers and Administrators: - - Codabench Basic Installation Guide: Developers_and_Administrators/Codabench-Installation.md - - How to Deploy a Server: Developers_and_Administrators/How-to-deploy-Codabench-on-your-server.md - - Administrative Procedures: Developers_and_Administrators/Administrator-procedures.md - - Codabench Docker Architecture: Developers_and_Administrators/Codabench-Architecture.md - - Submission Docker Container Layout: Developers_and_Administrators/Submission-Docker-Container-Layout.md - - Backups - Automating Creation and Restoring: Developers_and_Administrators/Creating-and-Restoring-from-Backup.md - - Submission Process Overview: Developers_and_Administrators/Submission-Process-Overview.md - - Robot Submissions: Developers_and_Administrators/Robot-submissions.md - - Adding Tests: Developers_and_Administrators/Adding-e2e-tests.md - - Running Tests: Developers_and_Administrators/Running-tests.md - - Automation: Developers_and_Administrators/Automating-with-Selenium.md - - Manual Validation: Developers_and_Administrators/Manual-validation.md - - Validation and deplyement of pull requests: Developers_and_Administrators/Validation-and-deployment-of-pull-requests.md - - Upgrading Codabench: - - Developers_and_Administrators/Upgrading_Codabench/index.md - - Upgrade RabbitMQ (version < 1.0.0): Developers_and_Administrators/Upgrading_Codabench/Upgrade-RabbitMQ.md - - Create new logos for each competitions (version < 1.4.1): Developers_and_Administrators/Upgrading_Codabench/Create-new-logos-for-each-competition.md - - Worker docker image manual update (version < 1.3.1): Developers_and_Administrators/Upgrading_Codabench/Worker-Docker-Image-manual-update.md - - Add line in .env file for default worker queue duration (version < 1.7.0): Developers_and_Administrators/Upgrading_Codabench/Add-line-into-.env-for-default-queue-worker-duration.md - - Uncomment a line in your .env file (version < 1.8.0): Developers_and_Administrators/Upgrading_Codabench/Uncomment-a-line-in-your-.env-file.md - - Rebuilding all docker images (version < 1.9.2): Developers_and_Administrators/Upgrading_Codabench/Rebuilding-all-docker-images.md - - Move the latest storage_inconsistency files from the logs folder to var/logs (version < 1.12.0): Developers_and_Administrators/Upgrading_Codabench/Move-the-last-storage_inconsistency-files-from--logs-folder-to--var-logs--folder.md - - Submissions and Participants count (version < 1.14.0): Developers_and_Administrators/Upgrading_Codabench/Submissions-and-Participants-Counts.md - - Homepage Counters (version < 1.15.0): Developers_and_Administrators/Upgrading_Codabench/Homepage-counters.md - - User Removal (version < 1.17.0): Developers_and_Administrators/Upgrading_Codabench/User-removal.md - - Database size fix (version < 1.18.0): Developers_and_Administrators/Upgrading_Codabench/Database-size-fixes.md - - Hide Output update (version < 1.19.0): Developers_and_Administrators/Upgrading_Codabench/Hide-output.md - - Django 3 Upgrades (version < 1.20.0): Developers_and_Administrators/Upgrading_Codabench/Django-3.md - - Minio Image Upgrade (version < 1.21.0): Developers_and_Administrators/Upgrading_Codabench/Minio-image.md - - Docker-Py (version < 1.22.0): Developers_and_Administrators/Upgrading_Codabench/Docker-py.md - - Django 4 Upgrades (version < 1.23.0): Developers_and_Administrators/Upgrading_Codabench/Django-4.md - - Newsletters Archive: - - 2024: Newsletters_Archive/CodaLab-in-2024.md - - 2025: Newsletters_Archive/CodaLab-in-2025.md - - How you can contribue: - - Contribute/index.md - - Contribute/contributing.md - - FAQ: Project_CodaBench_FAQ.md - - Contact Us: contact-us.md