Release notes for WeBWorK 2.20

From WeBWorK_wiki
Revision as of 19:02, 20 June 2025 by Dglin (talk | contribs) (Add vulnerability fixes)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Construction.png This article is under construction. Use the information herein with caution until this message is removed.
Warning : This page should be considered incomplete until the release of 2.20 has been announced

New WeBWorK Features

  • Fix several security vulnerabilities [1], [2], [3], [4], [5]
  • Improvements to efficiency of database calls ([6], [7], [8], [9], [10], [11], [12])
  • Fix a memory leak, which should improve memory usage by WeBWorK processes [13]
  • Change student and instructor emails from plain text to HTML [14]
  • Allow the ability to synchronize section information from your Learning Management System when using LTI authentication [15]
  • You can now load a problem directly from the Problem Editor, or start with any of the sample problems [16]
  • Students can now use achievement items directly from the Problem Set page [17]
  • The "Upgrade Courses" feature in Course Administration now checks and fixes additional things:
    • Data types of database columns are checked and corrected [18]
    • Links to standard libraries and problems (Open Problem Library, Contrib, Student Orientation) are added if they are not present. [19]
  • There are now more options for adding users during new course creation (e.g. adding multiple instructors during course creation) [20]
  • Add the ability to manage secrets for two-factor authentication to the admin interface [21]
  • More configurability for when grades are sent back to the Learning Management System using LTI [22]
  • Update the Shibboleth authentication module to work with the current version of WeBWorK [23]
  • Fix error in displaying how often grades are sent back to the LMS [24]
  • Problem editor upgraded to CodeMirror 6 - introduces new features: accordioning, autocompletion, improved syntax highlighting [25]
  • Add option for LTI 1.3 where students can work on assignments even if they are not linked to the LMS and grade passback is set to homework [26]
  • Importing set definition files with paths to problem files that contain spaces now works [27]

New PG Features and Improvements

  • Improvements to degree n matrices (matrices/tensors of more than two dimensions) [28]
  • The interface with Rserve has been rewritten within PG. The `Statistics::R::IO::Rserve` package is no longer required or used [29]
  • Improvements to the GraphTool [30]
    • Tools for polygons [31]
    • Sine wave tool added [32]
    • Vector tool added [33]
    • Improvements to fill tool [34]
  • Improvements to contextReaction.pl [35]
  • New contextExtensions.pl [36]
    • Fraction contexts are now extensions of the parent context [37]
    • Units now implemented as MathObject classes - contextUnits.pl [38]
  • New plots.pl macro that allows a more modern, more efficient way of generating a wide variety of plots. See documentation at https://webwork.maa.org/pod/pg/macros/graph/plots.html [39]

Breaking changes

  • custom_problem_grader_0_60_100 has been removed. Problems should be converted to custom_problem_fluid
  • Change in behaviour when comparing a degree 1 matrix and a degree 2 matrix [40]

Deprecated Functionality

Updated Dependencies

  • It is recommended to install Cpanel::JSON::XS
  • Any version of perltidy
  • Several perl packages are no longer required, and can be removed from your system
    • Array::Utils
    • Email::Sender::Simple
    • HTML::Tagset
    • HTML::Template
    • IO::Socket::SSL
    • JSON
    • JSON::MaybeXS
    • Net::LDAPS
    • Net::SMTP
    • Net::SSLeay
    • Padwalker
    • Path::Class
    • Safe
    • Statistics::R::IO
    • Template

Upgrade Instructions

  • First update the webwork2 and pg code. For this run
    > cd /opt/webwork/webwork2
    > git fetch origin
    > git checkout WeBWorK-2.20
    > git pull
    > cd /opt/webwork/pg
    > git fetch origin
    > git checkout PG-2.20
    > git pull
  • Update the javascript and css assets for webwork2 and pg with
    > cd /opt/webwork/webwork2/htdocs
    > npm ci
    > cd /opt/webwork/pg/htdocs
    > npm ci
  • Run bin/check_modules.pl to ensure you have all programs/modules (although there are no new dependencies for this release).
  • Restart the webwork2 server: >sudo systemctl restart webwork2
  • If you use the webwork2 job queue, then that will also need to be restarted. Do that with: >sudo systemctl restart webwork2-job-queue
  • You should update the modelCourse via: rsync -av /opt/webwork/webwork2/courses.dist/modelCourse/ /opt/webwork/courses/modelCourse/
  • Upgrade the admin course by executing the upgrade_admin_db.pl script.
  • Make sure to upgrade courses from the admin course to relegate changes to the database.