From 600c3c54026c7efe5f757332a74cb8898046fce6 Mon Sep 17 00:00:00 2001 From: dconstancy Date: Wed, 17 Jun 2026 12:28:49 +0200 Subject: [PATCH 01/37] fix: allow organizers to hard-delete soft-deleted submissions Add a delete button visible to organizers on soft-deleted submissions, and guard against None data in delete/soft_delete methods. --- src/apps/competitions/models.py | 16 +++++++++------- .../competitions/detail/submission_manager.tag | 11 +++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/apps/competitions/models.py b/src/apps/competitions/models.py index 87b0b5513..6c994a1de 100644 --- a/src/apps/competitions/models.py +++ b/src/apps/competitions/models.py @@ -536,9 +536,10 @@ def soft_delete(self): detail.delete() # Remove record from DB # Clear the data field if no other submissions are using it - other_submissions_using_data = Submission.objects.filter(data=self.data).exclude(pk=self.pk).exists() - if not other_submissions_using_data: - self.data.delete() + if self.data: + other_submissions_using_data = Submission.objects.filter(data=self.data).exclude(pk=self.pk).exists() + if not other_submissions_using_data: + self.data.delete() # Clear the data field for this submission self.data = None @@ -554,11 +555,12 @@ def soft_delete(self): def delete(self, **kwargs): # Check if any other submissions are using the same data - other_submissions_using_data = Submission.objects.filter(data=self.data).exclude(pk=self.pk).exists() + if self.data: + other_submissions_using_data = Submission.objects.filter(data=self.data).exclude(pk=self.pk).exists() - if not other_submissions_using_data: - # If no other submissions are using the same data, delete it - self.data.delete() + if not other_submissions_using_data: + # If no other submissions are using the same data, delete it + self.data.delete() # Also clean up details on delete self.details.all().delete() diff --git a/src/static/riot/competitions/detail/submission_manager.tag b/src/static/riot/competitions/detail/submission_manager.tag index 441a6cf52..3f41a69eb 100644 --- a/src/static/riot/competitions/detail/submission_manager.tag +++ b/src/static/riot/competitions/detail/submission_manager.tag @@ -123,8 +123,15 @@ - - + + + + + + + + From a735bd940104996a04c25862bf4e2af2ebde2745 Mon Sep 17 00:00:00 2001 From: pyxelr Date: Tue, 23 Jun 2026 12:12:14 +0200 Subject: [PATCH 02/37] Remove duplicate CommonMiddleware from MIDDLEWARE django.middleware.common.CommonMiddleware was listed twice in the MIDDLEWARE tuple. Symptoms when the chain runs twice: * For users whose django_session.session_data row cannot be verified by signing.loads (e.g. after a SECRET_KEY rotation), the second pass of CommonMiddleware.process_response runs against responses for which the session/messages state ends up half-initialised, surfacing as a generic 500 page with no traceback on every 404 path, every APPEND_SLASH 301, and assets like /favicon.ico. With-slash URLs that match a real view return 200 because the corruption is silently swallowed (decode -> {}). * Content-Length is computed twice on every response. Removing the duplicate restores the standard middleware behaviour: a corrupted session decodes to {} once, the user is treated as anonymous, and 404/redirect responses are returned normally. --- src/settings/base.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/settings/base.py b/src/settings/base.py index 47c76ad6b..b4e57ae45 100644 --- a/src/settings/base.py +++ b/src/settings/base.py @@ -92,7 +92,6 @@ 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # 'corsheaders.middleware.CorsMiddleware', # BB - 'django.middleware.common.CommonMiddleware', 'middleware.BlockBannedUsersMiddleware' ) From ff898726a6a5e3947c83e553c4697d3e3c5d405f Mon Sep 17 00:00:00 2001 From: Wallun Date: Tue, 23 Jun 2026 15:43:34 +0200 Subject: [PATCH 03/37] refactor(login): sanitize failed login error message prevents leaking the fact a user exists when entered password is invalid Closes #2437 --- src/apps/profiles/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/apps/profiles/views.py b/src/apps/profiles/views.py index 81c8dc1de..161fd5ffe 100644 --- a/src/apps/profiles/views.py +++ b/src/apps/profiles/views.py @@ -290,7 +290,7 @@ def log_in(request): try: user = User.objects.get((Q(username=username) | Q(email=username)) & Q(is_deleted=False)) except User.DoesNotExist: - messages.error(request, "User does not exist!") + messages.error(request, "Invalid login/password") else: # Authenticate user with credentials user = authenticate(username=username, password=password) @@ -307,7 +307,7 @@ def log_in(request): else: context['activation_error'] = "Your account is not activated. Please check your email for the activation link" else: - messages.error(request, "Wrong Credentials!") + messages.error(request, "Invalid login/password") else: context['form'] = form From 65f7f09c59049546afc6eef9b968c1c44fa49839 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Wed, 24 Jun 2026 14:21:56 +0200 Subject: [PATCH 04/37] quick documentation fix --- documentation/zensical.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/zensical.toml b/documentation/zensical.toml index e5f38ff24..1e9c42188 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -39,6 +39,7 @@ nav = [ ]} ]}, {"Developers" = [ + {"Codabench Basic Installation Guide" = "Developers_and_Administrators/Codabench-Installation.md"}, {"Codabench Docker Architecture" = "Developers_and_Administrators/Codabench-Architecture.md"}, {"Submission Docker Container Layout" = "Developers_and_Administrators/Submission-Docker-Container-Layout.md"}, {"Submission Process Overview" = "Developers_and_Administrators/Submission-Process-Overview.md"}, @@ -49,7 +50,6 @@ nav = [ ]}, {"Self-Hosters" = [ - {"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"}, {"Backups - Automating Creation and Restoring" = "Developers_and_Administrators/Creating-and-Restoring-from-Backup.md"}, From 688b579169858ea15042725343cf4cfe8e9bc5d5 Mon Sep 17 00:00:00 2001 From: didayolo Date: Fri, 26 Jun 2026 13:43:19 +0200 Subject: [PATCH 05/37] Add redirection when not in maintenance --- Caddyfile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Caddyfile b/Caddyfile index 8774b7381..318d2bfd3 100644 --- a/Caddyfile +++ b/Caddyfile @@ -26,6 +26,15 @@ status 503 } } + # When maintenance ends, redirect stale /maintenance.html requests back to home + @staleMaintenancePage { + path /maintenance.html + not file { + root /srv + try_files maintenance.on + } + } + redir @staleMaintenancePage / 302 # Serves static files, should be the same as `STATIC_ROOT` setting: root * /var/www/django From e419b617ac16c4011570beea7096a52c841734d1 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 13:53:14 +0200 Subject: [PATCH 06/37] participant routing documentation OK --- .../Benchmark_Creation/Participant-Routing.md | 196 ++++++++++++++++++ .../_attachments/participant_routing1.png | Bin 0 -> 144271 bytes .../_attachments/participant_routing2.png | Bin 0 -> 20458 bytes .../_attachments/participant_routing3.png | Bin 0 -> 12034 bytes documentation/zensical.toml | 1 + 5 files changed, 197 insertions(+) create mode 100644 documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md create mode 100644 documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing1.png create mode 100644 documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing2.png create mode 100644 documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing3.png diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md new file mode 100644 index 000000000..f9df2f568 --- /dev/null +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -0,0 +1,196 @@ +## Overview + +The **Participant Routing** feature allows competition organizers to group participants and associate a compute queue with each group. + +When a participant submits a submission, Codabench automatically routes it to the compute queue(s) associated with the participant's groups. + +This feature enables organizers to: + +- Route different participants to different compute infrastructures (dedicated GPU servers, university clusters, private cloud, etc.). +- Compare the same participant's results across multiple infrastructures. +- Isolate specific participant groups (students, partners, internal teams, etc.) on dedicated compute resources. +- Combine participant routing with multi-task competitions. + +# Managing Participant Groups + +## Accessing the Group Management Interface + +1. Open the competition edit form. + +![image (1)](../_attachments/participant_routing1.png) + +2. Navigate to the **Participation** tab. + +![image (2)](../_attachments/participant_routing2.png) + +3. Scroll down to the **Groups** section. + +![image (3)](../_attachments/participant_routing3.png) + +--- + +## Creating a Group + +Click **New Participant Group**. + +Fill in the following fields: + +| Field | Description | +| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Group Name** | Display name shown in the leaderboard. Must be unique within the competition. | +| **Queue** _(optional)_ | Compute queue where submissions from this group will be routed. Use the search field to filter queues. Leave empty to use the competition's default queue. | +| **Members** | Approved competition participants to include in the group. Search by username or email. | + +Click **Create**. + +--- + +## Deleting a Group + + Deleting a participant group is **permanent**. + +Existing submissions are **not** modified after a group is deleted. + +--- + +# Queue Visibility Rules + +Organizers can only assign queues they are allowed to use. + +| Queue visibility | Condition | +| ------------------------------ | ---------------------------------------------- | +| ✅ Own queues | Organizer is the queue owner | +| ✅ Shared queues | Organizer is listed among the queue organizers | +| ✅ Public queues | `is_public = True` | +| ❌ Other users' private queues | Organizer has no relationship with the queue | + +--- + +# Submission Routing Rules + +## Queue Priority + +Routing follows the following priority: + +``` +Group Queue + ↓ +Competition Queue + ↓ +Default Celery Queue +``` + +--- + +## Routing Trigger + +Participant routing is enabled **only if the participant belongs to at least one group**. + +A group **without a queue** means: + +> Use the competition's default queue. + +## Queue Deduplication + +If multiple groups reference the **same compute queue**, only **one child submission** is created. +Duplicate submissions are never generated for the same queue. + +# Leaderboard Behavior + +When participant groups affect routing, the leaderboard adapts automatically. + +## Group Column + +A new **Group** column appears whenever at least one routed group is involved. +It displays the participant group associated with each leaderboard entry. +If no routed group is involved, the leaderboard behaves exactly as before and the column is hidden. + +--- + +## Multi-task Competitions + +For a given root submission: + +- Child submissions executed on the **same queue** are merged into a single leaderboard row. +- Child submissions executed on **different queues** appear on separate rows. + +--- + +## Example + +One participant belongs to two groups routed to different queues. +Two competition tasks are defined. + +``` +Task: Task 1 Task 2 +--------------------------------------------------------- +# Participant ID Group Score Accuracy +1 alice 201 GPU 0.92 0.81 +2 alice 203 CPU 0.76 0.70 +``` + +--- + +# Routing Scenarios + +| Participant configuration | Group queues | Competition queue | Child submissions created | Leaderboard rows | Group column | +| ------------------------------------------------- | ------------ | ----------------- | --------------------------------- | ---------------- | ------------ | +| No group, single-task competition | — | Q0 | 1 root submission executed on Q0 | 1 | ❌ | +| No group, multi-task competition | — | Q0 | N child submissions on Q0 | 1 | ❌ | +| One group without queue, single-task | Default | Q0 | 1 root submission on Q0 | 1 | ❌ | +| One group without queue, multi-task | Default | Q0 | N child submissions on Q0 | 1 | ❌ | +| One group with queue, single-task | Q1 | Q0 | 1 child submission on Q1 | 1 | ✅ | +| One group with queue, multi-task | Q1 | Q0 | N child submissions on Q1 | 1 | ✅ | +| One routed group + one default group, single-task | Q1 + Default | Q0 | 2 child submissions (Q1 + Q0) | 2 | ✅ | +| One routed group + one default group, multi-task | Q1 + Default | Q0 | 2 × N child submissions | 2 | ✅ | +| Two groups with different queues, single-task | Q1 + Q2 | Q0 | 2 child submissions | 2 | ✅ | +| Two groups with different queues, multi-task | Q1 + Q2 | Q0 | 2 × N child submissions | 2 | ✅ | +| Two groups using the same queue | Q1 + Q1 | Q0 | 1 child submission (deduplicated) | 1 | ✅ | +| K groups with distinct queues | Q1...QK | Q0 | K × N child submissions | K | ✅ | + +--- + +# Routing Flow + +``` +Participant submits + │ + ▼ +Retrieve participant groups + │ + ▼ +At least one group? + │ + ┌────┴────┐ + │ │ + No Yes + │ │ + ▼ ▼ +Competition Resolve queue for each group +Queue │ + │ + ▼ + Create one child submission per queue + │ + ▼ + Execute on compute workers +``` + +--- + +# Important Notes + + Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. + If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. + +--- + + Re-running a submission recomputes participant routing using the participant's **current group memberships**. + +If group assignments have changed since the original submission, the rerun may produce different child submissions. + +--- + + Group names are unique **within a competition**. + +Different competitions may use identical group names without conflict. diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing1.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing1.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd458921a326d7076f7eb31bca180ce59089f98 GIT binary patch literal 144271 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⁢E30~xybie3cwAR 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing2.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing2.png new file mode 100644 index 0000000000000000000000000000000000000000..58ee6ca77aeceec84e8744b3ee0f10120f70b1f0 GIT binary patch literal 20458 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

_xJZ~ z6*{-Yok;*oPt&T!HS(RDfNIcVDESUOYOyY;Hw)pZ&G3G0laEyVEsC}Q51+KQ-0v6! z+r@cf>gyVj3_`;1TU)@$1o3z04}({iO33S44eV(;z0BdGZw{MM7l)ofpm9`yYwn9o zx|6l}-i-Bv|Hfn+Fw{YEwck;iU8|nOnq~)L$Zxwm$A>QWMIzT~%-n%UseDbP304ic z-8uD=BP_I4_|ZFjwe=5I$ctWBMqUI5h;aCK)|wQ6ufO3KRiJQ*O1*!?*(FQ6#&+koq| zvlf#qp8;t_Ud)8T^w%#tKy+1gM^p98azSSVEpJ*Mv2PsczTIDWL;*VoXg8pXAcpUR z3K*coui{?19^ypMd93>|+}@;weNPS>#<>0R_N@6_7D!2f%kQBd$w6GyvIWjttpeRB zFF*gCB>JhNBgjZb%vw}5G-9RGq(dyMQ>?WO4Y|`hbB(74prvkf!M1f^XUbZ;$qO-G zsOn0mxT4qqGz(-N5&@=Mq+)UROb~1rDoxc$u`+@tO0Qb+!Tw=U{`6xf^dyWIYySAU zdq;m7-HU;GJ|rat%X%1TQ8Lt}lQ_x0h<9T;*Tf4vC&fQ0mlnwAmg+3&Qg9s#sZ z2s@~eOjs_f(e#T<^C#sO`Bf8&DElk&;^KX4N1&zD^YYLLq`Pc|WFz_k^i%YKuR^LW z96%!l!U*WeVr6EQlXiTiTAGlOVs7PfyM|j)T^$FQAx~ww2y5ENYyb{Ad@h<~oI

dD+@U6|R;8(*VBg~wfeHA**8ueCh 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 literal 0 HcmV?d00001 diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing3.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing3.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a6a8a146370a8b79f3d94977db2ea73447ebe1 GIT binary patch literal 12034 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 Date: Tue, 30 Jun 2026 14:54:35 +0200 Subject: [PATCH 07/37] link images --- .../Organizers/Benchmark_Creation/Participant-Routing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index f9df2f568..0ace001ea 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -17,15 +17,15 @@ This feature enables organizers to: 1. Open the competition edit form. -![image (1)](../_attachments/participant_routing1.png) +![image (1)](../Benchmark_Creation/_attachments/participant_routing1.png) 2. Navigate to the **Participation** tab. -![image (2)](../_attachments/participant_routing2.png) +![image (2)](../Benchmark_Creation/_attachments/participant_routing2.png) 3. Scroll down to the **Groups** section. -![image (3)](../_attachments/participant_routing3.png) +![image (3)](../Benchmark_Creation/_attachments/participant_routing3.png) --- From eeff3adbf178b1e4176862dc1ed23599f7abdefe Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 14:55:53 +0200 Subject: [PATCH 08/37] link images fix --- .../Organizers/Benchmark_Creation/Participant-Routing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 0ace001ea..8b0106989 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -17,15 +17,15 @@ This feature enables organizers to: 1. Open the competition edit form. -![image (1)](../Benchmark_Creation/_attachments/participant_routing1.png) +![image (1)](_attachments/participant_routing1.png) 2. Navigate to the **Participation** tab. -![image (2)](../Benchmark_Creation/_attachments/participant_routing2.png) +![image (2)](_attachments/participant_routing2.png) 3. Scroll down to the **Groups** section. -![image (3)](../Benchmark_Creation/_attachments/participant_routing3.png) +![image (3)](_attachments/participant_routing3.png) --- From 52b958eae9117245b81ff24a66920206cd1e195b Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 15:31:50 +0200 Subject: [PATCH 09/37] UX improvements --- .../Benchmark_Creation/Participant-Routing.md | 86 ++++++++++--------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 8b0106989..f49229aab 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -47,6 +47,7 @@ Click **Create**. ## Deleting a Group +!!! Warning Deleting a participant group is **permanent**. Existing submissions are **not** modified after a group is deleted. @@ -55,14 +56,15 @@ Existing submissions are **not** modified after a group is deleted. # Queue Visibility Rules -Organizers can only assign queues they are allowed to use. +!!! Info + Organizers can only assign queues they are allowed to use. -| Queue visibility | Condition | -| ------------------------------ | ---------------------------------------------- | -| ✅ Own queues | Organizer is the queue owner | -| ✅ Shared queues | Organizer is listed among the queue organizers | -| ✅ Public queues | `is_public = True` | -| ❌ Other users' private queues | Organizer has no relationship with the queue | + | Queue visibility | Condition | + | ------------------------------ | ---------------------------------------------- | + | ✅ Own queues | Organizer is the queue owner | + | ✅ Shared queues | Organizer is listed among the queue organizers | + | ✅ Public queues | `is_public = True` | + | ❌ Other users' private queues | Organizer has no relationship with the queue | --- @@ -71,14 +73,14 @@ Organizers can only assign queues they are allowed to use. ## Queue Priority Routing follows the following priority: - -``` -Group Queue - ↓ -Competition Queue - ↓ -Default Celery Queue -``` +!!! Tip + ``` + Group Queue + ↓ + Competition Queue + ↓ + Default Celery Queue + ``` --- @@ -122,9 +124,9 @@ One participant belongs to two groups routed to different queues. Two competition tasks are defined. ``` -Task: Task 1 Task 2 +Task: Task 1 Task 2 --------------------------------------------------------- -# Participant ID Group Score Accuracy +# Participant ID Group Score Score 1 alice 201 GPU 0.92 0.81 2 alice 203 CPU 0.76 0.70 ``` @@ -152,45 +154,49 @@ Task: Task 1 Task 2 # Routing Flow -``` -Participant submits - │ - ▼ -Retrieve participant groups - │ - ▼ -At least one group? - │ - ┌────┴────┐ - │ │ - No Yes - │ │ - ▼ ▼ -Competition Resolve queue for each group -Queue │ - │ - ▼ - Create one child submission per queue - │ - ▼ - Execute on compute workers -``` +!!! Tip + ``` + Participant submits + │ + ▼ + Retrieve participant groups + │ + ▼ + At least one group? + │ + ┌───────┴───────────┐ + │ │ + No Yes + │ │ + ▼ ▼ + Competition Resolve queue for each group + Queue │ + │ + ▼ + Create one child submission per queue + │ + ▼ + Execute on compute workers + ``` --- # Important Notes +!!! Notes Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. --- +!!! Notes Re-running a submission recomputes participant routing using the participant's **current group memberships**. If group assignments have changed since the original submission, the rerun may produce different child submissions. --- +!!! Info Group names are unique **within a competition**. Different competitions may use identical group names without conflict. From d57259eea73e280364f2441d89bad691439a7515 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 15:40:32 +0200 Subject: [PATCH 10/37] doc improvement + removing useless things --- .../Benchmark_Creation/Participant-Routing.md | 50 ++----------------- 1 file changed, 4 insertions(+), 46 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index f49229aab..c6d651724 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -54,27 +54,13 @@ Existing submissions are **not** modified after a group is deleted. --- -# Queue Visibility Rules - -!!! Info - Organizers can only assign queues they are allowed to use. - - | Queue visibility | Condition | - | ------------------------------ | ---------------------------------------------- | - | ✅ Own queues | Organizer is the queue owner | - | ✅ Shared queues | Organizer is listed among the queue organizers | - | ✅ Public queues | `is_public = True` | - | ❌ Other users' private queues | Organizer has no relationship with the queue | - ---- - # Submission Routing Rules ## Queue Priority Routing follows the following priority: !!! Tip - ``` + ```title="Queue priority" Group Queue ↓ Competition Queue @@ -90,7 +76,8 @@ Participant routing is enabled **only if the participant belongs to at least one A group **without a queue** means: -> Use the competition's default queue. +!!! Tip + Use the competition's default queue. ## Queue Deduplication @@ -123,7 +110,7 @@ For a given root submission: One participant belongs to two groups routed to different queues. Two competition tasks are defined. -``` +```title="Leaderboard" Task: Task 1 Task 2 --------------------------------------------------------- # Participant ID Group Score Score @@ -152,35 +139,6 @@ Task: Task 1 Task 2 --- -# Routing Flow - -!!! Tip - ``` - Participant submits - │ - ▼ - Retrieve participant groups - │ - ▼ - At least one group? - │ - ┌───────┴───────────┐ - │ │ - No Yes - │ │ - ▼ ▼ - Competition Resolve queue for each group - Queue │ - │ - ▼ - Create one child submission per queue - │ - ▼ - Execute on compute workers - ``` - ---- - # Important Notes !!! Notes From eaa5ccc1ac9d5cfdb2d6e7b4e2c02868dd94af5e Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 15:58:08 +0200 Subject: [PATCH 11/37] modify and add images --- .../docs/Organizers/Benchmark_Creation/Participant-Routing.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index c6d651724..69b7a2900 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -31,10 +31,12 @@ This feature enables organizers to: ## Creating a Group -Click **New Participant Group**. +Click **New Routing Group**. Fill in the following fields: +![image (4)](_attachments/participant_routing4.png) + | Field | Description | | ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Group Name** | Display name shown in the leaderboard. Must be unique within the competition. | From d518c8d9788276b8cc37fe1db1be3da495f23e63 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 15:58:48 +0200 Subject: [PATCH 12/37] modify and add imagesO --- .../_attachments/participant_routing4.png | Bin 0 -> 25146 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing4.png diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing4.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing4.png new file mode 100644 index 0000000000000000000000000000000000000000..4da5d5816727885f6c3ee1b2a4029f020b9658de GIT binary patch literal 25146 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 literal 0 HcmV?d00001 From 67b27253fe98693325e2646c811fa8e084fc1f81 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Tue, 30 Jun 2026 16:47:45 +0200 Subject: [PATCH 13/37] docs improvements --- .../Organizers/Benchmark_Creation/Participant-Routing.md | 8 ++------ documentation/zensical.toml | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 69b7a2900..cdfeddd07 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -63,11 +63,7 @@ Existing submissions are **not** modified after a group is deleted. Routing follows the following priority: !!! Tip ```title="Queue priority" - Group Queue - ↓ - Competition Queue - ↓ - Default Celery Queue + Group Queue > Competition Queue > Default Queue ``` --- @@ -143,7 +139,7 @@ Task: Task 1 Task 2 # Important Notes -!!! Notes +!!! Danger Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. diff --git a/documentation/zensical.toml b/documentation/zensical.toml index e6a5cf45c..e69af2918 100644 --- a/documentation/zensical.toml +++ b/documentation/zensical.toml @@ -17,7 +17,7 @@ nav = [ {"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"}, - {"Participants Routing" = "Organizers/Benchmark_Creation/Participant-Routing.md"}, + {"Participant Routing" = "Organizers/Benchmark_Creation/Participant-Routing.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"}, From f634b251291d67f2873ee3a5c7639237e3b487d0 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Wed, 1 Jul 2026 14:35:43 +0200 Subject: [PATCH 14/37] images modification & doc clean up --- .../Benchmark_Creation/Participant-Routing.md | 35 +++++++++--------- .../_attachments/participant_routing2.png | Bin 20458 -> 6490 bytes .../_attachments/participant_routing3.png | Bin 12034 -> 8627 bytes 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index cdfeddd07..5535eed1a 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -23,7 +23,7 @@ This feature enables organizers to: ![image (2)](_attachments/participant_routing2.png) -3. Scroll down to the **Groups** section. +3. Scroll down to the **Participant routing** section. ![image (3)](_attachments/participant_routing3.png) @@ -72,10 +72,9 @@ Routing follows the following priority: Participant routing is enabled **only if the participant belongs to at least one group**. -A group **without a queue** means: - !!! Tip - Use the competition's default queue. + A group **without a queue** means: + Use the competition's **default** queue. ## Queue Deduplication @@ -120,20 +119,20 @@ Task: Task 1 Task 2 # Routing Scenarios -| Participant configuration | Group queues | Competition queue | Child submissions created | Leaderboard rows | Group column | -| ------------------------------------------------- | ------------ | ----------------- | --------------------------------- | ---------------- | ------------ | -| No group, single-task competition | — | Q0 | 1 root submission executed on Q0 | 1 | ❌ | -| No group, multi-task competition | — | Q0 | N child submissions on Q0 | 1 | ❌ | -| One group without queue, single-task | Default | Q0 | 1 root submission on Q0 | 1 | ❌ | -| One group without queue, multi-task | Default | Q0 | N child submissions on Q0 | 1 | ❌ | -| One group with queue, single-task | Q1 | Q0 | 1 child submission on Q1 | 1 | ✅ | -| One group with queue, multi-task | Q1 | Q0 | N child submissions on Q1 | 1 | ✅ | -| One routed group + one default group, single-task | Q1 + Default | Q0 | 2 child submissions (Q1 + Q0) | 2 | ✅ | -| One routed group + one default group, multi-task | Q1 + Default | Q0 | 2 × N child submissions | 2 | ✅ | -| Two groups with different queues, single-task | Q1 + Q2 | Q0 | 2 child submissions | 2 | ✅ | -| Two groups with different queues, multi-task | Q1 + Q2 | Q0 | 2 × N child submissions | 2 | ✅ | -| Two groups using the same queue | Q1 + Q1 | Q0 | 1 child submission (deduplicated) | 1 | ✅ | -| K groups with distinct queues | Q1...QK | Q0 | K × N child submissions | K | ✅ | +| Participant configuration | Group queues | Child submissions created | Leaderboard rows | Group column | +| ------------------------------------------------- | ------------ | ----------------- | --------------------------------- | ------------ | +| No group, single-task competition | — | 1 root submission executed on Q0 | 1 | ❌ | +| No group, multi-task competition | — | N child submissions on Q0 | 1 | ❌ | +| One group without queue, single-task | Default | 1 root submission on Q0 | 1 | ❌ | +| One group without queue, multi-task | Default | N child submissions on Q0 | 1 | ❌ | +| One group with queue, single-task | Q1 | 1 child submission on Q1 | 1 | ✅ | +| One group with queue, multi-task | Q1 | N child submissions on Q1 | 1 | ✅ | +| One routed group + one default group, single-task | Q1 + Default | 2 child submissions (Q1 + Q0) | 2 | ✅ | +| One routed group + one default group, multi-task | Q1 + Default | 2 × N child submissions | 2 | ✅ | +| Two groups with different queues, single-task | Q1 + Q2 | 2 child submissions | 2 | ✅ | +| Two groups with different queues, multi-task | Q1 + Q2 | 2 × N child submissions | 2 | ✅ | +| Two groups using the same queue | Q1 + Q1 | 1 child submission (deduplicated) | 1 | ✅ | +| K groups with distinct queues | Q1...QK | K × N child submissions | K | ✅ | --- diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing2.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing2.png index 58ee6ca77aeceec84e8744b3ee0f10120f70b1f0..8acb197877940d7d0f22eff1f881544ef70a0bbf 100644 GIT binary patch literal 6490 zcmb7}WmFVQ+s8p9L;(RoQluLsrB}M7ySqz~PU#k5VJQJ=mhN;3X_k;&x^pRkT^jb~ zzMuE=d*0{&Va|1C&h(jUuK7)jx~e=LE(IJFG2LP}e=H!U zRg{s`_W5zNj2$ovyT$&?97cChY+G6AsO8_66Jx?>e`Fwf5&u)Jd7-}Pr|ywXR%RtB zV{~O`vc*=g1oQE|{L<3W*2>lP@a{4!u&9-Nb?b-!*!hpXYlBbr=`RWYkw%3O?!N|M z9|e$&?q9LL1OLaUd-8u}2|Z6rrFyv2qB>qBrpx;D>AM~Y+dpk3K|ZZ@YRS$jE!9N` zU0**-s(gwW^`C;Zk0kRS)3dU|i<#UaS@Ce1p zLK>WZn_8D7k@;7;=9;qq8rGOhI{#Hx&24ZA+uN-wv7iTrh22&mMj(}9Jx|A{DSEcKyJR~oG>lL#t}(?37Ot8~+AmMc#6U*fm-&G?^RQyoi`(4bWP&X1+>Z0dh#9SD)l`lI!n!^z1%q3t%MNP#Z;e&*y zhKGkMOcqWs`;F&_1FeUW6^&zt8viWL&3+d~Nf4wom0%Cmzm_Bw@6?S{D*NU^RL9L> zN5?x*6{Y_0a8lMMiGPPg#Lf>8dITM2q7sbed2^L6T}`$xfy|6mYrC@*rYaq%W25`~ z9hIy?%LsQV%g<7nurRlw&9ogmqMgxf`V8Jez7==daVAeESh7I5UR1;B`bkonovzf&SWhtxNNY6iK6CDY z`a%Sa8zk?Ad^f^_4!5CcQYUi8Dd%>anL}5ftr)9F*!Gy@6W=7w!RHIwKO!>TqLisc zeaJT%{5?1O@mTkCKVTtF>?Y2wj9im8hxgX}L>k@red`$wp2Dy@Med{{-jcwHmm1#W*B+d78h4ClL|#G zrc+hK$GGyQV#_`y_q#3Dd5B%^i;D};Ou25%c=)N5SO4$%&(hSj{Ni@^(RLf9KUmlG z8{H#X+5$O5o7{k1Q3Q-tz5G=inhm8XY)FTO@x{*IT*T3oQ3VN*Y(D1~EG|%sNr|=| zH!*G2fUi`!Oc zS8Hgo*cw`c*^L0%?Bv8H2@?mgq?}AH3k|73_t=9K^IwpGP!MP8oJhdcAEV3BtWI^+ zY++`Dy7X1Eu*k!WZFXLt=;pal0hm-R@nREJZXm-9SVt-WtJ>iU_9UCBD%j)VAn9- z?s1wQ9$^45e);b_n-z6pWrl1rvzoV5K+>kMNGQFC$DOg>12=uBIpmQ6(D04i#VAB35pQ0(jyn_#o?mlkbQ z32%n+pc3`L={nARyMD1*$AY;IIO~Y^hLG#a}xq7fHO~yFo;~&C>Q@hmL zr<(&er@^SepJ`a@;(tvOD1G6VSjyFyo&?IQH32xvgnva%I)j$49(=e!^nxyv3hvgo z>cgp=obBExM1EPEixdq!Sg5=6#40mJGKDVOZ?U`u1B zNZ8LFqhCHr+U16_W!hyd%k5rCM$NAKF!8_}ZSM1~d!Nb^85%B{I4hinsDNo%M_ZQa z1=fS)yl7<48m!XD(;z?Rr!yWDBUj8fKP}aQRd^vO1mor)=sA~38-wZ5g2HwziN`9@ zXOjLrY3#nKg1jJV3DiI$HJ`*q&*kdA#3)3`W`DW7WT}(pJ_PSs1SfPJ&BZ-U)okzL zHFTQ3A7^I)yO%OD=tZt)g=zGl@m;7*QM8uV@lqbNRpvCmUyzQUU%L|@`Aiu)dwmW0 zTq)k>Jq3%^#~hcY=AUbJt2Tv47gb!DTpZ531iT0&hf~9i*3~2gU7P1Rj`YA9qb9>C zTt&Ca(lqwfUf@n}L0ExyC7g@XupuRtUH4bgPZ>Q|7Api)8WOd40Wp~B-#9tpzVA3J zU;HZ4=m?*idTVJM1H-3;a{`&KDK>|4Z6E9dj?*U!3WGbjktq2YwUKlQ727fxm3qBS z>HD52yqR&-FKK^++JIKX{<89=e7)Vhb<;f$2|WfJ4L(>>q_pQ`R%71r8I85fk9>7w z^O6qCmeKY-est9+S%h(7l``~)*iaqx?!d|VdQ`=-vNwiUdCa)g6NFzn2dg##x-5DR zgUp)2)CL<-aL@qY~C(d_#UT zE{iSvK?jl769qkn+*%*DJWHmvl2cS55*C5Jf=O!9-=nx4oHARR;)h{cu2`!;{F11_ z`(2dM$2E-L^Bt9YbSk*G{;FQ3q35HgY|5;?F`(eLXE6&tuXO#}u{Wpj1`~_Itlec% z@LEGaJtu)8E-EUD!>rX%vqZHLF3&aJ>Xi5~hZk9y8#VS*5+dThgK#)KMe5KiY%(Ya zyra#dWvV{OQ);@qn;q2CDp5qCV_5e@BKvIsQ3TW=EBQpF#2kqAQuwnr4ES<=RM1Gi zlZNL+fu#6-8;{ihG&-pOc?c?z$5>9Ms4%HFr10|@)|_FXUzhpxaCiMhad4xq^7=dx zU_GnGSLAghBH|;*ym4%*azP_hYNs`!L5q&ANCdsba-)$pD>fAH~4Ew$Fyc`f_RH~7Z=xViT>sI_eEK-DSzs44VW zzQLxef_hxmqdSN)A`_zxKg|}ZZshbbACETtYbC{*0M9` zuuOf$r71I(D_XMH8WM)JzuNg_m&^U6DvxV#e0yj*-%- zcZ+|+r(ddWA>OjHz7M{AvIOw?)5T(!+~l^(M8c*!?E=`)K5V|(yt{7Bd94GOxP%6Y z2$ub{9sL}*$$Yi9TTm5zKKg>yG(Vif^sHWq48XVekRF@FT^h3HY9gW>g-^ZxXT9JI z*}OV5*%yaI%ah#li(vqC^bL3g7mB=6O)_IE=41pD6{S2&vyD}I;MVyLlqSWjn0jv{ zDJ#2qz1AHFdE6Z~y5I z+t`6K`JV5jhBKvVDX{{Jqa{=-QMo{dqWZY_u~jYCh|+NQhefm9hrV6GP{TDRC!tVn_3y;*;?Yd<++8@Ft;*HaeP_ghRimy@NL08yY5Q-u z7{a&oA(PHV>E1I!DHO8MoOU>0|9HVyVDP<|dz;Xmmxca*duhI2vq7JS)ub){`_Yy{ zra^282MZrA{)`I=h#96GCOPmXJ2fddm~*_xw0G}*WQHK@0Rs#Eb)c_Lc37{}{6(^Q zM+>=jm9YWAqo+kDVxcky(#zv3W(j6@1kaSEYIX!*g0;bQr{b|B>|D3nUCGLL(_&g- zT=MudNpJy2{RY%Vpv{51piOn=knhbQ7+-8+w@@ut(y+l9Oi(9vo$f^Q?kuqorm~DJ z;4~x1BnRr{-ct@>R+|Oz*%Bl)n(^{OX531RrIG{GFcXFG)c5gB3( z>cmW{)2o{drUU}^G4pKFqRv%IFTS@>U`Yrq0*UYQj<0a(adp`AQtE7= zL(v)q#M3KeBT|ikP0r`fZ-=#;yZvtNyaofsrAb~=ormLQmM6U$;bqjYiNt!0+Y$W( zLGv||vtWk3-)66;2lcORu_13X!d|f^4_uujYKVT2CZ#0TDM8$VS3NBgZ7AYib52jK zD7YUlb3X4W6ILIM6}yVIWjv>H2&ZEJ#=D<4?fH)b6bv1>fDh>~|mK z2Tu(KJ9?2q(=~$s8tyGMmNz)hD-8;M!_Fbjh4R_h=Tz~w{}D0)d;^Fu_n7nBeYX=6N2t|8nO#nHciaoRY&M=tfJY$cYuUIXuKS2x;efrYPEt_Gv^^1HW znU%xO?w+WSHkWP|#Grv)u z2jTZHiKSoUKY=#D6DNzi$CnG@Higf2xb$}LHJik6I?oj4Gc^3G(65x}BH-V=joZ*5 zUCBG&Oc#7goKwc!zuWqq_15fqP+kg^XV_)J*ryM{(-A2 zh(g&~7W;Fg{Wp0zZv&zlNlZYKI348_2*>!KjCIj^$QTi*Z)oGNZUM50#SJem%fPih znIjJIECqeA6ZC#~0zqNm|aiAnxDemRqhl_FtOgvE-Dt3i13KnM9|YhapAx4GYWjml15NE_hWUV{Nls9*_AZ zK5=3wBJvwN6D6>W6M{Op55%b%6fR-NFKb6z>avT2>Rc+EPHxL|| z@gC!lzQ;!#^-ppPq$9Kk>!mvm9Nk@?`w8pTZuB8HA3br?p5eRXu>GI_7Oi5XBFb^Z{*hhHV9PCem}nzc3A7 z_A==>PxskRgkclJqw`nsD9=`Gn2wro4+zsZsCan5Hul%SPZ~e+4#DKBSNlcWsN7-; z@t~sr?z%>IG~y9iXj@Jzq%n)UP64AYBsr9wciEaO)nv^5b*pT2oH68vc2jtDX}(P1 zS$Ih$^0oJkrg{^4T`;GBpTTE0%SX9CSpp0n z(cO+e>t3DvBpn)Bw5TnG602!@N-vB+~Q3p!slGX%xp zhFTiaRM|ZIYCYRKr3V+>#4DwiN5@e(%dN%BP}fdPvjU5hbiAqg)(vYJsBfcR))-Az zx3#w)d|g2yhhs6YFAh4?4qt+d@?Ws)fp2E5kUGxhLN&jQTOrCjH_teZdh09>M+H+7 zSa%j^qN(T$j;>Wwd35#HyyXrdpB@6PD|Dv$tWS9)nhpwwht@}-@-<)1CVb;^X-H0J z!wN@A7?F4-G3GHOa&a&G&CRFxc>GeZnX73_yZcwIxw!fVYOy>HW;rMI6G#gPolgyv z#SN#5J(VG8xK0L~27-hYZ1fbwKf*(SYU=YG!WUty?@n5P774qgPQR_UHu$F)sM zGczh>dfsWET!A#UGQy9^3=R#|J!j=xWl3b>?%|&^0dxU#detV(*Uwwv6R)Ou_;rOx zKG$;gMPvj%cYRm;OOPpQQHQurMvwciJUOrIyqb|O3X8V~2}^{Y7fV^G>AhThZ)p5KhNRR z=g*2&81y6GHv|&I#XY{p_XH9px3Jj(1hhh?pfBDhM&kWW6CBNEwi_>7YfxfjHLHr3 z7{WVhZoNSFyWB6|09I&9Bdt^@-cN?OtOTF{e6LLIh)6gH`y_FM65M(s@pywDq&ATw zW-SWLcE>vGaq?j|$p#Qq;gA;M;4y3|zuZ|jtnq&C?@4#E8B-xQYUqdJv1FQ-?$sbW zY>*cc!x|zU=I1?3lp{)z;cIjE*Be0+D{R$LKj9(5ua8yIK1!6_A|qdX7nFVteDktb zLUZI>qxLhBi>LC868!`C<4h+wIjqPuhFg zPCYaWGV%c2X=#K+YDQ%Kr`YozZr%;@({$j{l%~RfZ4sG6YW)86_uk*AgnWc7sB!Z` zA%%)PqS-&!P@{W6+8bI%VT@pj%>n2}kuq}fUHoJo{qKt15rg`O704qj=KcGd;aYwM zxThMZytT$*I!~bp9BB+ceE!IUM`{lWV>hB&K9&*DG3lIggJa!lIINE{1^oDURNYJyyh|tYeNuy&%5w`spo@2eT&8N3Q;Ab!#}4Z+JjR>wj^3guPwa zh>f+(_c_LlhfG>&tX7}>x|e;inP6V?cIn3&7vX&W9gvT{Kmh2JgSUu)k|WJCe#x6-x}IPt8lt6&Lyd^}sssMB{)F4bm=q4wP^bS1^8s;WLiuvU;bOHhHpNj|GhVDk# z_>sJveHBV>VhVwWhcLJZkv`+*R#2i*Rvln4FQYeU!Al^Q;}Uy4pZA zLB=LCasU$e$@@P8xMTtY2=bJmqOvcR{vaLEy)%XG?LD9`E*2sKP3TUfXTj$fOqM}} z*w;`mLaWoYWq(fP{@zv$t5?Ov{robx!zMIUGo@S$iieM$H!nIa`|sU+cMSvgxk!eN zh>Ndm_uH>~h*A3N^6{>!f+5UtOW%;7jQX1cmKob8zfe210haG3SS^>C-4Txz6H6I) zOQE9~@yWOd2}+%R=n>g8(f)()j6U6xWpUVhkf0@{e*Lv~XU*0EL z3DF}ksO#&8igNNygPSW|*bm=dJCwjW+rTG&fZI*ee#>U@Em<(j1@Yg&>Nib~b==_Q_R#dqgCj5Wk|1xlBTRW{Vn6s(>>lT#lyM1`?m zZESvUK{5RJpBS|pL;vSO$ucZ^GegM89Y4Qx4-cP5a72m~m3^6SRqIN$eP3KDqUvRT zfJMZY`ocAJ)8RGs`orzL+ssi!YYfPNPqYoa!oFhd1GRRn8 z{-2Hd*ZiL_VGeuIZS*EHneqgke*Pkq)^ z$IDd8i=3rJKb{{nH(&pa5W6u9ZeB3FTm?TNSiFxgw>_@!-jH0(Ss12HlRRC)AL6eG z`>W{HbU*c%Ejf%O4M}aqD7ycCJMllOs@AhUkcX&y6lFPq)MZMI=YQ?~-2*G&nWDGo zfA*g3C(O|Q&M*NadVVSkeFY4EA5? z?f?IW7qxA}zvN8(j1h#PXhO=62y<{OH>Jy4NURtCyynd* z8f9DFtQi*GFb$bl{wk|Y28ovsy2EqVVQCT~2m|9m^Ve85^=XqcsU_1zp4B8pF0@Yk z)AbmH#4|5M#6TtaR35ls$e;3{tcW4RfH0E7BG<4jPDFBa4p|zWU~I`afm05o01_`< zk#Fln97LIa3NenD32@0s`}7f4Q4sAcrrg<#cxi|8FE>SLiDJlxSmGerD&c-3OOuV` z(rL|sogKI*vbRccno5fL{eO;!Gt^Z~FfR>!(Su@;C`plDh`D?2zRa9^j_7W_0+*kc zH=#LF@`Wb7>1^zKLKkDaK414lBZpiwFJiZ_v`5s7JoB=j8Z`4ZdZ+Uo3g2x-FqkVs zDBaBs1>1_UzNf2C?m-|lBji?6TCx=ar>r*lBrm(R#9#0p8q~zPFQ?zYs2OK+NjK|1 zOHL3g8G+JqV&x{<+)<*ucwSq}#>y=40fOFkp@o|_*z68lC;4#_jwB@|C6H9lXXbG)obHrm#Kcs;F)PvG)ZKIQ z(*vx_-<^AXH@D>a8C9Wd5*Vojq*gh34-cMeIJk{Jf0jEbzgMZ#h4ihj&Q)QDhlf*9 zQFU8!to*&Mri+(=a5-EtX_hB;<&aj_)Ck7cdsE>>vGDQ9=;<+%ljmb%V}4aC6`Z=n z6ktgIG`^0%(e1^XnS7L}Tbih1yvLG+xxc-=t#4=N2N#0?K}=8z)3qgGWsScJc+SGY zBEqBw(}8h1SvCG+qH#)E*ZjrjlKMCC>(WRr+N~Z5(mFaaGLf)f6{yB{obn0^V&mh5 zkE@|n2~vDSs7Xyt68(rXyqPICJ|dix6%9d#EV7 zVgXr&mQM!fVPDqEHKz zbH9FjlVD-KB$@~n%6@~x%R4YQ+G|piJw*3>%4IbY$6VKL*2XM-}J3w6z-1O(H@_n+;8u%Fqe`TPf>jz+b7I^&RMzC^3Yq< zg@BMuWYim7_Kwl7(@a`S5|HF0GPSdVNgIitw-PH?#fa&#Ycz4+>A{(=F&$eo;^ZBD zxIg+F7uWT};#}vIix;lM&fY;!Y-aRGV#{AKQZx^bCim0x+3U&Nn7FifvH(IoKXuYx z8RN`3bW=V-i+6`V@Glv68Y!cR3yXL7TVCn1u&^pne>8LEQ7Tv6RVz0f`Q@B-D;r>E zd(!j#%GN-7I`U+E0MB~%-CyJbgJ55(7e>*;}sVz}bG~N4oS}@@k2e*@3 zK194e`?xp^+9YJG>(POPHLR>HH#KS!^753dQ|@DMycODwU9^>VU&6zss;g^=x1ZuI zzp^rhnD5aWCev%z90>_25!3GKcVHkg3QAl;hO>BQ^iUGR@x$#=mHQCba1lvo%es|G zfe2~p>VH4S#@d6JC5_cLFz~;=cDLeK(AjhJY0m=3KP}kJ&CQE?t{h@ty70kZQYp}? zP$|BV397VK{GQ+@@N>G{_(yLP82X|ODhLZRTR~yZ+qXBjM4JmM*E&|xEk)hy_7&Q1 z*YWjyqaXh+w2!oT$9zspYN#E{QTS|Fx8}rCwLsW#_BJR@;}1W?G%lU5RjP{qBQS+sG#>Yu)Tdye?+pcVrN3iRySE8paTB9x~gN5Eb9NIo6GVY$PD)FP=YpIH`OHFwMGV zX};Xo@M_=Rw<@u;=(5iXF4|MNNzrNFJzr0l+ zHld)P;BwlAUG}`xS+wD7KRq~FH2e|lIZA&`el+C=Rrqq^2?Jv^W(*;vIMMXuBH-C+)@)pmo zV1Kq0c~ip?B7T=JBVmTso)^M3Pb;sRDbvo-wV{RiLwSeB<0Y`4ATx$uz&iz6*#<*s~1sB}7e z!YuLUC}oxhUa*k=1;a(18Qb7h-37Towa5G12?a$(Nkv6wo{WoV)rOZ@{82)(35}7A zP^;XjDdG6ND|%w#=Raw%JX(n|XDu=+8XYCHF>O_}ePwK;`$e=i}w zh1MT^wI9Lr(q%kqy=16ty`kyU_w&8)JZ(9>NV8gacq1=(O1HDK!^Yk^R;*0<7N1b~ z`QYHte6ua_=H}3ZMP19quhLq!1_foUp(C%`1!7A}E`mS13A8OYyJOpjhZNWmPbG3a zm3@ElnhA_<@%1Tyt?!{w;Z!y>$dms^q{7p$tf#K z7Y-HBzuU!nIOr41DcqKu7=$AA4A9Mip~Ci_8lw;fFEaMq7jQd;W1 zTU@xay}!}wiu%o{PY!Rk>>W|e`sFS6w?{%yBvvnmjhJwYOG*s;MnkI>4gjjq_1O^> z6Bkq0(0iKxl(e)yGq!4z15E%je8oG-R@d2(UhgTZRa1JiUfYk2{?oE_vEHveOkMr*phP+{wI+ybZD{f+_|;tZSsqXBsQSmQS(Za=ho+jU2Zk+j$v@Hn{3ymvLKS^NWsrRh<56C z=rchmDFx!nTwPoe3oci-0s|3_ue|{n`sRHr{IgOsSg9C-iDds*A7g7Y6YAlCl%Xqc zZA};>aDz(`9~K-8CzmBK61Lu#oR;?E>ue2}6V-AX5?-;|GxFkRlBFC(yF)W z(PttVVj&|VVXXg=FMbR42srPegZ+CbZH%&V|Q<^n(DbaPfjc> ztYjGz5CvIAeVT6jYD8Q2mn%>w;~=osPqUs(kImq$voXTCV(jA+UCV}#6da&nW-b|V zWJ(m17Lh^t0`|kM#a{ow!0JXAMmo1+$T>d8^MTVux*@;;rWU=v)Et;96#pz!uL@{e zUherV0&s4B><_SQCD=HTP5Gpl<#C_w|vofTLHLp~y_cK(zDkoKhbTnUDhpqLI2mr0@vND3BuIH5U=^e%_AUOH~ zVfp&?^Aq@@Ddn1(6ar-H3!|Q#{Zm2D1c4EJx}{OqWWa1-uBC-<+w#B@92^Xgb+%F| zQ`&GuU}#$#NOl4=w6x4`qmWTiCuU{_|BPr+^^f)KII(c>3@+HVivr%6@bTmD=r9vI zckqOn@zTxfD{lcFULJ)~6|1HCjL2c+lhf0;xZ8zgwUMb!Jk>STVU*~@VXL-iNuaSx$E9vA1xD=5glwZ%Aie} z{JrMcR_ID_^s6mIxWF$7Nf==w+k1Ot1SrbYWtg8+(o@$C8kX}&+Wi2RjV2Zx-IPwU zY42X8foooTMusfdm1jE~%kH=IlT)nftxf)RT*GI>Y>e$^q>qQCdPZhu zpI8g!*UuTgxg79dhG!v=iRxc1XUD04F#@51Yj4MpVV8oYuYWSXMxZW}@Z#K0ru6o? z_rof0CdL^9-T2CiysbQHem>NUEwu;B(WW6SEX;mat+H$DbkeyhBA!xSU$#z3yCpJZ z#~g(4!0<4Hkue6)2~GJ7QZoL)kY0E&``imY@KItvLSEy4>RShi3qpd6JUP2CbUNl6 zv%gPZVYvtM7R2$MZOdpw+xg!2rBgr-*N@$b^y-kJG-a7Eh4PhF2IZpkEa3Aq@uayQ z)Ia-o^c#*=h*`cy<(^S28Z+Rs3nr^67unp7E3I9Up~GGW8Hj*)MhI}7^#WPIOhQ6K z0PIw!Gbx)1qy!tC1G$l?J>&D0o&rt+wh6C^7R{5YW| z)vBYd^+hsqlqr`ItPI`0)H+MaZVc@bRyHy!YVCaa#^T_1WO$g)bTmD?pgu8jSSDRV1NrQdm1%rz zx>Rjoa8M`?0@#hYfJe}1G|J!*tsU2Xzk|bVi%<&kFG_Sou$pGp{E{XG@g-Q`HGB$?d)3PKhawN+@?c`~Av3+3!r@3=w6u;-dY3=Y6W&hqkgsYLIL zzV%bhhB|7(s@A1U9Yzpj+4dFvJk5`^E|b;?#t51zHndyvdQI&rzW#zF833NsA!Lh+U)q!k}ROrpp3bj^~r@t zL`>i#e_yfz`pm${NKZ;a&)ha{Wy=Z169P1Czk@0%+xi%_e*3+-;m;~f!|k$x1gYa%cU$BfI0wH zi;Id#uw&NGJrqk-vgYK`!(KQ#o`Pkr_PK{ghKDs>Sl|X&_29tN&IFo0W7a<~l3!c< zC2msb&(_v;+T+74GBUD)mXTO2`-H8_KIB`E+IfliM>_$h>X1MXlz@L;hmkG z_vfktTkgC}OibJ^JDQ*LmAUWs>ubnKbVKTN)O>e;8Nj{;deomkxlY<#i~)oV)LKcM zAwNB8kzPv$$4M{ySkMj4o3Ff2ocU1cn+!WOqJ8mt(cwe_CTn&mUpmQc>!2a5$LPBW zi2t2;l$=Q+Az}cO!nbB7(C!V43<;M`PfjilU$$Q|o}D?x?+oWvHsCaPW@hjbn@sOc zgT?*z>zBH&;)kU{kFHfF*`xNDz5|n^HgPjEGxai=v->0Oq$SS_CKkT#xj8CoYE`0N zRj?5~U7-G|mVQiUJbK3y9P(V4BgVw4uRv}!=$0T>AwUm`EB(p$3im|(~yRs|8ajj z1zQwk>b`0yIn@`b!J(o4(SgoY2~#`3Eg!agbL!49p_|ai=xDq1U98<*)oRZ%U6?x` zVzFFAkkA_)O&jOt2bARni3*4a3TH%A(ljosWnDKLrn`U+}jXjuKKO##ya1QVcD z2p3}t&*n>f)S64KM?wr+cRbKOJC7|LGHx)!5Dn3;2%<1g0o2RD5P>jWLH-g+9 z7X1q6TVCGZ4P|+Qn)zg0;=!e=l9%O2s@$# zDt_3pJ%h9J@o-XmWRGE|85@u*#cgd-w?;F_`S}T>#Dq=z;J^t6H4E-1#f2cRKdoK; zJ#r@8m~-FxEiA~c_0|h=blBu?UjDt=t30mTY8xHRKm|h?84!=lG=jW#Kz`n@h0Yy%L>?ec>_VVJ5^ErSml0d0x%6z+Q{(OSdEp2Bui|? zRLUKZldB^bEqQ)EsH=)vT73XD7MGW64bM-^&h}lOZs8KX-7GH5$}TAhH)HDs1ne4U zqXgVu$tRXZhjvsVq_HHNoJrHKqi~VohfP=mVecbjVrl?|pDADQ>s$Yjt+1#z;LwA$ zPDB|?=USv%q@JSmp`HOYe$ekD)X??@yMT-VAo#9_om}Y(^lvIazKaqI6MJH9Y?}0a zF?CG*>?5E`QBzU9m+Rly!qJzNG;nhI0#JF0s)|9q`ez8Dba(=&){_S352)p_XZxdXe0*A{Tp=YTWzx;Z^OloAc_1(8(#={n zEEH=h)_vFJ;N`_H7mFBj-or`@f|LsdezeYBREhkU(N(I1F~;Q@pF6aXQ<-#WqGhJH z-E{45({W(W%EK|ZJx6t{PEaQ%dme59LQM>a3>I~%3Fqfv=3YGifXzpQiG&zGKMe3s zm`Dy#kJmD@Os%Yto0pem(IsFsTQ*@S^A#}k}L zapQfy)Y(rzn#3eShk0{qPwlw`7p<{ddC1BHLb$AY^C%A-!a2+N!%>3*< zf5({seaQ4E8zT@-Wqra)n#Rl$jkn!vnll<8zeCEjQ8^w15NAbo6&W8N0YD7FlJ8Zvk2WKqXkXre z3|hv(t;RZ5Cny{+%3!Yp?{izDW(+86}I*zll0KmC&{4kX5&vteXM zM+R*MoK?G*8j15w*1RC5ye^v`BbN@}=PK4fhd4N_mjU6U0W55|$;8~!GPkl4wVZ<+ zCQQ@_u+DBHX4P`tsClbD9sc)sG3~cnhR0l}f_F@wm;6GKl3`qW%Vd1ajMj&8DskbJ zTYRH68lH+$NG4sUwZj>!S>k#W6n!?HHU1N3c@;L~D-WZt60UhbCr?UG*CF*p}(}?zGpQR=b>> zO$Aly_ZNZw%(^LVNoJ(Iy|o?|^qYPneL|>$Z&$_|gQdG|b6;GJT-`ql$R=rRZM{49 zy&dXV5hq296vGG>6$RuU%p@qyK;j+v`4a+S_4wExG%Gj=^&VZK#faLf)6)a>KGPK= zhFlF!2Qd3!p(^zU9XUwF-U?E1(7cs~l7k%(;mLaf#bsqBqSSs$kXSo0JH?E ze6l0CqZL3>lQX}h)MiCZObQTRJO@D1Z~`~X&B3cwrI<-;c$Scs0Q47m4D=7*<)_xh zLsQz8bw@LJ#lb|zJp66fzEp>xcUrM9v+_r&miBC&l2RH^D%sM*oEg}u6{|3)(#1i{ ztJb90u$yh}+*y(G=| zw7yP@i3CzDD5c3V1u;t!8G^2fv$~$IOQ#2u+V8OTQ4sj~m+sE>?xzXcFU8I4G>1)I zO-)TTU(Sb=n~l%6m~nh$b>;He zi{PejyaW;V9Oz+8f=9g;vaO{FhCwlVXBS^TW0G{He!)xK(sVc4g}u2abM>;CuG?q< zEgn62t;Foi%%fQk16c|x+QW(E3sm&<`OSrC#I1jYF~c|f8t#YR26V!#+|}7ufvWgk zv+VHsK&Paf90RZGq49l4R34*=VG&C2nqr4hmVbwNAet<@jRRefKRy>jw?Fj&qM zkb$5XG8DNxhsLYD#|t$eAXb?k z=>lyAwEJw%wq2j6wPk6Rf2f=V!iMcm!L3h{1f-%o6Y(#?<0h*4_xk*G;U{z-jPsC? zm}mkVqCmMq@oW|Jm&^Bv%gv(2DoUD~Vi&fXf9om*#Z65q1$|cGqVZ7UlagGA60ShG zdJ=Y%7@QRwsx$k1Hq}1$89uqT5nBuR%y?0tS^~^hv8UFl|JiTFmmYPrP!9n#Ld~_B zGU9Vu_woz&xjt^{ad~aO(TqwQ(W+mZG`-IGq~GUF%0T%YFMVw(#Yh`b4lOd2d#f>s z@=r6ZWPV6Uh?#)Li<)^Ek~jKhX2}?RG0Z;B=|JMhbUOjA*f_|9b5(p99i_yZsNRZ^jWH!vO*ydqY88=7zgWDu z8#k;UA6)xK26_yu^xNzC=rED8CoDvv{^Xw^IWj>eZtjMHg^M`J$YbN{#1K+O@3j6x zMJh}x%t84(Eo9Uf(7Dh*GLoB@7ZgOt%F8QF=W=?Ph>7$Q?=?u?mM)0{0|WSngthZl zbXxV1fwHnHDylhCJ1>KUfOZHvcBpA-Z|5w5NnKM@0}$!wq@<^=uC<;B?KY>dt+t2P zV83fOIt1%eiCF6pHa0e1-8~qe-Dw&M1`7%0PNO4+9=q{@jLJwsc1u;RDh(u4kdaXc z=3*wyAnjlMfTj!(ogxhuU1ibLPixMuj8~MT+7}lX;h{ShD0aP$vDqC7&8Iq_A&}s+ zFji;alL1qdhnM$B0hE%GmaNhY>x*x+5Rj?2s)AhZwH@DB)@Jg+L15bw5)y#9EnPA_ z*yOyo)8rOAImrUdLxs}m;gQDeqdiloH@~v7a6Lx^O~m|(Z|*-St&=gF$opNwH5aZ<&mCWf`)!JHzuw?L%zyKnUW#I$;uN%30`znjScgmYA(oA2Z}MEZA7A(*ToBlNv}897djOYVkq(kz6lNYCDN|E~KFw5(1|L`;$;>Dh+BIs^(NY7AdunB6 zY%x7THjP7BQ4yGGIqmI_O*G=1afyjyx;_F&EvKV~qUB&kJv=>Al9Tgta!xKD6)wN6 zX1@c&1|1M(8qLwe!^3+-m)9+Hdb%H^9a&#TSpvVz$igBH=v07b1d8RZ0!x#O?1x

_xJZ~ z6*{-Yok;*oPt&T!HS(RDfNIcVDESUOYOyY;Hw)pZ&G3G0laEyVEsC}Q51+KQ-0v6! z+r@cf>gyVj3_`;1TU)@$1o3z04}({iO33S44eV(;z0BdGZw{MM7l)ofpm9`yYwn9o zx|6l}-i-Bv|Hfn+Fw{YEwck;iU8|nOnq~)L$Zxwm$A>QWMIzT~%-n%UseDbP304ic z-8uD=BP_I4_|ZFjwe=5I$ctWBMqUI5h;aCK)|wQ6ufO3KRiJQ*O1*!?*(FQ6#&+koq| zvlf#qp8;t_Ud)8T^w%#tKy+1gM^p98azSSVEpJ*Mv2PsczTIDWL;*VoXg8pXAcpUR z3K*coui{?19^ypMd93>|+}@;weNPS>#<>0R_N@6_7D!2f%kQBd$w6GyvIWjttpeRB zFF*gCB>JhNBgjZb%vw}5G-9RGq(dyMQ>?WO4Y|`hbB(74prvkf!M1f^XUbZ;$qO-G zsOn0mxT4qqGz(-N5&@=Mq+)UROb~1rDoxc$u`+@tO0Qb+!Tw=U{`6xf^dyWIYySAU zdq;m7-HU;GJ|rat%X%1TQ8Lt}lQ_x0h<9T;*Tf4vC&fQ0mlnwAmg+3&Qg9s#sZ z2s@~eOjs_f(e#T<^C#sO`Bf8&DElk&;^KX4N1&zD^YYLLq`Pc|WFz_k^i%YKuR^LW z96%!l!U*WeVr6EQlXiTiTAGlOVs7PfyM|j)T^$FQAx~ww2y5ENYyb{Ad@h<~oI

dD+@U6|R;8(*VBg~wfeHA**8ueCh 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 diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing3.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing3.png index e0a6a8a146370a8b79f3d94977db2ea73447ebe1..8f2fd8ecfbca58d1d483466f7dd265619d695ab8 100644 GIT binary patch literal 8627 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 GfB8R89Q|+r literal 12034 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 Date: Thu, 2 Jul 2026 11:52:02 +0200 Subject: [PATCH 15/37] add image to doc --- .../Benchmark_Creation/Participant-Routing.md | 42 ++++++++----------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 5535eed1a..140ffd963 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -50,7 +50,7 @@ Click **Create**. ## Deleting a Group !!! Warning - Deleting a participant group is **permanent**. +Deleting a participant group is **permanent**. Existing submissions are **not** modified after a group is deleted. @@ -62,9 +62,9 @@ Existing submissions are **not** modified after a group is deleted. Routing follows the following priority: !!! Tip - ```title="Queue priority" +`title="Queue priority" Group Queue > Competition Queue > Default Queue - ``` + ` --- @@ -73,18 +73,14 @@ Routing follows the following priority: Participant routing is enabled **only if the participant belongs to at least one group**. !!! Tip - A group **without a queue** means: - Use the competition's **default** queue. +A group **without a queue** means: +Use the competition's **default** queue. ## Queue Deduplication If multiple groups reference the **same compute queue**, only **one child submission** is created. Duplicate submissions are never generated for the same queue. -# Leaderboard Behavior - -When participant groups affect routing, the leaderboard adapts automatically. - ## Group Column A new **Group** column appears whenever at least one routed group is involved. @@ -102,25 +98,21 @@ For a given root submission: --- -## Example +## Leaderboard exemple -One participant belongs to two groups routed to different queues. -Two competition tasks are defined. +![image (5)](_attachments/participant_routing5.png) -```title="Leaderboard" -Task: Task 1 Task 2 ---------------------------------------------------------- -# Participant ID Group Score Score -1 alice 201 GPU 0.92 0.81 -2 alice 203 CPU 0.76 0.70 -``` +User Obada is inside of three groups (GPU_group, CPU_group and VIP_group), +submited and added his submission to leaderboard, the leaderboard displays three lines. + +Group column shows the group name and the main user submission ID like: ID_GroupName --- # Routing Scenarios | Participant configuration | Group queues | Child submissions created | Leaderboard rows | Group column | -| ------------------------------------------------- | ------------ | ----------------- | --------------------------------- | ------------ | +| ------------------------------------------------- | ------------ | --------------------------------- | ---------------- | ------------ | | No group, single-task competition | — | 1 root submission executed on Q0 | 1 | ❌ | | No group, multi-task competition | — | N child submissions on Q0 | 1 | ❌ | | One group without queue, single-task | Default | 1 root submission on Q0 | 1 | ❌ | @@ -139,13 +131,13 @@ Task: Task 1 Task 2 # Important Notes !!! Danger - Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. - If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. +Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. +If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. --- !!! Notes - Re-running a submission recomputes participant routing using the participant's **current group memberships**. +Re-running a submission recomputes participant routing using the participant's **current group memberships**. If group assignments have changed since the original submission, the rerun may produce different child submissions. @@ -154,4 +146,6 @@ If group assignments have changed since the original submission, the rerun may p !!! Info Group names are unique **within a competition**. -Different competitions may use identical group names without conflict. + Different competitions may use identical group names without conflict. + + When participant groups affect routing, the leaderboard adapts automatically. From 6b951b856b497f93dd212dc084845af6281ad1c5 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Thu, 2 Jul 2026 11:52:30 +0200 Subject: [PATCH 16/37] add image to doc --- .../_attachments/participant_routing5.png | Bin 0 -> 55368 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing5.png diff --git a/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing5.png b/documentation/docs/Organizers/Benchmark_Creation/_attachments/participant_routing5.png new file mode 100644 index 0000000000000000000000000000000000000000..e9bcc69a255d88e42c89c66c00117fbe13764767 GIT binary patch literal 55368 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
lP0&E&(6~E|OXD(6-kkTH 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 x5gu~LmO-Mc!qj7YD8v0}?{i}=7rVa9 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 Date: Thu, 2 Jul 2026 11:57:01 +0200 Subject: [PATCH 17/37] fix doc --- .../Benchmark_Creation/Participant-Routing.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 140ffd963..23bf3cb22 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -103,7 +103,9 @@ For a given root submission: ![image (5)](_attachments/participant_routing5.png) User Obada is inside of three groups (GPU_group, CPU_group and VIP_group), -submited and added his submission to leaderboard, the leaderboard displays three lines. +The leaderboard shows three lines, one for each group. + +User Cidir is inside of two groups so two lines only are displayed. Group column shows the group name and the main user submission ID like: ID_GroupName @@ -131,15 +133,15 @@ Group column shows the group name and the main user submission ID like: ID_Group # Important Notes !!! Danger -Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. -If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. + Removing a participant from a group **after** a submission has been created does **not** modify existing submissions. + If the queue associated with a group is deleted after submissions have been created, the leaderboard displays **"—"** in the **Group** column for those entries. --- !!! Notes -Re-running a submission recomputes participant routing using the participant's **current group memberships**. + Re-running a submission recomputes participant routing using the participant's **current group memberships**. -If group assignments have changed since the original submission, the rerun may produce different child submissions. + If group assignments have changed since the original submission, the rerun may produce different child submissions. --- From 692b13bbe18ba05f1e4235d5b7166231f07f393c Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Thu, 2 Jul 2026 11:58:42 +0200 Subject: [PATCH 18/37] Synthax fix --- .../docs/Organizers/Benchmark_Creation/Participant-Routing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 23bf3cb22..553e6413f 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -105,7 +105,7 @@ For a given root submission: User Obada is inside of three groups (GPU_group, CPU_group and VIP_group), The leaderboard shows three lines, one for each group. -User Cidir is inside of two groups so two lines only are displayed. +User Cidir is inside of two groups so only two lines are displayed. Group column shows the group name and the main user submission ID like: ID_GroupName From d4aa166030947075d3df936e9ac1e66cf737e079 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Wed, 1 Jul 2026 11:19:35 +0200 Subject: [PATCH 19/37] group feature reintegreted in site worker --- src/apps/competitions/tasks.py | 117 ++++++++++++++++++++++++--------- 1 file changed, 87 insertions(+), 30 deletions(-) diff --git a/src/apps/competitions/tasks.py b/src/apps/competitions/tasks.py index 71acb85c1..3d7d8abcb 100644 --- a/src/apps/competitions/tasks.py +++ b/src/apps/competitions/tasks.py @@ -1,10 +1,10 @@ import asyncio +import logging import os import re import traceback import zipfile -from datetime import timedelta, datetime -from django.conf import settings +from datetime import datetime, timedelta from io import BytesIO from tempfile import NamedTemporaryFile, TemporaryDirectory @@ -23,6 +23,7 @@ from competitions.unpackers.v1 import V15Unpacker from competitions.unpackers.v2 import V2Unpacker from datasets.models import Data +from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.files.base import ContentFile from django.db import transaction @@ -37,8 +38,6 @@ from utils.data import make_url_sassy from utils.email import codalab_send_markdown_email -import logging - logger = logging.getLogger(__name__) COMPETITION_FIELDS = [ @@ -123,6 +122,39 @@ ) # time limit of the default queue +def _get_user_group_queues(user, competition): + all_user_groups = list( + competition.participant_groups.filter(user__pk=user.pk) + .select_related("queue") + .distinct() + ) + + if not all_user_groups: + return [] + + groups_with_queue = [g for g in all_user_groups if g.queue_id is not None] + has_groups_without_queue = any(g.queue_id is None for g in all_user_groups) + + if not groups_with_queue: + return [] + + seen_ids = set() + queues = [] + for group in groups_with_queue: + if group.queue_id not in seen_ids: + seen_ids.add(group.queue_id) + queues.append(group.queue) + + if has_groups_without_queue: + competition_queue = competition.queue + if competition_queue is None: + queues.append(None) + elif competition_queue.id not in seen_ids: + queues.append(competition_queue) + + return queues + + def _send_to_compute_worker(submission, is_scoring): run_args = { "user_pk": submission.owner.pk, @@ -177,8 +209,12 @@ def _send_to_compute_worker(submission, is_scoring): ) if task.ingestion_program: - if (task.ingestion_only_during_scoring and is_scoring) or (not task.ingestion_only_during_scoring and not is_scoring): - run_args['ingestion_program_data'] = make_url_sassy(task.ingestion_program.data_file.name) + if (task.ingestion_only_during_scoring and is_scoring) or ( + not task.ingestion_only_during_scoring and not is_scoring + ): + run_args["ingestion_program_data"] = make_url_sassy( + task.ingestion_program.data_file.name + ) if task.input_data and (not is_scoring or task.ingestion_only_during_scoring): run_args["input_data"] = make_url_sassy(task.input_data.data_file.name) @@ -189,13 +225,17 @@ def _send_to_compute_worker(submission, is_scoring): run_args["ingestion_only_during_scoring"] = task.ingestion_only_during_scoring if is_scoring: - run_args['scoring_program_data'] = make_url_sassy(path=task.scoring_program.data_file.name) + run_args["scoring_program_data"] = make_url_sassy( + path=task.scoring_program.data_file.name + ) if not submission.data: - logger.error("Submission %s has no data file; marking as failed.", submission.pk) + logger.error( + "Submission %s has no data file; marking as failed.", submission.pk + ) submission.cancel(status=Submission.FAILED) return - run_args['submission_data'] = make_url_sassy(path=submission.data.data_file.name) + run_args["submission_data"] = make_url_sassy(path=submission.data.data_file.name) if not is_scoring: detail_names = SubmissionDetails.DETAILED_OUTPUT_NAMES_PREDICTION @@ -212,17 +252,15 @@ def _send_to_compute_worker(submission, is_scoring): time_padding = 60 * 20 # 20 minutes time_limit = submission.phase.execution_time_limit + time_padding - if ( - submission.phase.competition.queue - ): # if the competition is running on a custom queue, not the default queue - submission.queue = submission.phase.competition.queue - run_args["execution_time_limit"] = ( - submission.phase.execution_time_limit - ) # use the competition time limit - submission.save(update_fields=["queue"]) + effective_queue = submission.queue or submission.phase.competition.queue + + if effective_queue: + run_args["execution_time_limit"] = submission.phase.execution_time_limit + if submission.queue != effective_queue: + submission.queue = effective_queue + submission.save(update_fields=["queue"]) + if submission.status == Submission.SUBMITTING: - # Don't want to mark an already-prepared submission as "submitted" again, so - # only do this if we were previously "SUBMITTING" submission.status = Submission.SUBMITTED submission.save(update_fields=["status"]) @@ -230,12 +268,10 @@ def _enqueue_after_commit(): # priority of scoring tasks is higher, we don't want to wait around for # many submissions to be scored while we're waiting for results priority = 10 if is_scoring else 0 - if submission.phase.competition.queue: + if effective_queue: celery_app = app_or_default() with celery_app.connection() as new_connection: - new_connection.virtual_host = str( - submission.phase.competition.queue.vhost - ) + new_connection.virtual_host = str(effective_queue.vhost) task = celery_app.send_task( "compute_worker_run", args=(run_args,), @@ -329,17 +365,32 @@ def _run_submission(submission_pk, task_pks=None, is_scoring=False): else: tasks = submission.phase.tasks.filter(pk__in=task_pks) - tasks = tasks.order_by("pk") + tasks = list(tasks.order_by("pk")) + + if submission.parent is None and not is_scoring: + group_queues = _get_user_group_queues( + submission.owner, submission.phase.competition + ) + else: + group_queues = [] + + is_multi_task = len(tasks) > 1 + is_multi_queue = len(group_queues) > 1 + + if is_multi_task or is_multi_queue: + if is_multi_task and is_multi_queue: + combos = [(task, queue) for task in tasks for queue in group_queues] + elif is_multi_task: + override = group_queues[0] if group_queues else None + combos = [(task, override) for task in tasks] + else: + combos = [(tasks[0], queue) for queue in group_queues] - if len(tasks) > 1: - # The initial submission object becomes the parent submission and we create children for each task submission.has_children = True submission.save() - send_parent_status(submission) - for task in tasks: - # TODO: make a duplicate submission method and use it here + for task, queue in combos: child_sub = Submission( owner=submission.owner, phase=submission.phase, @@ -348,15 +399,21 @@ def _run_submission(submission_pk, task_pks=None, is_scoring=False): parent=submission, task=task, fact_sheet_answers=submission.fact_sheet_answers, + queue=queue, ) child_sub.save(ignore_submission_limit=True) _send_to_compute_worker(child_sub, is_scoring=False) send_child_id(submission, child_sub.id) + else: - # The initial submission object is the only submission if not submission.task: submission.task = tasks[0] submission.save() + + if group_queues and submission.queue != group_queues[0]: + submission.queue = group_queues[0] + submission.save(update_fields=['queue']) + _send_to_compute_worker(submission, is_scoring) From 414dbd6f896ffbc9f59d3cffd36fcfc0d233464f Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Wed, 1 Jul 2026 11:27:52 +0200 Subject: [PATCH 20/37] translate empty group queue --- src/static/riot/competitions/editor/_participation.tag | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/static/riot/competitions/editor/_participation.tag b/src/static/riot/competitions/editor/_participation.tag index ee799ac44..14a6d57a6 100644 --- a/src/static/riot/competitions/editor/_participation.tag +++ b/src/static/riot/competitions/editor/_participation.tag @@ -54,7 +54,7 @@
- Queue: { group.queue || "Aucune" } + Queue: { group.queue || "None" } Membres: { group.members && group.members.length > 0 ? group.members.length : 0 }
From 7db8d28a47d4fdc867e7434a750c6be436c56ad8 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Wed, 1 Jul 2026 11:55:15 +0200 Subject: [PATCH 21/37] change feature name + Edit button name --- src/static/riot/competitions/editor/_participation.tag | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/static/riot/competitions/editor/_participation.tag b/src/static/riot/competitions/editor/_participation.tag index 14a6d57a6..846dac85e 100644 --- a/src/static/riot/competitions/editor/_participation.tag +++ b/src/static/riot/competitions/editor/_participation.tag @@ -38,12 +38,12 @@
- +
- +
@@ -81,7 +81,7 @@
- +
@@ -63,10 +63,10 @@
- -
From 9c0f07c15b54936bd3308bf9b999049356936432 Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Wed, 1 Jul 2026 14:10:41 +0200 Subject: [PATCH 23/37] add feature documentation link to UI --- .../riot/competitions/editor/_participation.tag | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/static/riot/competitions/editor/_participation.tag b/src/static/riot/competitions/editor/_participation.tag index 73ef384bb..5181b5b92 100644 --- a/src/static/riot/competitions/editor/_participation.tag +++ b/src/static/riot/competitions/editor/_participation.tag @@ -38,14 +38,26 @@
+
- +
+
From b018329f964acb246ffe1b3045742767d7cec05e Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Thu, 2 Jul 2026 11:35:08 +0200 Subject: [PATCH 24/37] group queue erase button --- .../competitions/editor/_participation.tag | 159 ++++++++++++++---- 1 file changed, 124 insertions(+), 35 deletions(-) diff --git a/src/static/riot/competitions/editor/_participation.tag b/src/static/riot/competitions/editor/_participation.tag index 5181b5b92..da2f4aac1 100644 --- a/src/static/riot/competitions/editor/_participation.tag +++ b/src/static/riot/competitions/editor/_participation.tag @@ -41,16 +41,16 @@
-
-
- +
+ + +
@@ -139,34 +142,74 @@ self.available_queues = [] self.available_users = [] self.editing_group = null + self.group_queue_has_value = false const initUI = () => { try { $('.ui.checkbox', self.root).checkbox() } catch(e) {} try { - if (self.refs && self.refs.group_queue) { - const $q = $(self.refs.group_queue) - if (!$q.data('dd-init')) { - ;(self.available_queues || []).forEach(q => { - $q.append(new Option(q.name, q.id)) - }) - $q.dropdown({ - apiSettings: { - url: `${URLS.API}queues/?search={query}&public=true`, - cache: false, - }, - clearable: true, - minCharacters: 2, - fields: { - remoteValues: 'results', - value: 'id', - name: 'name', - }, - maxResults: 5, - onChange: () => {} - }) - $q.data('dd-init', true) - } - } + if (self.refs && self.refs.group_queue) { + const $q = $(self.refs.group_queue) + if (!$q.data('dd-init')) { + $q.append(new Option('', '')); + (self.available_queues || []).forEach(q => { + $q.append(new Option(q.name, q.id)) + }) + $q.dropdown({ + apiSettings: { + url: `${URLS.API}queues/?search={query}&public=true`, + cache: false, + }, + minCharacters: 2, + fields: { + remoteValues: 'results', + value: 'id', + name: 'name', + }, + maxResults: 5, + onChange: (value) => { + self.group_queue_has_value = !!value + self.update() + } + }) + $q.data('dd-init', true) + try { + const wrapper = self.refs.group_queue_wrapper + const clearIcon = wrapper && wrapper.querySelector('.queue-clear-icon') + const generatedDropdown = wrapper && wrapper.querySelector('.ui.selection.dropdown') + + if (wrapper) { + wrapper.style.position = 'relative' + wrapper.style.display = 'block' + } + if (self.refs.group_queue) { + self.refs.group_queue.style.display = 'none' + } + if (generatedDropdown) { + generatedDropdown.style.paddingRight = '3.2em' + generatedDropdown.style.boxSizing = 'border-box' + generatedDropdown.style.width = '100%' + } + if (clearIcon && !clearIcon.dataset.styled) { + clearIcon.style.position = 'absolute' + clearIcon.style.top = '50%' + clearIcon.style.right = '2.2em' + clearIcon.style.left = 'auto' + clearIcon.style.bottom = 'auto' + clearIcon.style.transform = 'translateY(-50%)' + clearIcon.style.margin = '0' + clearIcon.style.cursor = 'pointer' + clearIcon.style.zIndex = '20' + clearIcon.style.color = 'rgba(0,0,0,0.4)' + clearIcon.style.fontSize = '1em' + clearIcon.style.lineHeight = '1' + clearIcon.addEventListener('mouseenter', () => { clearIcon.style.color = 'rgba(0,0,0,0.8)' }) + clearIcon.addEventListener('mouseleave', () => { clearIcon.style.color = 'rgba(0,0,0,0.4)' }) + clearIcon.dataset.styled = 'true' + wrapper.appendChild(clearIcon) // garantit qu'il reste le dernier enfant du wrapper + } + } catch(e) {} + } + } } catch(e) {} try { @@ -311,6 +354,8 @@ try { $(self.refs.group_queue).dropdown('clear') } catch(e) {} try { $(self.refs.group_user_select).dropdown('clear') } catch(e) {} try { self.refs.selected_count.textContent = '0' } catch(e) {} + self.group_queue_has_value = false + self.update() try { $(self.refs.group_modal).modal({ closable: true }).modal('show') } catch(e) { self.refs.group_modal.style.display = 'block' } } @@ -330,8 +375,10 @@ if (queueId && group.queue) { $(self.refs.group_queue).dropdown('set text', String(group.queue)) $(self.refs.group_queue).dropdown('set value', String(queueId)) + self.group_queue_has_value = true } else { $(self.refs.group_queue).dropdown('clear') + self.group_queue_has_value = false // NOUVEAU } } catch(e) {} @@ -345,8 +392,7 @@ try { self.refs.selected_count.textContent = '0' } catch(e) {} } } catch(e) { console.warn('prefill members failed', e) } - - // Dropdowns are already initialised from mount — no re-init needed here + self.update() try { $(self.refs.group_modal).modal({ closable: true }).modal('show') } catch(e) { self.refs.group_modal.style.display = 'block' } } @@ -488,6 +534,17 @@ } catch(e) { console.warn('clear selection failed', e) } } + self.clear_group_queue = (e) => { + if (e) { e.preventDefault(); e.stopPropagation() } + try { + $(self.refs.group_queue).dropdown('clear') + } catch(e2) { + try { self.refs.group_queue.value = '' } catch(e3) {} + } + self.group_queue_has_value = false + self.update() + } + self.form_updated = () => { self.data.registration_auto_approve = $(self.refs.registration_auto_approve).prop('checked') self.data.allow_robot_submissions = $(self.refs.allow_robot_submissions).prop('checked') @@ -583,5 +640,37 @@ .group-actions .ui.mini.icon.button:focus { outline: 2px solid rgba(43,111,158,.18); outline-offset: 2px; } .ui.dropdown.multiple { width: 100% !important; } .ui.modal { z-index: 10000; } + .clearable-select-wrapper { + position: relative; + display: block; + } + .clearable-select-wrapper > select { + display: none !important; + } + .clearable-select-wrapper .ui.dropdown { + padding-right: 3.2em !important; + width: 100% !important; + box-sizing: border-box; + } + .clearable-select-wrapper .queue-clear-icon { + position: absolute !important; + top: 50% !important; + right: 2.2em !important; + left: auto !important; + bottom: auto !important; + transform: translateY(-50%) !important; + cursor: pointer; + color: rgba(0, 0, 0, 0.4); + z-index: 20; + font-size: 1em; + line-height: 1; + margin: 0 !important; + } + .clearable-select-wrapper .queue-clear-icon:hover { + color: rgba(0, 0, 0, 0.8); + } + .field help_button, .field help_button * { + vertical-align: middle; + } From 9227dfb02cea786b1e392ed91d7ec626f12f5a23 Mon Sep 17 00:00:00 2001 From: Obada Haddad-Soussac <11889208+ObadaS@users.noreply.github.com> Date: Thu, 2 Jul 2026 14:43:10 +0200 Subject: [PATCH 25/37] Update version.json --- version.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/version.json b/version.json index f85de2f51..bddb48dcb 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "tag_name": "v1.29", - "release_name": "v1.29", - "html_url": "https://github.com/codalab/codabench/releases/tag/v1.29" + "tag_name": "v1.30", + "release_name": "v1.30", + "html_url": "https://github.com/codalab/codabench/releases/tag/v1.30" } From 9a3d083003fe0f667354ccf3bd16c7991e21d63e Mon Sep 17 00:00:00 2001 From: Idir Chikhoune Date: Thu, 2 Jul 2026 14:56:29 +0200 Subject: [PATCH 26/37] fix format --- .../Benchmark_Creation/Participant-Routing.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md index 553e6413f..bafd78a1c 100644 --- a/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md +++ b/documentation/docs/Organizers/Benchmark_Creation/Participant-Routing.md @@ -50,9 +50,8 @@ Click **Create**. ## Deleting a Group !!! Warning -Deleting a participant group is **permanent**. - -Existing submissions are **not** modified after a group is deleted. + Deleting a participant group is **permanent**. + Existing submissions are **not** modified after a group is deleted. --- @@ -62,10 +61,9 @@ Existing submissions are **not** modified after a group is deleted. Routing follows the following priority: !!! Tip -`title="Queue priority" + `title="Queue priority" Group Queue > Competition Queue > Default Queue ` - --- ## Routing Trigger @@ -73,8 +71,8 @@ Routing follows the following priority: Participant routing is enabled **only if the participant belongs to at least one group**. !!! Tip -A group **without a queue** means: -Use the competition's **default** queue. + A group **without a queue** means: + Use the competition's **default** queue. ## Queue Deduplication From 76d0acad941c4aa92538757974912d87a2033cbe Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Tue, 3 Feb 2026 14:19:51 +0100 Subject: [PATCH 27/37] re-enabled github workflow to replace circle-ci; add trivy image scan workflow --- .github/workflows/image_scan.yml | 20 +++++++ .github/workflows/tests.yml | 84 ++++++++++++++++++++++++++++ .github/workflows/tests.yml.DISABLED | 63 --------------------- 3 files changed, 104 insertions(+), 63 deletions(-) create mode 100644 .github/workflows/image_scan.yml create mode 100644 .github/workflows/tests.yml delete mode 100644 .github/workflows/tests.yml.DISABLED diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml new file mode 100644 index 000000000..936480a6c --- /dev/null +++ b/.github/workflows/image_scan.yml @@ -0,0 +1,20 @@ +name: scan_image_for_CVE +on: + push: + # Every week on Monday at 00:00 + schedule: + - cron: "0 0 * * 1" +jobs: + build_push_image: + name: Build Docker Image then Push it to Docker.io + runs-on: ubuntu-latest + steps: + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@0.33.1 + with: + image-ref: 'codalab/codabench-compute-worker:latest' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..29992eafe --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,84 @@ +name: build_and_test +on: [push] +jobs: + build: + name: Build necessary services + runs-on: self-hosted + steps: + - name: Check out repository code + uses: actions/checkout@v5 + + - name: "Setup: Copy environment variables" + run: cp .env_circleci .env + + - name: "Setup: Create directories for MinIO (cannot be made by docker for some reason)" + run: | + mkdir -p var/minio/public + mkdir -p var/minio/private + + - name: "Setup: Prepare the playwright environment" + run: | + cd tests + curl -LsSf https://astral.sh/uv/install.sh | sh + $HOME/.local/bin/uv sync --frozen + $HOME/.local/bin/uv run playwright install + - name: "Docker: Build containers" + run: | + docker compose up -d + + - name: "Get compute worker, site worker and django logs" + run: | + mkdir dockerLogs + docker compose logs -f site_worker compute_worker django > dockerLogs/django_workers.log & + linter: + name: Flake8 linter + runs-on: self-hosted + needs: [build] + steps: + - name: "Lint: Check code style with flake8" + run: docker compose exec django flake8 src/ + unit_tests: + name: Unit tests + runs-on: self-hosted + needs: [linter,build] + steps: + - name: "Tests: Run unit/integration tests (excluding e2e)" + run: docker compose exec django py.test src/ -m "not e2e" + e2e: + name: End to End tests with Playwright + runs-on: self-hosted + needs: [linter,build] + steps: + - name: "Tests: Run end-to-end (E2E) tests" + run: | + docker compose exec django python ./manage.py createsuperuser --no-input + docker compose exec django python ./manage.py collectstatic --no-input + docker compose exec django python ./manage.py migrate --no-input + cd tests && CI=True $HOME/.local/bin/uv run pytest test_auth.py test_account_creation.py test_competition.py test_submission.py + artifacts: + name: "Store Artifacts" + runs-on: self-hosted + needs: [linter,build,unit_tests,e2e] + steps: + - name: "Docker logs" + uses: actions/upload-artifact@v4 + with: + name: "Docker logs" + path: | + dockerLogs/ + - name: "Playwright results (on-failure)" + uses: actions/upload-artifact@v4 + with: + name: "Playwright results (on-failure)" + path: | + tests/test-results + cleanup: + name: Cleanup + runs-on: self-hosted + if: ${{ always() }} + needs: [unit_tests,e2e,linter,artifacts] + steps: + - name: Cleanup + run: | + docker compose down --rmi all + rm -rf ${{ github.workspace }}/* \ No newline at end of file diff --git a/.github/workflows/tests.yml.DISABLED b/.github/workflows/tests.yml.DISABLED deleted file mode 100644 index 91e5ee27a..000000000 --- a/.github/workflows/tests.yml.DISABLED +++ /dev/null @@ -1,63 +0,0 @@ -name: build_and_test -on: [push] -jobs: - build: - name: Build necessary services - # runs-on: self-hosted - runs-on: ubuntu-latest - steps: - - name: Check out repository code - uses: actions/checkout@v5 - - name: "Setup: Copy environment variables" - run: cp .env_circleci .env - - name: "Setup: Create directories for MinIO (cannot be made by docker for some reason)" - run: | - mkdir -p var/minio/public - mkdir -p var/minio/private - - name: "Setup: Prepare the playwright environment" - run: | - cd playwrightPython - curl -LsSf https://astral.sh/uv/install.sh | sh - $HOME/.local/bin/uv sync - $HOME/.local/bin/uv run playwright install - - name: "Docker: Build containers and collect static files" - run: | - docker compose -f docker-compose.yml -f docker-compose.selenium.yml up -d - docker compose -f docker-compose.yml -f docker-compose.selenium.yml exec django python manage.py collectstatic --noinput - docker compose -f docker-compose.yml -f docker-compose.selenium.yml exec django python manage.py migrate - docker compose -f docker-compose.yml exec django python ./manage.py createsuperuser --no-input - - name: "Docker: Pull required images" - run: | - docker pull codalab/codalab-legacy:py37 - docker pull codalab/codalab-legacy:py3 - linter: - name: Flake8 linter - runs-on: self-hosted - needs: [build] - steps: - - name: "Lint: Check code style with flake8" - run: docker compose exec django flake8 src/ - unit_tests: - name: Unit test with Selenium - runs-on: self-hosted - needs: [linter,build] - steps: - - name: "Tests: Run unit/integration tests (excluding e2e)" - run: docker compose -f docker-compose.yml -f docker-compose.selenium.yml exec django py.test src/ -m "not e2e" - e2e: - name: End to End tests with Playwright - runs-on: self-hosted - needs: [linter,build] - steps: - - name: "Tests: Run end-to-end (E2E) tests" - run: cd playwrightPython && $HOME/.local/bin/uv run pytest test_auth.py test_account_creation.py test_competition.py test_submission.py - cleanup: - name: Cleanup - runs-on: self-hosted - if: ${{ always() }} - needs: [unit_tests,e2e,linter] - steps: - - name: Cleanup - run: | - docker compose -f docker-compose.yml -f docker-compose.selenium.yml down --rmi all - rm -rf ${{ github.workspace }}/* \ No newline at end of file From 29ee41a4851952f0541aa36b0e5b6c35812f852b Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 25 Jun 2026 16:54:52 +0200 Subject: [PATCH 28/37] remove github tests --- .github/workflows/{tests.yml => tests.yml.DISABLED} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{tests.yml => tests.yml.DISABLED} (100%) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml.DISABLED similarity index 100% rename from .github/workflows/tests.yml rename to .github/workflows/tests.yml.DISABLED From f48359b45271c801edf4e227a44af08ba018b8e9 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 25 Jun 2026 16:56:27 +0200 Subject: [PATCH 29/37] update trivy workflow version --- .github/workflows/image_scan.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 936480a6c..01a446377 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -10,8 +10,8 @@ jobs: runs-on: ubuntu-latest steps: - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.33.1 - with: + uses: aquasecurity/trivy-action@v0.36.0 + with: image-ref: 'codalab/codabench-compute-worker:latest' format: 'table' exit-code: '1' From 18624048c7c7e9a11d119af0e75efc738e1552d2 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Wed, 1 Jul 2026 12:11:21 +0200 Subject: [PATCH 30/37] change from every week to every day --- .github/workflows/image_scan.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 01a446377..4e99ae7be 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -1,9 +1,9 @@ name: scan_image_for_CVE on: push: - # Every week on Monday at 00:00 + # Every day at 00:00 schedule: - - cron: "0 0 * * 1" + - cron: "0 0 * * *" jobs: build_push_image: name: Build Docker Image then Push it to Docker.io From 51f28fc1041b914e5a4cbfc9bcd4021e1190a819 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:01:06 +0200 Subject: [PATCH 31/37] fix names --- .github/workflows/image_scan.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 4e99ae7be..2a2173b49 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -5,8 +5,8 @@ on: schedule: - cron: "0 0 * * *" jobs: - build_push_image: - name: Build Docker Image then Push it to Docker.io + scan_image: + name: Scan compute worker image with Trivy runs-on: ubuntu-latest steps: - name: Run Trivy vulnerability scanner From 2819631c9cc682cc8401801a504bcc9bfcc67fdc Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:03:03 +0200 Subject: [PATCH 32/37] fix push to schedule --- .github/workflows/image_scan.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 2a2173b49..c4f730f53 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -1,9 +1,8 @@ name: scan_image_for_CVE on: - push: - # Every day at 00:00 - schedule: - - cron: "0 0 * * *" + # Every day at 00:00 + schedule: + - cron: "0 0 * * *" jobs: scan_image: name: Scan compute worker image with Trivy From 3106f4633d8f7de3ac1deeb18462da4b4734a81d Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:05:22 +0200 Subject: [PATCH 33/37] remove disabled file --- .github/workflows/tests.yml.DISABLED | 84 ---------------------------- 1 file changed, 84 deletions(-) delete mode 100644 .github/workflows/tests.yml.DISABLED diff --git a/.github/workflows/tests.yml.DISABLED b/.github/workflows/tests.yml.DISABLED deleted file mode 100644 index 29992eafe..000000000 --- a/.github/workflows/tests.yml.DISABLED +++ /dev/null @@ -1,84 +0,0 @@ -name: build_and_test -on: [push] -jobs: - build: - name: Build necessary services - runs-on: self-hosted - steps: - - name: Check out repository code - uses: actions/checkout@v5 - - - name: "Setup: Copy environment variables" - run: cp .env_circleci .env - - - name: "Setup: Create directories for MinIO (cannot be made by docker for some reason)" - run: | - mkdir -p var/minio/public - mkdir -p var/minio/private - - - name: "Setup: Prepare the playwright environment" - run: | - cd tests - curl -LsSf https://astral.sh/uv/install.sh | sh - $HOME/.local/bin/uv sync --frozen - $HOME/.local/bin/uv run playwright install - - name: "Docker: Build containers" - run: | - docker compose up -d - - - name: "Get compute worker, site worker and django logs" - run: | - mkdir dockerLogs - docker compose logs -f site_worker compute_worker django > dockerLogs/django_workers.log & - linter: - name: Flake8 linter - runs-on: self-hosted - needs: [build] - steps: - - name: "Lint: Check code style with flake8" - run: docker compose exec django flake8 src/ - unit_tests: - name: Unit tests - runs-on: self-hosted - needs: [linter,build] - steps: - - name: "Tests: Run unit/integration tests (excluding e2e)" - run: docker compose exec django py.test src/ -m "not e2e" - e2e: - name: End to End tests with Playwright - runs-on: self-hosted - needs: [linter,build] - steps: - - name: "Tests: Run end-to-end (E2E) tests" - run: | - docker compose exec django python ./manage.py createsuperuser --no-input - docker compose exec django python ./manage.py collectstatic --no-input - docker compose exec django python ./manage.py migrate --no-input - cd tests && CI=True $HOME/.local/bin/uv run pytest test_auth.py test_account_creation.py test_competition.py test_submission.py - artifacts: - name: "Store Artifacts" - runs-on: self-hosted - needs: [linter,build,unit_tests,e2e] - steps: - - name: "Docker logs" - uses: actions/upload-artifact@v4 - with: - name: "Docker logs" - path: | - dockerLogs/ - - name: "Playwright results (on-failure)" - uses: actions/upload-artifact@v4 - with: - name: "Playwright results (on-failure)" - path: | - tests/test-results - cleanup: - name: Cleanup - runs-on: self-hosted - if: ${{ always() }} - needs: [unit_tests,e2e,linter,artifacts] - steps: - - name: Cleanup - run: | - docker compose down --rmi all - rm -rf ${{ github.workspace }}/* \ No newline at end of file From 56f68bf29b227c31af8aff9d3cbd2780877435e9 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:16:41 +0200 Subject: [PATCH 34/37] fix deprecated call --- .github/workflows/image_scan.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index c4f730f53..2f7776fe9 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -15,5 +15,5 @@ jobs: format: 'table' exit-code: '1' ignore-unfixed: true - vuln-type: 'os,library' + pk-types: 'os,library' severity: 'CRITICAL,HIGH' From 2d822b4cbf563c493de10f193adf4926f2708e58 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:23:11 +0200 Subject: [PATCH 35/37] scan only vulnerabilities --- .github/workflows/image_scan.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 2f7776fe9..844096058 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -17,3 +17,4 @@ jobs: ignore-unfixed: true pk-types: 'os,library' severity: 'CRITICAL,HIGH' + scanners: 'vuln' From 4eef7baf44f9bc18625a9a1f56650aeb2fbe7051 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:28:40 +0200 Subject: [PATCH 36/37] fix format --- .github/workflows/image_scan.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 844096058..10d89fcf5 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -10,11 +10,11 @@ jobs: steps: - name: Run Trivy vulnerability scanner uses: aquasecurity/trivy-action@v0.36.0 - with: + with: image-ref: 'codalab/codabench-compute-worker:latest' format: 'table' exit-code: '1' ignore-unfixed: true pk-types: 'os,library' severity: 'CRITICAL,HIGH' - scanners: 'vuln' + scanners: 'vuln' From cafc9133498023fc95c6a33760a71b4e8c339fb9 Mon Sep 17 00:00:00 2001 From: Obada Haddad Date: Thu, 2 Jul 2026 15:53:48 +0200 Subject: [PATCH 37/37] fix pk -> pgk & remove unfixed ignore --- .github/workflows/image_scan.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/image_scan.yml b/.github/workflows/image_scan.yml index 10d89fcf5..ad9ff851c 100644 --- a/.github/workflows/image_scan.yml +++ b/.github/workflows/image_scan.yml @@ -14,7 +14,6 @@ jobs: image-ref: 'codalab/codabench-compute-worker:latest' format: 'table' exit-code: '1' - ignore-unfixed: true - pk-types: 'os,library' + pkg-types: 'os,library' severity: 'CRITICAL,HIGH' scanners: 'vuln'