Releases: codalab/codabench
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
Documentation
v1.21.1
Manual Interventions
This release updates the Compute Worker code. You will need to pull the updated images or recreate ones.
Changes
Bug Fixes
- Updated requests websockets and pyyaml of compute worker to fix some vulnerabilities
- Remove certificate verification from celery in the compute worker
- Fix BestModeStrategy to exclude soft-deleted and non-finished submissions
- Added back submissions files copy into prediction out that was removed in the Podman PR by accident
- Changed hardcoded email as per issue #2040
Datasets PR#2Croissant metadata added- Cleanup - Datagroup and related code removed
- Docs - Email updated to
info@codabench.org - Comment out the non working tests while we find a way to fix them
Full Changelog: v1.21.0...v1.21.1
1.21.0
Manual Intervention
1. MinIO migration (depending on setup) (#1964)
If you are running MinIO locally (defined by .env and docker-compose.yml, you may require to follow the following MinIO upgrade instructions, to duplicate and mirror your buckets and convert them to the new format:
https://docs.min.io/community/minio-object-store/operations/deployments/baremetal-migrate-fs-gateway.html
2. Rebuild all containers (#2025)
docker compose build && docker compose up -d3. Django migration (#1955)
docker compose exec django ./manage.py migrate4. Collect static files (#1982)
docker compose exec django ./manage.py collectstatic --no-input5.Compute Workers
We have updated the compute worker codes. If you have deployed your own workers, you will need to update your images to either :latest or :cpu1.3
New Features
- Added mkdocs based documentation files for the new wiki
- Added the recent changes from the wiki into the new wiki
- Change staticfiles to static, django 3 updates
- Fixed MC image version and bumped MinIO version
- Added custom filter that shows competitions with more than 10 participants and 25 submissions that are private
- Datasets
PR#1- New datasets public page and related updates - Leaderboard always visible
- Podman updates & More Competition container security
- Changed logger to Loguru
Bug Fixes
- Removed a test checking for validated tasks since we removed the validation in https://github.com/codalab/codabench/pull/1963
- Update logo path so that it uses the Django template tag {% static %}
- Fix leaderboard columns and title
- Fix DEBUG variable in base.py
- Fix API docs page not loading
Changes
- Removed urls
- Removed a test checking for validated tasks since we removed the validation in https://github.com/codalab/codabench/pull/1963
Full Changelog: 1.20.0...v1.21.0
1.20.0
Manual Intervention needed if upgrading
Codabench Instance
If you are upgrading from a previous version, you will need to run the following commands:
docker compose build && docker compose up -d
docker compose exec django ./manage.py makemigrations
docker compose exec django ./manage.py migrate
docker compose exec django ./manage.py collectstatic --noinputCompute workers
If you have your own compute workers, you will also need to update them. You can simply do a docker compose pull && docker compose up -d if you are still using the latest tag inside the docker-compose.yml. Otherwise, change the tag to latest then run the previous command.
New Features
- Filters added in public competitions page
- Delete non active users
- code documentation - public competitions api documentation added
- clamp length of competition search results description
- Option added to download all participants
- Improved organization delete error + Remove organization reference from submission on soft deletion
- File size for submissions clarified
- Compute worker - Allow to unzip files with parent directory - We have reverted this change for now as it would bug out some competitions
- Update mc command from "config host add" to "alias set"
- Set page titles on some pages
Changes
- Removed
num entriesfrom leaderboard - Caddy image update
- User model filters - remove
deleted - Django to 3.0
- Docker worker updates
Bug Fixes
- fix Caddyfile indentation
- Submission files duplication - We have reverted this change for now as it would bug out some competitions
- Do not allow signup with email with
* - Markdown rendering problems fixed
- Remove validation logic from tasks.py
- fix missing username in email template, improve message
Full Changelog: 1.19.0...1.20.0
1.19.0
Manual Intervention needed if upgrading
You will need to launch a migration with the following command after upgrading:
docker compose exec django ./manage.py migrate
New Features
- Add remove button for cancelled submissions
- Clarify warning message "Detailed results not written" in compute_worker.py
- Add hide_score_output option
- Version update workflow removed
- Add hide_prediction_output option
Bug Fixes
Full Changelog: 1.18.0...1.19.0
1.18.0
Manual Intervention needed if upgrading
This release changes things in the database. You will need to stop new submissions on your server while you launch the commands needed. You can use the new maintenance mode to achieve this.
More information on this page.
New Features
- Updated release-version PR title to distinguish from other PRs
- Competition pages are now clickable without any active phase
- Home page competitions updates
- Competition results API fixed
- Double approve/deny participant
- Enable/Disable competition forum
- Competition Create form UI updates
- Do not allow special chars in usernames
- Email in lowercase
- Latest competition fields added to dump
- User quota is updated to GB from Bytes
- File Sizes cleanup
- Resetting file sizes task removed
- Resource interface: quota unit is now GB instead of B
- Create CODE_OF_CONDUCT.md
- Added log rolling to limit log size to 5GB for now, can be changed
- Maintenance mode option added in Caddyfile, used by creating a maintenance.on file in the maintenance_mode/ directory
Fixes
- Show server error instead of frontend parsing/JSON error
- Exclude soft-deleted submissions from leaderboard
- Task list pagination issues resolved
Full Changelog: 1.17.0...1.18.0
1.17.0
Manual Intervention needed if upgrading
You will need to run a migration if upgrading, more details here.
New Features
- Platform yearly statistics
- Delete User Updates
- Forum Updates - restrictions added for non-participants
- Submission soft-delete functionality added
Full Changelog: 1.16.0...1.17.0