Releases: codalab/codabench
Release list
v1.30
Release Notes
Features
Bug Fixes
- refactor(login): sanitize failed login error message
- fix: allow organizers to hard-delete soft-deleted submissions
- Remove duplicate CommonMiddleware from MIDDLEWARE
- Avoid 404 error after maintenance mode is disabled
- Improvements for participant routing feature
Documentation
v1.29
Upgrade instructions
- Update compute workers
https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup/
Changes
Features
- Add average rank computation column
- Worker status/monitoring for competition organizers (from rabbit)
- Add ordering by ID to all admin pages
Bug fixes
- fix(site_worker): remove watchmedo auto-restart causing BrokenPipeError loop
- Remove volume when removing container
- Autocomplete for queue selection
Documentation
v1.28
Release notes
Recommended setting
We recommend enabling all stable feature flags in the rabbit management interface (accessible from the site address on port 15672 by default) or by entering the rabbitmq container and executing the following command (after verifying that all these feature flags are compatible with your environment)
rabbitmqctl enable_feature_flag all
This can significantly speed up and stabilize your platform. In our case, we went from ~5 minutes startup time required for rabbitmq to ~10 seconds because of all the vhosts (queues) that the platform has on https://www.codabench.org
Update RabbitMQ flag: https://www.rabbitmq.com/blog/2025/09/01/6-khepri-default
New Features
v1.27.1
This is a quick hotfix
Changes
v1.27
Release Notes
Upgrade instructions
Re-build the containers:
docker compose build --no-cache && docker compose up -dUpgrade compute workers:
Features
Improvements
- Improve 403 and 500 error web pages
- Remove score edition feature
- Add description in dropdown selector (edit phase > select tasks)
- Remove wrong note about task selection
Bug Fixes
- Fix show counts in Django admin
- Compute Worker - Fix submission duplication during ingestion
- Cleanup leaderboard ordering and N/a scores
- OIDC updates from #2183 - Ensure username for OIDC accounts fit into db constraints
Maintenance
v1.26
Upgrade instructions
-
Rename
SERVER_EMAILtoDEFAULT_FROM_EMAILin the.envfile before starting the service (#2271). -
Upgrade compute workers (https://docs.codabench.org/latest/Organizers/Running_a_benchmark/Compute-Worker-Management---Setup/#update-docker-image)
-
Build and restart services (
docker compose build --no-cache && docker compose up -d)
Release notes
Improvements
- Some minor versions upgrades to fix CVEs
- Update E2E tests
- Compute Worker- reorganizing and cleaning of compute worker
- Quota Cleanup - Updates to remove unused starting kits and bundles and exclude starting kit and public data from unused datasets
- EMAIL - reintroduced DEFAULT_FROM_EMAIL
- Submission Score - show primary column score and use precision set for the column
- Group the submission logs into dynamic tabs
- Leaderboard Pagination.
- Refactoring - refactored bundle_management code
- Packages upgrade
Bug fix
- Fix queue attribute name in tasks.py
- Bundle Upload - Error made clear when there is a problem in yaml
- Cancel Submission - use submission queue instead of competition queue
- fix pg_dump.py not using the new container names
- Add update pull_policy for site_worker service
- Fix secret_url using the wrong domain name
- Add permission check to datasets/download
Documentation
v1.25
Upgrade instructions
It is required to re-build the containers:
docker compose build --no-cache
docker compose up -dCompute Worker changes
If you have your own compute worker, you will need to update the worker to use the latest image otherwise they will not work.
Release notes
New Features
- Autogenerate SECRET_KEY or use given one
- Add competitions organized in profile page
- Deploy codabench using kubernetes (+ Revert change on Containerfile
Improvements
- Various packages upgrades (Django 5.2)
- Compute worker - Improve status update and logs
- Submission pagination backend fixed
- Support for Multiple Domain names (instance behind reverse proxy)
- Include username in email
- Git - added autogenerated files to .gitignore
- Compute Worker - fixed function get_folder_size_in_gb
- Submission Upload - uploading non zip error improved
- Add more information in submissions csv (django admin + organizer)
- Display competitions' start date instead of upload date
Bug Fix
- Fix auto-migration to next phase
- Fix leaderboard ordering by date
- Fix submission upload page display
- Fix redirection when removing a forum post or a thread
- Fix for sumission csv download
- Clean minor code logic problems in submission_upload.tag
Security
- Bump pyjwt from 2.11.0 to 2.12.0
- Bump social-auth-app-django from 5.4.3 to 5.6.0
- Bump requests from 2.32.5 to 2.33.0
Documentation
v1.24
Upgrade instructions
Rabbit (#2061)
We also need to log into the RabbitMQ interface and enable the flags it wants us to enable after upgrading.
RabbitMQ port, username and password to access the interface are defined in the .env file.
More information about feature flags here
Database (Postgres 12 -> 18) (#2091)
1. Maintenance mode on to avoid update on the database during the upgrade:
touch maintenance_mode/maintenance.on
git pull2. Create the new postgres.conf file from the sample:
cp my-postgres_sample.conf my-postgres.conf3. Rebuild docker containers to take into account the new images:
docker compose build --no-cache4. Dump the database, remove it and reload it on the new configuration:
# Dump database
docker compose exec db bash -lc 'PGPASSWORD="$DB_PASSWORD" pg_dump -Fc -U "$DB_USERNAME" -d "$DB_NAME" -f /app/backups/upgrade-1.24.dump'# Check that dump file is not empty
docker compose exec db bash -lc 'ls -lh /app/backups/upgrade-1.24.dump && pg_restore -l /app/backups/upgrade-1.24.dump | head'/!\ Dangerous operation here: confirm that your dump worked before removing the database!
# Remove database
sudo rm -rf var/postgres# Launch the new containers (containing the updated databse image and Restore from backup)
docker compose up -d db
docker compose exec db bash -lc 'PGPASSWORD="$DB_PASSWORD" pg_restore --verbose --clean --no-acl --no-owner -h $DB_HOST -U "$DB_USERNAME" -d "$DB_NAME" /app/backups/upgrade-1.24.dump'See this for more details.
5 Restart the rest of the services and disable maintenance mode:
docker compose up -d
rm maintenance_mode/maintenance.onRelease notes
Improvements
- Dockerfiles changes and uv introduction
- Make detailed results public when competition is public
- Option to rewrite endpoint URL - Fix local instance
- HTTP(S) and Network mode options in Compute Worker
- Worker status to FAILED instead of SCORING or FINISHED in case of failure
- User Admin upgrades (easier user creation + password change)
- Made competition container and temp folder names more readable
- Add restart policy to compute_worker configuration
- Original : #2187
- Fix missing staticfiles on first launch by switching migrate and collectstatic in docker-compose.yml
- Fix helper position in "My Submissions" tab
- Bumped RabbitMQ docker image version to latest
- Postgres Upgrades and changes
- Fix duplicates in competitions list
Documentation
v1.23
Manual Interventions
Django
The Django version upgrade will require all the containers to be rebuilt:
docker compose build --no-cache
docker compose up -dAfterward, you will need to run some migrations:
docker compose exec django python manage.py migrateIf it asks you to do a makemigration instead, you will have to run the following command:
docker compose exec django python manage.py makemigrations --mergeYou might need to modify /app/src/apps/datasets/migrations/0014_merge_20251212_0942.py to remove the datagroup changes
# Generated by Django 4.2.23 on 2025-09-08 12:32
from django.db import migrations, models
import utils.data
import utils.storage
class Migration(migrations.Migration):
dependencies = [
("datasets", "0010_auto_20250218_1100"),
]
operations = [
migrations.AlterField(
model_name="data",
name="data_file",
field=models.FileField(
blank=True,
null=True,
storage=utils.storage.PrivateStorageClass(),
upload_to=utils.data.PathWrapper("dataset"),
),
),
migrations.AlterField(
model_name="data",
name="id",
field=models.BigAutoField(
auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
),
),
]Notice that there are only two migrations in this file instead of 3. Simply delete the last one (it tries to change datagroups even after datagroups was deleted, which is why it fails)
Release notes
Improvements
- Django 4.2.0
- Submission CSV - added submission id and filename fileds to submission csv
- Playwright Fixes
- EMAIL - replaced
DEFAULT_FROM_EMAILbySERVER_EMAIL - Remove Useless files
- General - Added new files for Governance, Privacy and About
- Server status available for competition organizers and queue collaborators
- Optimize Download Many
Documentation
v1.22
Manual Interventions
Main Instance
Some of the changes will require a migration and collectstatic commands to be run:
docker compose build && docker compose up -d
docker compose exec django python manage.py migrate
docker compose exec django python manage.py collectstatic --no-inputThere is a new environment variable for the contact email:
CONTACT_EMAIL=info@codabench.org
Make sure to add it to your .env file before launching the containers
Compute Workers
Major compute workers changes will require updating the Compute Worker images for both Docker and Podman. Podman workers will also need Podman 5.4 minimum to work on the host
New Features (Participants, Organizers, Hosters)
- Feature - Banned User functionality added
- Compute Worker Use docker-py instead of the current subprocess way of doing things (for podman and docker)
- Colored JSON logs; Made run argument prettier for compute worker
Improvements
- Initial Playwright integration
- Tests - datasets API delete tests added
- Chahub cleanup
- Cleanup - remaining references of chahub removed
- Email - Added CONTACT_EMAIL
- Django Admin Interface Upgrades
Bug fix
- Phase creation from UI with starting_kit/public_data bug fixed
- Submission delete API bug fixed. More restrictions added
- Changed domain name setting to not show example.com but the actual domain name defined in the .env
- Put back partners logo