Virtual Programming Lab

Activities ::: mod_vpl
Maintained by Juan Carlos Rodríguez-del-Pino
VPL is an activity module to manage programming assignments

Virtual Programming Lab 4.2.3

Moodle 3.11, 4.0, 4.1, 4.2, 4.3
Released: Saturday, 3 February 2024, 2:31 AM

VPL - Virtual Programming Lab for Moodle

VPL Logo

VPL 4.2.3 Release Notes

VPL CI

Introduction

This document provides an overview of the updates in version 4.2.3 of the Virtual Programming Lab (VPL). Aimed at enhancing the VPL's functionality and user experience within Moodle, this release addresses various issues found in version 4.2.2 and introduces several improvements.

Bug Fixes

  • Directory Name Change in Editor: Addressed the issue of changing the directory name for a group of files, allowing modification, addition, and partial removal of directory names.
  • VPL Activities Listing Correction: Rectified an error that affected the listing of VPL activities when filtered by section.
  • cmidnumber Modification Bug: Resolved an issue that prevented modifications to the cmidnumber in the VPL activity settings.
  • Similarity Report Bug: Fixed the line processing in generic tokenizer engine resolving the bad report of similarity.
  • Diff comparator Memory Limitation: Introduced a limitation on the diff comparator matrix size to prevent memory overuse.
  • Grade Value Error Handling: Addressed an issue in the automatic evaluation process where non-numeric grade values were mishandled.

Interface Enhancements

  • Activity Description in Editor: Improved editing "Required files," "Execution files," and "Cases file" by incorporating the activity description directly into the interface.
  • Password Override Functionality: Enhanced the override functionality by including the activity password. This allow the use of different password for different students.
  • Removal of Network and SEB Restrictions for Graders: Removed network and Safe Exam Browser (SEB) restrictions for graders, allowing unrestricted access to activities for them.
  • SEB Configuration Key Check: Implemented Configuration Key verification for access to activities using the SEB.
  • Revelation of Passwords and SEB Keys: Enabled the display of passwords and SEB keys on the activity information page for easier administration.
  • List of VPLs in Course: Added the "Virtual Programming Labs" report to the course report submenu for easier access.

Integration Enhancements

  • Language Support Expansion: Added support for C# (cs, csproj), F# (fs, fsproj), and VisualBasic (vb, vbproj) using dotnet.
  • Jail's URL: Modified the procesing of the ports of the Jail's URL to improve compatibility using jails in complex networks (E.g. behind NATs or containers environments).
  • Student Comments Field in externallib: Added the comments field for students in the externallib for save and open actions.
  • Echo Input Removal in Testing: Removed echo input during tests to streamline results.
  • Optimization of LC_ALL Setting: Optimized the configuration of the LC_ALL environment variable for enhanced system compatibility.

Compatibility

This version of VPL is compatible with the following: - Moodle: Versions 3.11 to 4.3. - PHP: Versions 7.4 to 8.1.

Known Issues

  • JQuery-UI and Boost Theme Incompatibility: The editor interface of VPL, which uses JQuery-UI, may conflict with the Boost theme in certain cases, potentially causing issues with the theme's drawer toggles while on the editor page.

Upgrading from a Previous Version

To upgrade to VPL 4.2.3 without losing existing plugin data:

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

Release Notes for VPL 4.2.2 for Moodle

VPL CI

Overview

This release is a bugfix update for version 4.2.1 of the Virtual Programming Lab (VPL) for Moodle.

Bugfixes

  • ID number: A bug where the "ID number" of the course module was replaced by the course module ID has been fixed. This bug previously prevented the assignment of names to VPL activities for identification in grade calculation formulas.
  • Improved access control checks: Access control has been enhanced to include checks for user enrollment in the course, ensuring more secure access to VPL activities avoiding bad system level capabilities configuration or non revoked capabilities issues.
  • get_name_fields(): This bugfix addresses an issue related to the function get_all_user_name_fields(). Starting from Moodle 4.1 version, this function has been deprecated. To resolve this problem, VPL now utilizes \core_user\fields::get_name_fields() if it's available, while maintaining compatibility with previous Moodle versions.

Compatibility

This VPL version has been validated with: - Moodle: Versions 3.9 to 4.3 - PHP: Versions 7.4 to 8.1.

Known issues

  • JQuery-UI and Boost Theme Incompatibility: VPL utilizes JQuery-UI for its editor interface, which may be incompatible with the Boost theme in certain scenarios. This may lead to issues when toggling the left and right drawers in the Boost theme while the user is on the editor page.

Upgrading from a previous version

Upgrading to this version of VPL retains all existing plugin data. Direct upgrades from VPL 2.4 are supported. Please follow these steps:

  1. Upgrade your Moodle instance to a supported version.
  2. After the Moodle upgrade, proceed with the VPL upgrade.

Release Notes for VPL 4.2.1 for Moodle

VPL CI

Overview

This release is primarily a bugfix update for version 4.2.0 of the Virtual Programming Lab (VPL) for Moodle, though it also incorporates several enhancements.

Bugfixes

  • Debugging
    Fixed an issue where the run script was not being sent during debugging, thus preventing debugging for C and C++ languages due theirs debugging script relies on the run script.

  • Checkall Button
    Removed the "Checkall" button when the user lacks the necessary permissions to activate it.

  • Evaluation Results Retrieval
    Resolved a bug that prevented retrieval of evaluation results in the test of tests in the "Execution files" option. This problem appeared if the teacher had not made a submission in that particular activity.

  • Localization
    Added missing internationalization (i18n) strings.

  • Tokenizer Engine
    Corrected and enhanced the performance of the VPL tokenizer engine.

Improvements

  • Rust Support
    Introduced support for the Rust programming language, including functionalities for running, debugging, evaluating, and syntax highlighting.

  • Fullscreen Experience
    Refined the mechanism for transitioning to fullscreen mode in the VPL IDE, enhancing compatibility with other Moodle Themes.

  • Enhanced Automatic Evaluation
    The "Testing Tests" feature within the "Execution Files" option, originally launched in VPL 4.2.0, now generates a unified report. This report is accessible from the comments panel and offers a more organized and improved presentation of evaluation results.

  • Directory Rename
    Enabled directory renaming within the editor environment through double-clicking on the directory in the file list panel, removing the need of renaming each affected file individually.

  • PHP Similarity Engine
    The system will employ the C++ similarity engine for processing PHP files, pending the development of a dedicated tokenizer for PHP.

Compatibility

This VPL version has been validated with:
- Moodle: versions 3.9 to 4.2.2 and 4.3Beta
- PHP: versions 7.4 to 8.1.

Known issues

  • JQuery-UI and Boost Theme Incompatibility
    VPL uses JQuery-UI for its editor interface, which is incompatible with the Boost theme in some scenarios. This causes issues with toggling the left and right drawers in the Boost theme.

Upgrading from a previous version

Upgrading retains all existing plugin data. Direct upgrades from VPL 2.4 are supported.

Warning: Due to the use of JavaScript in this plugin, if you find that the editor has stopped working after upgrading, the Moodle administrator might need to purge all caches. To do this, navigate to Site administration -> Development -> Purge caches. Additionally, some users may need to clear their browser's cache using Ctrl + F5.

Release of version 4.2.0 of VPL for Moodle

VPL CI

This update brings enhanced user functionality, improved performance, and several bug fixes to Virtual Programming Lab (VPL) for Moodle.

Improvements

  • Read-only files in the IDE
    Files appearing in both "required files" and "execution files" are viewed as read-only by students. Although students can view the "required file", they cannot modify it. The "execution files" version is used during run, evaluation, etc.

  • Unified Icon Style
    The Monologo icon has been introduced, aligning the VPL activity icon style with other Moodle activities. Previously, the VPL icon displayed with black lines.

  • Enhanced Activity Import Checks
    New checks and messages alert users when a "based on" activity is missing during VPL activity import or restoration. If an activity with the same name isn't found, a warning message is shown. This prevents silent loss of "based on activity" that occurred in previous versions. The check also triggers if a "based on" activity is deleted.

  • Detailed Course Overview
    Users can now optionally view detailed configurations of each VPL activity on a single page when using the "Virtual programing labs" report in the administration menu of any VPL activity.

  • Enhanced Editor Interface
    The editor now displays a status line showing file name, cursor position (row and column), and programming language.

  • Global Search Integration
    Thanks to @Astor-Bizard, users can use Moodle's global search to locate VPL activities based on activity names and descriptions.

  • Performance Optimizations
    Several actions, including Virtual programming labs report, Submissions download and List submissions report, have been optimized for reduced database access and memory usage, enhancing response times and resource efficiency.

  • New Language Support
    Added support for the PSeInt programming language.

  • Enhanced Automatic Evaluation
    The plugin now supports running tests using teacher-provided solutions, ensuring the accuracy of evaluations for different activity solutions. Users can access this feature by navigating to the "Execution files" option and pressing the "Evaluate" button.

    Note: The "Evaluate" button in the "Execution files" no longer evaluates the teacher's submission.

  • Variation Management
    The variation management interface has been simplified. Additionally, if a variation is used in an activity, the "List submissions" will display the assigned variation for each student.

Bugfixes

  • Editor Update
    Users only need to modify the submission user comment to allow saving a new submission.

  • Activity remains marked as 'Overdue' post-submission Adjusted due date and activity completion logic to correctly reflect VPL submission status in student Timeline.

  • JQuery-UI Incompatibility with Boost theme
    VPL uses JQuery-UI for its editor interface, which is incompatible with the Boost theme in some scenarios. This causes issues with toggling the left and right drawers in the Boost theme. As a temporary solution, JQuery-UI usage has been limited to the editor. Future releases will replace JQuery-UI with an alternative solution. > Note: The issue persists in this VPL version.

Compatibility

This VPL version has been validated with:

  • Moodle: versions 3.9 to 4.2.2
  • PHP: versions 7.4 to 8.1.

Upgrading from a previous version

Upgrading retains all existing plugin data. Direct upgrades from VPL 2.4 are supported.

> Warning: Due to the use of JavaScript in this plugin, if you find that the editor has stopped working after upgrading, the Moodle administrator might need to purge all caches. To do this, navigate to Site administration -> Development -> Purge caches. Additionally, some users may need to clear their browser's cache using Ctrl + F5.

Release of Version 4.1.1 of VPL for Moodle

This update brings enhanced user functionality, improved performance, and several important bug fixes to VPL for Moodle.

Improvements

  • Graders are no longer required to enter a password for VPL activities that require one.
  • The VPL's web service now has an enhanced scope, allowing users with the necessary permissions to open, save, evaluate, and get_results for other users. This is facilitated through the addition of a new 'userid' parameter in the respective functions.
  • For VHDL language, GHDL is now the default compiler. If GHDL isn't available, the system will automatically switch to FreeHDL for compatibility.
  • We've added a new run script for direct access to the execution server command line. This must be manually selected from the execution options page and won't be used automatically based on file extensions. This powerful feature allows students to use the command line for compiling and executing their code. Note: Code files edited in VPL will be simultaneously updated on the execution server when saved.

Bugfixes

  • Fixed an issue in the file router.php in the PHP run script (kudos to @breeze833 for spotting this).
  • Resolved the improper use of XMLRPC introduced in the previous version.
  • Fixes the use of PHP CLI by eliminating an obsolete command line parameter when using it.
  • Improved the performance of the code highlighter based on the ACE editor.
  • The VPL plugin's JSON decoding is now more resilient, tolerating invalid UTF-8 characters. This issue surfaced while trying to fetch the 'ddd' version that displayed German characters in non-standard encoding.

Compatibility

This version of VPL has been tested under the following software versions (where applicable):

  • Moodle: from version 3.9 to version 4.2.
  • PHP: from version 7.4 to version 8.1.

Upgrading from a previous version

You can upgrade from VPL 2.4. Upgrading from 4.1.0 does not change the data used by the plugin. We strongly recommend reviewing all intervening release notes between your current version and VPL 4.1.1 before upgrading, to ensure that you're informed about all changes and potential impacts on your usage.

Due to the use of JavaScript in this plugin, the Moodle administrator may need to purge all caches (Site administration -> Development -> Purge caches) after updating. Additionally, some users may need to clear their browser's cache (Ctrl + F5). This issue seems to have been resolved in Moodle 4.2.

Release of Version 4.1.0 of VPL for Moodle

This release includes fixes and improvements for VPL version 4.0.1.

Improvements

  • Includes a new generic tokenizer (VPLT) for the similarity feature. This tokenizer will allow the creation of specific tokenizers for new languages quickly. (Contributor: David Parreño Barbuzano (losedavidpb))
  • The WebService now accepts binary files using Base64. See the WebService API for more details.
  • VPL has set the FEATURE_CONTROLS_GRADE_VISIBILITY. Now, only VPL will control the visibility of the grade marks of VPL activities.
  • Improves compatibility of XML-RPC and JSON-RPC. Now JSON does not escape Unicode characters.
  • Now the activity password request allows you to unmask the password.

Bugfixes

  • Fixed some include paths.
  • Fixed events using context.
  • Updated code to be compatible with Moodle 4.2.

Compatibility

This VPL version has been tested under the following software versions (when available):

  • Moodle: from version 3.9 to version 4.2.
  • PHP: from version 7.4 to version 8.1.

Upgrading from a previous version

There are minor changes in the DB to align default field values with their default values. Also, the FEATURE_CONTROLS_GRADE_VISIBILITY in a production server may need to go to the grading book to unhide specific user grades, hidden using the grading book. If you are updating from a VPL version previous to 4.0.1, see the release notes of the version released after yours. You can update directly from VPL 2.4.

Due to the use of JavaScript in this plugin, after updating, the Moodle administrator may need to purge all caches (Site administration -> Development -> Purge caches), and some users may need to clear their browser’s cache (Ctrl + F5). This issue seems to be resolved in Moodle 4.2.

VPL - Virtual Programming Lab 4.0.1 release notes

This release includes fixes and improvements for the VPL. 4.0.0 version.

Bugfixes

  • Fixes bug that prevents downloading files if the Moodle debugging mode is on.
  • Fixes the disappearance of the setting navigation in the Classic Theme of Moodle 4.
  • Fixes HTML in the override actions that prevent seeing action buttons when using a nonstandard theme.
  • Restores CLI functionality in PHP run script that was lost in the 4.0.0 version.
  • Fixes bug in Prolog run script that shows an error message in execution.
  • Fixes bug in minizinc run script that shows an error message in execution.

Small improves

  • Improves calendar and timeline support with new i18n strings.
  • Adds support for the expected completion date event.
  • Improves activity header compatibility for Moodle 4.
  • Adds integration with edit dates report plugin.
  • Uses the Moodle lock system instead of the VPL lock system.
  • Adds SmartTV detection for the terminal.

Updating from a previous version

There is no special warning when updating the 4.0.0 version to this one. This update does not change the DB or other data used. If you are updating from a VPL version previous to 4.0.0 see the release notes of the version released after yours. You can update directly from VPL 2.4.

Due to the use of JavaScript in this plugin after updating the Moodle administrator may need to purge all caches (Site administration -> Development -> Purge caches) and some users may need to clear the browser’s cache (Ctrl + F5).

VPL - Virtual Programming Lab 4.0.0 release notes

This version includes support for JSON-RPC, improves compatibility with Moodle 4, and fixes bugs on VPL. 3.5.0+.

  • The plugin now can use JSON-RPC instead of XML-RPC to communicate with the execution server. Notice that the execution server (vpl-jail-system) must be version 3.0.0 or higher. A new switch in the plugin configuration allows selecting the use of JSON-RPC or XML-RPC (default JSON-RPC). This feature removes the need for the PHP-xmlrpc extension.
  • The compatibility with Moodle 4 has been improved by:
    • Removing the show of the activity description on each page.
    • Changing the plugin logo to one with the new Moodle 4 icon style.
  • Adds support for running web applications (PHP and HTML) using a local browser. This feature reduces server resources needed drastically and improves development including updating code without restarting the running task. This feature requires execution server V2.8 or later.
  • The web services have been improved. Now a teacher can retrieve the submission of a student.
  • Fixes a bug introduced in the previous version that prevents to set manually a zero grade mark.
  • This version is compatible and has been tested with PHP from version 7.4 to PHP version 8.0.

VPL - Virtual Programming Lab 3.5.0+ release notes

This is a bug-fix release of VPL. 3.5.0.

Fixes and improvements from VPL 3.5.0

Release notes of VPL 3.5.0

Prerequisites

  • Moodle 3.8 or higher
  • PHP 7.3 or higher

New functionalities

This release includes the override feature thanks to @Astor-Bizard from the Caseine Project. This feature allows to set in a VPL activity a different startdate, duedate, reduction by evaluation and free evaluations for specific users or groups.

Small improvements

  • Shows variations assigned to users in the descripción in the code editor.
  • Adapts extend settings navigation to support Moodle 4.
  • Applies filters to the activity name display.
  • Run scripts adds environment vars MOODLE_USER_ID, MOODLE_USER_NAME, and new MOODLE_USER_EMAIL.

Bug fixes

  • Fixes bug that shows the students the grade reduction in comment titles.
  • Fixes bug that removes variation title when updating activity setting.
  • Fixes performance problem due to regex expression inefficiency when showing evaluation report.
  • Fixes reports of students working periods when no data.
  • Fixes bug setting $PAGE URL. Reported by @pavelsokolov issue #128.
  • Fixes bug of handling decimal numbers internationalization.

Programming languages

  • Adds support for Julia by adding a default run script. Julia is detected when using files with the jl file extension.
  • Removes obsolete swipl command-line option in Prolog run script.

Version information

Version build number
2024011312
Version release name
4.2.3
Can be updated from
3.0, 3.0.1 (2014032712), 3.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5 (2016071800), 3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4 (2016122912), 3.3, 3.3.1, 3.3.2, 3.3.3, 3.3.4, Bad release 3.3.4, badre3.3.4, 3.3.5 (2019102116), 3.3.6, 3.3.7 (2020041317), 3.3.8 (2020080218), 3.4.0 (2021011014), 3.4.1 (2021030820), 3.4.2BAD, 3.4.2 (2021033113), 3.4.3 (2021052113), 3.4.3+ (2021052513), 3.5.0 (2022040512), 3.5.0+ (2022052312), 4.0.0, 4.0.1 (2022093012), 4.1.0 (2023042712), 4.1.1 (2023061712), 4.2.0 (2023082512), 4.2.1 (2023092512), 4.2.2 (2023101312)
Maturity
Stable version
MD5 Sum
65bc9c1eb3c8d5f02f47e11a60b81e89
Supported software
PHP 7.4, Moodle 3.11, PHP 8.0, Moodle 4.0, PHP 8.1, Moodle 4.1, Moodle 4.2, Moodle 4.3
  • Latest release for Moodle 3.11
  • Latest release for Moodle 4.0
  • Latest release for Moodle 4.1
  • Latest release for Moodle 4.2
  • Latest release for Moodle 4.3

Version control information

Version control system (VCS)
GIT
VCS repository URL
VCS tag
V4.2.3

Default installation instructions for plugins of the type Activities

  1. Make sure you have all the required versions.
  2. Download and unpack the module.
  3. Place the folder (eg "assignment") in the "mod" subdirectory.
  4. Visit http://yoursite.com/admin to finish the installation