Library versions and automated assessment

Many exercises on this platform use automated assessment to check the correctness of your solutions. This means that when you submit an exercise, it is automatically checked against a set of tests that verify the correctness of the exercise.

For exercises that involve programming, the platform has a specific set libraries that are loaded into the grading environment. The exercises and grading are course-specific, and the libraries used in the exercises are also course-specific.

This means that the libraries used in the exercises may differ from the libraries used in your local development environment. For example, the libraries used in the exercises may be older or newer versions of the libraries you are using locally. This is important to keep in mind when you are working on exercises, as the behavior of the libraries may differ between your local environment and the grading environment.

Library versions

Currently, the library versions used in the grading environments are as follows:

Astro and Svelte

In Designing and Building Scalable Web Applications, when using Astro and/or Svelte, the following versions are used in package.json:

{
  "...": "...",
  "dependencies": {
    "@astrojs/svelte": "7.0.5",
    "@astrojs/mdx": "4.1.0",
    "@deno/astro-adapter": "0.2.0",
    "astro": "5.4.0",
    "better-auth": "1.2.2",
    "svelte": "5.20.5"
  },
  "devDependencies": {
    "@playwright/experimental-ct-svelte": "1.50.1",
    "@playwright/test": "1.50.1"
  }
}

Deno

In Designing and Building Scalable Web Applications and in Web Software Development, the version of Deno is 2.2.3. The deno.json configuration is as follows.

{
  "imports": {
    "@hono/hono": "jsr:@hono/hono@4.6.5",
    "ioredis": "npm:ioredis@5.6.0",
    "postgres": "npm:postgres@3.4.5",
    "scrypt": "jsr:@denorg/scrypt@4.4.4",
    "zod": "https://deno.land/x/zod@v3.23.8/mod.ts",
    "zValidator": "npm:@hono/zod-validator",
    "@std/assert@1.0.8": "jsr:@std/assert@1.0.8",
    "better-auth": "npm:better-auth@1.2.2",
    "kysely-postgres-js": "npm:kysely-postgres-js@2.0.0"
  },
  "unstable": ["kv"]
}

This means that you can either import e.g. ioredis using import { Redis } from "ioredis"; or import { Redis } from "npm:ioredis@5.6.0";.

Svelte and SvelteKit

In Web Software Development, the versions used in Svelte and SvelteKit are as follows (from package.json):

{
  "...": "...",
  "devDependencies": {
    "@playwright/experimental-ct-svelte": "1.50.1",
    "@playwright/test": "1.50.1",
    "@skeletonlabs/skeleton": "3.1.0",
    "@skeletonlabs/skeleton-svelte": "1.0.0",
    "@sveltejs/adapter-node": "5.2.12",
    "@sveltejs/kit": "2.20.0",
    "@sveltejs/vite-plugin-svelte": "5.0.3",
    "@tailwindcss/forms": "0.5.10",
    "@tailwindcss/vite": "4.0.14",
    "svelte": "5.23.1",
    "tailwindcss": "4.0.14",
    "vite": "6.2.2"
  },
  "dependencies": {
    "jose": "6.0.10"
  }
}

Dart

In Modern and Emerging Programming Languages, FITech-course series, and in Device-Agnostic Design with Flutter and Dart, the Dart version is 3.7. The relevant dependencies in pubspec.yaml are as follows:

dependencies:
  characters: 1.4.0
  equatable: 2.0.7
  test: 1.25.14
  test_process: 2.1.1

Flutter

In the FITech-course series and in Device-Agnostic Design with Flutter and Dart, when using Flutter, the Dart version is 3.5 and Flutter version 3.24.0. The relevant dependencies in pubspec.yaml are as follows:

dependencies:
  flutter:
    sdk: flutter

  flutter_test:
    sdk: flutter

  http: ^1.2.2
  nock: ^1.2.3
  flame: 1.20.0
  flame_forge2d: 0.18.2+1
  flutter_riverpod: ^2.5.1
  flutter_form_builder: 9.4.1
  form_builder_validators: 11.0.0
  get: 4.6.6
  hive_ce: 2.5.0+2
  hive_ce_flutter: 2.0.0
  go_router: ^14.2.6
  shared_preferences: ^2.2.1
  web_socket_channel: 3.0.1

Python

In the Machine Learning on the Web part of Designing and Building Scalable Web Applications and in Software Engineering with Large Language Models, the Python version is 3.11. The relevant dependencies in requirements.txt are as follows:

black==23.7.0
fastapi==0.115.12
joblib==1.4.2
pandas==2.2.3
scikit-learn==1.6.1
uvicorn==0.34.0
httpx==0.28.1

Rust

In Modern and Emerging Programming Languages, the Rust version is 1.68.2. The relevant dependencies in Cargo.toml are as follows:

assert_cmd = "2.0.8"
predicates = "2.1.5"
rand = "0.8.5"
chrono = "0.4.23"
gag = "1.0.0"
regex = "1.7.1"
clap = { version = "4.1.8", features = ["derive"] }
csv = "1.2.1"
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.95"
num = "0.4.0"
num-traits = "0.2.14"
crossterm = "0.25.0"
nom = "8.0.0"

Gleam

In Modern and Emerging Programming Languages, the Gleam version is 1.6.3. The relevant dependencies in gleam.toml are as follows:

gleam_stdlib = ">= 0.34.0 and < 0.52.0"
gleam_erlang = ">= 0.33.0 and < 1.0.0"