All Versions
32
Latest Version
Avg Release Cycle
23 days
Latest Release
1135 days ago

Changelog History
Page 2

  • v1.8.0-extra

    May 15, 2020
  • v1.7.1 Changes

    May 06, 2020

    v1.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.

    Other Changes

    • ๐Ÿณ Set VIRTUAL_HOST environment variable in Dockerfile to value 3000.
    • โšก๏ธ Updated Telemetry Client to version c62fa63d.
    • โž• Added separated Docker Compose files for server and workers.
    • ๐Ÿ‘ท Renamed service worker to workers and api to server.

    ๐Ÿš€ 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
    
    1. Change directory to judge0-api-v1.7.1-https:

      cd judge0-api-v1.7.1-https

    2. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.

    3. 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

    4. 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
    
    1. 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

    2. 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, 2020

    v1.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.
    • Set compile CPU time limit to MAX_CPU_TIME_LIMIT.
    • Set compile wall time limit to MAX_WALL_TIME_LIMIT.
    • Redirect input from /dev/null when compiling. Thank you @gollux for your help.

    ๐Ÿš€ 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
    
    1. Change directory to judge0-api-v1.7.0-https:

      cd judge0-api-v1.7.0-https

    2. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.

    3. 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

    4. 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
    
    1. 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

    2. 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 variable REDIRECT_STDERR_TO_STDOUT that can be used for setting default behaviour for every submission.
    • โž• Added configuration variable DISALLOW_ORIGIN that can be used for disabling CORS only for specific origins.
    • Added configuration variables ALLOW_IP and DISALLOW_IP that can be used for allowing/disallowing only specific IP addresses that can use instance of Judge0 API.
    • ๐Ÿšง Added support for built in maintenance mode that can be enabled with configuration variables MAINTENANCE_MODE and MAINTENANCE_MESSAGE. In maintenance mode clients cannot create or delete submissions i.e. they cannot create new database changes.
    • โž• Added support for universal field * which returns all attributes of a submission.
    • โž• 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 and POST /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.
    • ๐Ÿ”จ Refactored submission field checking.
    • ๐Ÿ”จ Refactored setting up of default values.

    ๐Ÿ› Bug Fixes

    • Fixed a bug that ignored custom setting of configuration variables enable_per_process_and_thread_time_limit and enable_per_process_and_thread_memory_limit.
    • ๐Ÿ›  Fixed a bug where cgroups flags for isolate were chosen in the wrong conditions.
    • ๐Ÿ›  Fixed a bug that caused Internal Error because sandbox cleanup failed.
    • Fixed a bug where low memory_limit would cause Internal Error. Minimum required value for memory_limit is now 2048.

    ๐Ÿ”’ Security Fixes

    • ๐Ÿ›  Fixed a bug that allowed creation of an arbitrary size of the compile output.

    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.
    • โœ‚ Removed output of configuration settings when server or worker starts.
    • โšก๏ธ Updated all the gems except Rails to the latest versions.
    • Changed default value of enable_per_process_and_thread_memory_limit to false.
    • ๐Ÿ”ง Don't show total number of workers in /workers that is determined with configuration variable COUNT because that number is not relevant.
    • ๐Ÿ”„ Changed the default port to 80 in Docker Compose file.
    • ๐Ÿณ Limited the log size to 100 MB in Docker Compose file.
    • โž• Added logging to run-workers script.
    • โšก๏ธ 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
    
    1. Change directory to judge0-api-v1.6.0-https: cd judge0-api-v1.6.0-https
    2. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
    3. 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
      
    4. 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
    
    1. 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
      
    2. Your instance of Judge0 API v1.6.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.

  • v1.5.0 Changes

    January 02, 2020

    v1.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.
    • โž• Added route GET /languages/all for getting a list of all languages (archived and active).
    • โž• Added route DELETE /submissions/:token for deleting specified submission. Only authorized requests (users) are allowed to delete a submission.
    • Added configuration variable ENABLE_SUBMISSION_DELETE with default value set to false. By default you cannot delete a submission as long as this variable is set to false. When set to true then only authorized requests (users) can delete specific submission.
    • โž• Added info routes GET /about, GET /version, GET /license and GET /isolate. Last route GET /isolate returns result from isolate --version command.

    ๐Ÿ‘Œ 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.
    • Fixed a bug where value of MAX_MAX_PROCESSES_AND_OR_THREADS was used as default value for max_processes_and_or_threads attribute of submission, whereas MAX_PROCESSES_AND_OR_THREADS should be used.

    Other Changes

    • Increased maximum allowed compiler_options and command_line_arguments length to 512 characters.
    • ๐Ÿ–จ Increased default value of MAX_PROCESSES_AND_OR_THREADS to 60.
    • Increased default value of MAX_MAX_PROCESSES_AND_OR_THREADS to 120.
    • ๐Ÿ”„ Changed default value of RAILS_ENV to production.
    • ๐Ÿ”„ Changed default value of INTERVAL to 0.1.
    • โšก๏ธ Updated year in LICENSE.
    • Added environment variables JUDGE0_{HOMEPAGE,SOURCE_CODE,MAINTAINER,VERSION}. Isolate sandbox inherits these variables and they are now available for use in user code.

    ๐Ÿš€ 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
    
    1. 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

    2. 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, 2019

    v1.4.0 (2019-10-31)

    ๐Ÿ†• New Features

    • Added support for compiler_options and command_line_arguments.
    • Added configuration variables ENABLE_COMPILER_OPTIONS, ALLOWED_LANGUAGES_FOR_COMPILER_OPTIONS and ENABLE_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.

    Other Changes

    • 0๏ธโƒฃ Don't link math library for C language by default. You now need to send -lm in compiler_options.

    ๐Ÿš€ 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
    
    1. Run all services and wait few seconds until everything is initialized:

      cd judge0-api-v1.4.0 docker-compose up -d sleep 10s

    2. Your instance of Judge0 API v1.4.0 is now available at http://<IP OF YOUR SERVER>:3000.

  • v1.4.0-vlang

    November 01, 2019
  • v1.4.0-nim

    November 02, 2019