VPL 5.0.0 is a major release introducing enhanced Safe Exam Browser integration, Language Server Protocol support, and compatibility with Moodle 5.3.

Download VPL 5.0.0

Get the Moodle plugin from the Moodle Marketplace, or download the source archive for tag V5.0.0 from GitHub.

Download from Moodle Marketplace Download source ZIP

Overview

This release also includes improvements to execution management, security enhancements, bug fixes, and compatibility with Moodle 5.3 LTS.

Major new features

Safe Exam Browser (SEB) integration

The enhanced integration with Safe Exam Browser (SEB) simplifies SEB configuration and use with VPL, particularly in examination environments.

The increasing availability of AI-powered tools capable of solving programming problems presents new challenges for maintaining academic integrity during programming assessments. Combining SEB with VPL helps reduce the risk of students accessing unauthorized information sources and tools during examinations.

The integration introduces the following features:

This functionality is based on the work of Alejandro David Arzola Saavedra (@AlejandroDavidArzolaSaavedra) in PR #290, supervised by @jcrodriguez-dis, as part of his Bachelor's thesis in Computer Science and Engineering.

Language Server Protocol (LSP) support

VPL 5.0.0 adds an integrated Language Server Protocol (LSP) client to the code editor. LSP lets editors communicate with language servers that provide advanced programming assistance, including code completion, diagnostics, symbol navigation, and refactoring.

Depending on the connected language server's capabilities, the LSP client provides:

Watch a demonstration of the LSP client features:

Note: Feature availability and behavior depend on the connected language server. Not all language servers support every feature.

Requirements and configuration

The LSP client requires a language server for the programming language being edited. Language servers run on a VPL Jail Server, not in the user's browser or on the Moodle server.

To enable LSP support:

  1. Update the VPL Jail Server: Use version 5.0.3 or later.
  2. Install language servers: Install the appropriate language servers on the Jail Server using the install-vpl-ls-sh script and follow its installation instructions.
  3. Configure access: Specify the languages supported by each Jail Server in the Jail Server definitions.

LSP support has been tested with Python (python), Java (java), shell scripting (shellscript), C (c), and C++ (cpp).

To configure language server support, use this format in the Jail Server definitions:

ls LSPs URL_to_jail_server

For example:

ls python,java,cpp https://myjailserver.org/password

This configures a Jail Server to provide language server functionality for Python, Java, and C++. Language identifiers must follow the conventions in the Language Server Protocol specification.

The LSP client is based on work by Héctor Miguel Martín Álvarez (@HectorMartinAlvarez), under the supervision of @jcrodriguez-dis, as part of his Bachelor's thesis in Computer Science and Engineering.

Other new features

Improvements

Security fixes

Bug fixes

Compatibility

VPL 5.0.0 supports:

Note: VPL release numbers are independent of Moodle release numbers, unlike those of some other Moodle plugins.

Upgrading from a previous version

Upgrading to VPL 5.0.0 is strongly recommended to benefit from the latest security enhancements, bug fixes, and new features. Updating the VPL Jail Servers to the latest compatible version is also recommended to ensure full compatibility and access to new features.

  1. Ensure your Moodle instance is updated to a supported version.
  2. Proceed with the VPL plugin upgrade. Upgrades from VPL version 2.4 or later are supported.