Releases: jcrodriguez-dis/moodle-mod_vpl
VPL 4.2.5
VPL (Virtual Programming Lab) 4.2.5 Release Notes
Overview
The VPL 4.2.5 update introduces several enhancements and fixes, with a primary focus on ensuring compatibility with Moodle 4.5.
New Features and Enhancements
-
Execution Scripts:
- Added a new C# execution script with NUnit support.
- Introduced execution scripts for the "make" tool.
- Improved R script execution for better performance in evaluation mode.
- Enhanced automatic detection of tools beyond programming languages.
-
Overrides:
- Enhanced the interface to allow copying an override as a base for creating a new one.
-
Error Handling:
- Improved error handling for Jail server connection issues.
-
Security:
- Set default behavior to reject invalid HTTPS certificates.
Bug Fixes
-
Display Fixes:
- Resolved an issue with the display of “Compilation” and “Execution” panes to ensure they use fixed-width fonts.
-
Multi-User Overrides:
- Fixed a bug that prevented correct management of multi-user overrides.
Compatibility
This version of VPL is compatible with the following:
- Moodle: Versions 3.9 to 4.5
- PHP: Versions 7.4 to 8.3
Note: The VPL release number is independent of the Moodle release number, unlike other modules.
Known Issues
- JQuery-UI and Boost Theme Incompatibility:
- The VPL editor interface, which uses JQuery-UI, may conflict with the Boost theme. This can occasionally cause issues with the theme's drawer toggles on the editor page.
Upgrading from a Previous Version
It is recommended to update to the latest version to benefit from recent security and bug fixes. Additionally, updating VPL Jail Servers is strongly advised.
Steps to upgrade to VPL 4.2.5 without losing existing plugin data:
- Ensure your Moodle instance is updated to a supported version.
- Proceed with the VPL plugin upgrade after updating Moodle. Upgrades from VPL version 2.4 onwards are supported.
VPL 4.2.4
VPL 4.2.4 Release Notes
Introduction
This document provides an overview of the updates in version 4.2.4 of the Virtual Programming Lab (VPL). This release addresses various issues found in version 4.2.3, including critical security fixes. Updates should be made immediately.
Bug Fixes
- Critical security flaw:
- A critical security flaw has been discovered in VPL (@vincentscode Vincent Schmandt) affecting all versions prior to 4.2.4.
- Additionally, this issue is related the VPL Jail Server. It is strongly recommended to update your VPL Jail Servers to the latest version according to the release notes instructions.
- If you are currently using the security parameters URLPATH and/or TASK_ONLY_FROM in your VPL Jail Servers's configuration, you are better protected against an attack. If you are not using these parameters, you may implement them as an immediate protection measure before updating. See VPL Jail System security parameters.
- Running tests of test with variations: Fixes bug that prevents the correct testing of activities with variations.
- Hide/show content malfunction: Fixed a bug that prevented the use of the hide/show content feature.
- HTML overconversion: Fixed the overconversion of HTML when showing section names in VPL activities reports.
- Code file highlighting and result processing: Fixed a bug causing issues with code file highlighting and result processing when multiple submissions were shown on the same page.
- Identification of task: Fixed a bug that, in some cases, led to the incorrect stopping of tasks.
- Remove custom vpl_evaluate.cpp file: Fixed a bug that removed a custom vpl_evaluate.cpp file, resulting in incorrect behavior.
- Testing numbers: Fixes the test of output of type numbers in the default VPL tester.
- Showing compilation and execution: Fixes a CSS bug that prevents the use of monospace fonts when showing the compilation and execution. @tats-u
Interface Enhancements
- Hide/show icon: Show cursor pointer when hovering over the hide/show icon.
- Hide grade form: Avoid showing the grade form if the activity is not gradable.
- Bulck removing automatic evaluation: If you want to remove automatic evaluation from the grade book, after unsetting automatic evaluation, you can run "evaluate all," getting a new evaluation suggestion and removing previous automatic grading.
- Relax evaluation tags detection: The evaluation parser now accepts spaces around the evaluation report tags. @Astor-Bizard
- Add Moodle activity ID: Added the MOODLE_ACTIVITY_ID environment variable to the execution environment. @FeldrinH
- Enhance cabilities assigment: Aligned capability assignments with other standard modules by removing the prohibition on different roles from having the some capability.
Integration Enhancements
- Using global modules in Node.js: Added support for global modules in Node.js.
Compatibility
This version of VPL is compatible with the following:
- Moodle: Versions 3.9 to 4.4
- PHP: Versions 7.4 to 8.3
Please note that the VPL release number is not related to the Moodle release number, unlike other modules.
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
It is recommended that you update your plugin to the latest version to obtain all recent security and bug fixes. Additionally, it is strongly recommended to update your VPL Jail Servers.
To upgrade to VPL 4.2.4 without losing existing plugin data:
- Ensure your Moodle instance is updated to a supported version.
- Proceed with the VPL plugin upgrade following the Moodle update. Upgrades from VPL version 2.4 onwards are supported.
VPL 4.2.3 for Moodle 3.9
This variant of VPL 4.2.3 keeps compatibility with Moodle 3.9.
Tested on Moodle 3.9 (Not tested in previous versions)
For details see VPL 4.2.3 release notes.
VPL 4.2.3
VPL 4.2.3 Release Notes
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: ImplementedConfiguration 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
) usingdotnet
. - 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 theexternallib
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:
- Ensure your Moodle instance is updated to a supported version.
- Proceed with the VPL plugin upgrade following the Moodle update. Upgrades from VPL version 2.4 onwards are supported.
VPL 4.2.2
Release Notes for VPL 4.2.2 for Moodle
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. 13d514b
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:
- Upgrade your Moodle instance to a supported version.
- After the Moodle upgrade, proceed with the VPL upgrade.
VPL 4.2.1
Release Notes for VPL 4.2.1 for Moodle
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.2.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.
VPL 4.2.0
Release of version 4.2.0 of VPL for Moodle
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
Now supports running tests using teacher-provided solutions, verifying the accuracy of evaluations for various activity solutions. User can access this feature going to "Execution files" option and pushing the evaluate botton that no longer evaluate user submisson. -
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.
VPL 4.1.1
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
Upgrading does not change the data used by the plugin. You can upgrade directly from VPL 2.4.
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.
VPL 4.1.0
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 4.0.1
Release of VPL 4.0.1
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.
Updates 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).