Changelog History
Page 2
-
v1.8.0-extra
May 15, 2020 -
v1.7.1 Changes
May 06, 2020v1.7.1 (2020-05-06)
๐ Bug Fixes
- ๐ Compile Swift before executing since default file size limit of 1MB for execution is not enough for Swift to run successfully. Compilation has a file size limit of 4MB by default which seems to be enough for Swift to compile. Thanks @OliverwengFiltered.
- ๐ Fixed environment loading for Telemetry Client.
- Commits: @bd16119c
Other Changes
- ๐ณ Set
VIRTUAL_HOST
environment variable in Dockerfile to value3000
. - โก๏ธ Updated Telemetry Client to version
c62fa63d
. - โ Added separated Docker Compose files for server and workers.
- ๐ท Renamed service
worker
toworkers
andapi
toserver
.
๐ Deployment Procedure
๐ Judge0 API is collecting telemetry data to help understand how to improve the product and to better understand how the Judge0 API is used in various production environments. Read more about telemetry here.
With HTTPS (SSL/TLS)
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.7.1/judge0-api-v1.7.1-https.zip unzip judge0-api-v1.7.1-https.zip
Change directory to
judge0-api-v1.7.1-https
:cd judge0-api-v1.7.1-https
Edit
docker-compose.yml
and change variablesVIRTUAL_HOST
,LETSENCRYPT_HOST
andLETSENCRYPT_EMAIL
.Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.7.1 is now available at
https://<YOUR DOMAIN>
.
With HTTP
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.7.1/judge0-api-v1.7.1.zip unzip judge0-api-v1.7.1.zip
Run all services and wait few seconds until everything is initialized:
cd judge0-api-v1.7.1 docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.7.1 is now available at
http://<IP ADDRESS OF YOUR SERVER>
.
-
v1.7.1-extra
May 07, 2020 -
v1.7.0 Changes
May 05, 2020v1.7.0 (2020-05-05)
Huge thanks to sponsors of this release: Filtered and Evalart.
๐ New Features
- Added 10 new languages , and in total there are now 42 active languages.
ID Name Note 75 C (Clang 7.0.1) 76 C++ (Clang 7.0.1) 77 COBOL (GnuCOBOL 2.2) Sponsored by Evalart. 78 Kotlin (1.3.70) Sponsored by Filtered. 79 Objective-C (Clang 7.0.1) Sponsored by Filtered and Evalart. 80 R (4.0.0) Sponsored by Filtered. 81 Scala (2.13.2) Sponsored by Filtered. 82 SQL (SQLite 3.27.2) Sponsored by Filtered. (*) 83 Swift (5.2.3) Sponsored by Filtered and Evalart. 84 Visual Basic.Net (vbnc 0.0.0.5943) Sponsored by Filtered. (*) Watch this asciicast to learn how to use this language.
Other Changes
- Increased default
MAX_MEMORY_LIMIT
to 512000.- Commits: @3dcbfc96
- Set compile CPU time limit to
MAX_CPU_TIME_LIMIT
.- Commits: @3dcbfc96
- Set compile wall time limit to
MAX_WALL_TIME_LIMIT
.- Commits: @3dcbfc96
- Redirect input from
/dev/null
when compiling. Thank you @gollux for your help.- Commits: @42b89a7c
๐ Deployment Procedure
With HTTPS (SSL/TLS)
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.7.0/judge0-api-v1.7.0-https.zip unzip judge0-api-v1.7.0-https.zip
Change directory to
judge0-api-v1.7.0-https
:cd judge0-api-v1.7.0-https
Edit
docker-compose.yml
and change variablesVIRTUAL_HOST
,LETSENCRYPT_HOST
andLETSENCRYPT_EMAIL
.Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.7.0 is now available at
https://<YOUR DOMAIN>
.
With HTTP
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.7.0/judge0-api-v1.7.0.zip unzip judge0-api-v1.7.0.zip
Run all services and wait few seconds until everything is initialized:
cd judge0-api-v1.7.0 docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.7.0 is now available at
http://<IP ADDRESS OF YOUR SERVER>
.
-
v1.6.0 Changes
May 01, 2020๐ New Features
- Added support for automatically redirecting stderr to stdout of the running program with the configuration flag
redirect_stderr_to_stdout
. Added configuration variableREDIRECT_STDERR_TO_STDOUT
that can be used for setting default behaviour for every submission.- Commits: @8e6617aa
- โ Added configuration variable
DISALLOW_ORIGIN
that can be used for disabling CORS only for specific origins. - Added configuration variables
ALLOW_IP
andDISALLOW_IP
that can be used for allowing/disallowing only specific IP addresses that can use instance of Judge0 API.- Commits: @4fd0f34b
- ๐ง Added support for built in maintenance mode that can be enabled with configuration variables
MAINTENANCE_MODE
andMAINTENANCE_MESSAGE
. In maintenance mode clients cannot create or delete submissions i.e. they cannot create new database changes.- Commits: @201221e2
- โ Added support for universal field
*
which returns all attributes of a submission.- Commits: @521cc2e2
- โ Added route
GET /statistics
which returns some basic and useful information about Judge0 API instance. Statistic report is cached for 10 minutes. - โ Added basic support for callbacks which are called with HTTP verb
PUT
. - โ Added support for presetting custom additional files in a sandbox.
- โ Added routes
GET /submissions/batch
andPOST /submissions/batch
batch create and show or submissions.
๐ Improvements
- ๐ Use Redis queue with name that corresponds with the current Judge0 API version. This allows multiple instances of different versions of Judge0 API to use the same Redis instance.
- Commits: @dd6b62d7
- ๐จ Refactored submission field checking.
- Commits: @9acefdbc
- ๐จ Refactored setting up of default values.
- Commits: @a14ae5d5
๐ Bug Fixes
- Fixed a bug that ignored custom setting of configuration variables
enable_per_process_and_thread_time_limit
andenable_per_process_and_thread_memory_limit
.- Commits: @a6f693a0
- ๐ Fixed a bug where cgroups flags for isolate were chosen in the wrong conditions.
- Commits: @4116b9cb
- ๐ Fixed a bug that caused
Internal Error
because sandbox cleanup failed. - Fixed a bug where low
memory_limit
would causeInternal Error
. Minimum required value formemory_limit
is now 2048.- Commits: @655ccf27
๐ Security Fixes
- ๐ Fixed a bug that allowed creation of an arbitrary size of the compile output.
- Commits: @5fc7b823
Other Changes
- Do not implicitly force wide open CORS settings when in development mode. I.e. variable
ALLOW_ORIGIN
can now also be used in development mode.- Commits: @a3a24c5c
- โ Removed output of configuration settings when server or worker starts.
- Commits: @7061de7a
- โก๏ธ Updated all the gems except Rails to the latest versions.
- Changed default value of
enable_per_process_and_thread_memory_limit
tofalse
.- Commits: @4116b9cb
- ๐ง Don't show total number of workers in
/workers
that is determined with configuration variableCOUNT
because that number is not relevant.- Commits: @99939b89
- ๐ Changed the default port to
80
in Docker Compose file.- Commits: @6ab67d6b
- ๐ณ Limited the log size to 100 MB in Docker Compose file.
- Commits: @435c7d79
- โ Added logging to
run-workers
script.- Commits: @381265a2
- โก๏ธ Updated dummy client default values.
- โ Added Docker Compose file for HTTPS support.
- ๐จ Refactored all development and production scripts from
scripts
directory. - ๐จ Refactored
judge0-api.conf
file.
๐ Deployment Procedure
With HTTPS (SSL/TLS)
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.6.0/judge0-api-v1.6.0-https.zip unzip judge0-api-v1.6.0-https.zip
- Change directory to
judge0-api-v1.6.0-https
:cd judge0-api-v1.6.0-https
- Edit
docker-compose.yml
and change variablesVIRTUAL_HOST
,LETSENCRYPT_HOST
andLETSENCRYPT_EMAIL
. Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis nginx letsencrypt sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.6.0 is now available at
https://<YOUR DOMAIN>
.
With HTTP
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.6.0/judge0-api-v1.6.0.zip unzip judge0-api-v1.6.0.zip
Run all services and wait few seconds until everything is initialized:
cd judge0-api-v1.6.0 docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.6.0 is now available at
http://<IP ADDRESS OF YOUR SERVER>
.
- Added support for automatically redirecting stderr to stdout of the running program with the configuration flag
-
v1.5.0 Changes
January 02, 2020v1.5.0 (2020-01-01)
๐ New Features
- Added 30 new languages , archived 42 languages and kept active 2 languages from the last release. In total, there are now 32 active languages that can be used and all are updated to their latest versions as of the date of this release. Archived languages cannot be used anymore. Following table shows a status of every language that API supports.
ID Name Status 1 Bash (4.4) archived 2 Bash (4.0) archived 3 Basic (fbc 1.05.0) archived 4 C (gcc 7.2.0) archived 5 C (gcc 6.4.0) archived 6 C (gcc 6.3.0) archived 7 C (gcc 5.4.0) archived 8 C (gcc 4.9.4) archived 9 C (gcc 4.8.5) archived 10 C++ (g++ 7.2.0) archived 11 C++ (g++ 6.4.0) archived 12 C++ (g++ 6.3.0) archived 13 C++ (g++ 5.4.0) archived 14 C++ (g++ 4.9.4) archived 15 C++ (g++ 4.8.5) archived 16 C# (mono 5.4.0.167) archived 17 C# (mono 5.2.0.224) archived 18 Clojure (1.8.0) archived 19 Crystal (0.23.1) archived 20 Elixir (1.5.1) archived 21 Erlang (OTP 20.0) archived 22 Go (1.9) archived 23 Haskell (ghc 8.2.1) archived 24 Haskell (ghc 8.0.2) archived 25 Insect (5.0.0) archived 26 Java (OpenJDK 9 with Eclipse OpenJ9) archived 27 Java (OpenJDK 8) archived 28 Java (OpenJDK 7) archived 29 JavaScript (nodejs 8.5.0) archived 30 JavaScript (nodejs 7.10.1) archived 31 OCaml (4.05.0) archived 32 Octave (4.2.0) archived 33 Pascal (fpc 3.0.0) archived 34 Python (3.6.0) archived 35 Python (3.5.3) archived 36 Python (2.7.9) archived 37 Python (2.6.9) archived ๐ 38 Ruby (2.4.0) ๐ 39 Ruby (2.3.3) ๐ 40 Ruby (2.2.6) ๐ 41 Ruby (2.1.9) 42 Rust (1.20.0) archived 43 Plain Text Renamed from Text (plain text)
.44 Executable Not changed. ๐ 45 Assembly (NASM 2.14.02) ๐ 46 Bash (5.0.0) ๐ 47 Basic (FBC 1.07.1) ๐ 48 C (GCC 7.4.0) ๐ 49 C (GCC 8.3.0) ๐ 50 C (GCC 9.2.0) ๐ 51 C# (Mono 6.6.0.161) ๐ 52 C++ (GCC 7.4.0) ๐ 53 C++ (GCC 8.3.0) ๐ 54 C++ (GCC 9.2.0) ๐ 55 Common Lisp (SBCL 2.0.0) ๐ 56 D (DMD 2.089.1) ๐ 57 Elixir (1.9.4) ๐ 58 Erlang (OTP 22.2) ๐ 59 Fortran (GFortran 9.2.0) ๐ 60 Go (1.13.5) ๐ 61 Haskell (GHC 8.8.1) ๐ 62 Java (OpenJDK 13.0.1) ๐ 63 JavaScript (Node.js 12.14.0) ๐ 64 Lua (5.3.5) ๐ 65 OCaml (4.09.0) ๐ 66 Octave (5.1.0) ๐ 67 Pascal (FPC 3.0.4) ๐ 68 PHP (7.4.1) ๐ 69 Prolog (GNU Prolog 1.4.5) ๐ 70 Python (2.7.17) ๐ 71 Python (3.8.1) ๐ 72 Ruby (2.7.0) ๐ 73 Rust (1.40.0) ๐ 74 TypeScript (3.7.4) - โ Added route
GET /languages/:id
for getting all attributes of specified language.- Commits: @2a31e963
- โ Added route
GET /languages/all
for getting a list of all languages (archived and active).- Commits: @2a31e963
- โ Added route
DELETE /submissions/:token
for deleting specified submission. Only authorized requests (users) are allowed to delete a submission.- Commits: @3365e3c8
- Added configuration variable
ENABLE_SUBMISSION_DELETE
with default value set tofalse
. By default you cannot delete a submission as long as this variable is set tofalse
. When set totrue
then only authorized requests (users) can delete specific submission.- Commits: @79e1de95
- โ Added info routes
GET /about
,GET /version
,GET /license
andGET /isolate
. Last routeGET /isolate
returns result fromisolate --version
command.- Commits: @9f5202a5
๐ Improvements
- ๐ Updated base image to
judge0/api-base:1.0.0
which uses Debian "buster" and has installed Ruby 2.7.0. - ๐ Improved handling of an server error when one or more submission attributes cannot be serialized to JSON without Base64 encoding. User now gets an error with instructions to use
base64_encoded=true
query parameter.
๐ Bug Fixes
- ๐ Fixed example in configuration for using
ALLOW_ORIGIN
variable with multiple origins.- Commits: @21d0202a
- Fixed a bug where value of
MAX_MAX_PROCESSES_AND_OR_THREADS
was used as default value formax_processes_and_or_threads
attribute of submission, whereasMAX_PROCESSES_AND_OR_THREADS
should be used.- Commits: @563f8ea2
Other Changes
- Increased maximum allowed
compiler_options
andcommand_line_arguments
length to 512 characters. - ๐จ Increased default value of
MAX_PROCESSES_AND_OR_THREADS
to 60.- Commits: @563f8ea2
- Increased default value of
MAX_MAX_PROCESSES_AND_OR_THREADS
to 120.- Commits: @563f8ea2
- ๐ Changed default value of
RAILS_ENV
toproduction
.- Commits: @be55ca65
- ๐ Changed default value of
INTERVAL
to 0.1.- Commits: @be55ca65
- โก๏ธ Updated year in LICENSE.
- Commits: @679fb2ba
- Added environment variables
JUDGE0_{HOMEPAGE,SOURCE_CODE,MAINTAINER,VERSION}
. Isolate sandbox inherits these variables and they are now available for use in user code.- Commits: @9f5202a5
๐ Deployment Procedure
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.5.0/judge0-api-v1.5.0.zip unzip judge0-api-v1.5.0.zip
Run all services and wait few seconds until everything is initialized:
cd judge0-api-v1.5.0 docker-compose up -d db redis sleep 10s docker-compose up -d sleep 5s
Your instance of Judge0 API v1.5.0 is now available at
http://<IP OF YOUR SERVER>:3000
.
-
v1.5.0-nim
January 03, 2020 -
v1.4.0 Changes
October 31, 2019v1.4.0 (2019-10-31)
๐ New Features
- Added support for
compiler_options
andcommand_line_arguments
. - Added configuration variables
ENABLE_COMPILER_OPTIONS
,ALLOWED_LANGUAGES_FOR_COMPILER_OPTIONS
andENABLE_COMMAND_LINE_ARGUMENTS
for controlling usage of compiler options and command line arguments.
๐ Security Improvements
- ๐ง Run compilation process for compiled languages inside sandbox and use values of limit configuration variables for controlling sandbox resources.
- ๐ Move application location from
/usr/src/api
to/api
to prevent untrusted code from reading it.- Commits: @0f1b07fe
Other Changes
- 0๏ธโฃ Don't link math library for C language by default. You now need to send
-lm
incompiler_options
.- Commits: @619a3bbe
๐ Deployment Procedure
๐ณ 1. Install Docker and Docker Compose. ๐ 2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.4.0/judge0-api-v1.4.0.zip unzip judge0-api-v1.4.0.zip
Run all services and wait few seconds until everything is initialized:
cd judge0-api-v1.4.0 docker-compose up -d sleep 10s
Your instance of Judge0 API v1.4.0 is now available at
http://<IP OF YOUR SERVER>:3000
.
- Added support for
-
v1.4.0-vlang
November 01, 2019 -
v1.4.0-nim
November 02, 2019