Release notes for WeBWorK 2.19

From WeBWorK_wiki
Revision as of 13:53, 31 May 2024 by Dglin (talk | contribs) (Clean up wording of new features)
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.19 has been announced

New WeBWorK Features

  • The attempts table has been removed. Feedback for correct/incorrect answers is now associated directly with each answer blank.
  • The PG editor now has an option to convert problems to PGML.
  • The "Hmwk Sets Editor" has been renamed to "Sets Manager", and the "Classlist Editor" is now called "Accounts Manager".
  • The "report a bug" link now points to GitHub issues rather than bugzilla.
  • File Manager updates
    • Now supports the .zip format for archiving and unarchiving.
    • Clicking on the edit link for a problem file (.pg) now opens that file in the problem editor.
  • Improvements to the Instructor Tools
    • New sort options on users/sets
  • Redesign of the PGML lab
    • All of the examples have been updated.
    • Now there are examples that include all PGML features.
    • Listing of references

New PG Features and Improvements

  • New PGML features
    • Tables -- PGML - New Syntax to create tables within PGML blocks using niceTables.
    • Tags - PGML One can now make either a div or a span within PGML with the tag [< >].
  • Creation of a Boolean MathObject context, which includes:
    • parsing of boolean expressions,
    • reduction rules with ands and ors
    • customizable true and false symbols and provision of unicode versions.
  • Adding additional methods to a Matrix MathObject, this includes:
    • the ability to create zero, permutation and elementary matrices
    • test for triangular, orthogonal, diagonal, symmetric matrices
    • test if matrices are in row echelon or reduced row-echelon forms.
  • Add new features to PGnumericalmethods including methods for
    • newtonDividedDifference, Legendre Polynomials, Newton-Cotes quadrature, Gaussian Quadrature, numerical differential equation solvers, and rootfinding techniques
  • Create a general macro parserMultipleChoice that load all the multiple choice parsers: PopUp, CheckboxList, RadioButtons, RadioMultiAnswer
  • Updated and fixed PGML horizontal rules. Rules - PGML
  • Added the repeated function to PGbasicmacros. This tests for repeated values in an array.
  • Add the methods num and den to a fraction MathObject.
  • Change the behavior of Compute. If Compute is called on a number, then a Real will now be created on that number. Before it was stringified and passed to Formula.
  • Many accessibility improvements.

Deprecated Functionality

  • All versions of PGcompoundproblem have been deprecated. Problems should be migrated to scaffold.

Upgrade Instructions

  • First update the webwork2 and pg code. For this run
    > cd /opt/webwork/webwork2
    > git fetch origin
    > git checkout WeBWorK-2.19
    > git pull
    > cd /opt/webwork/pg
    > git fetch origin
    > git checkout PG-2.19
    > git pull
    Note: Will use the main branches after the release.
  • 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
  • The following perl packages will need to be installed (run bin/check_modules.pl to ensure you have all programs/modules)
    • Archive::Zip::SimpleZip (on Ubuntu install from cpan)
    • File::Copy::Recursive (on Ubuntu install libfile-copy-recursive-perl)
    • GD::Barcode::QRcode (on Ubuntu install libgd-barcode-perl)
    • MIME::Base32 (on Ubuntu install libmime-base32-perl)
    • SQL::Abstract (on Ubuntu install libsql-abstract-perl)
  • The program inkscape is needed for conversion of svg to png for hardcopy. This is used indirectly by imagemagick's convert program. The imagemagick program may need special configuration for some operating systems to use inkscape for this. (On Ubuntu install the inkscape package with apt. No further configuration is needed.)
  • Compare any files in the /opt/webwork/webwork2/conf directory that have been copied from a .dist file to the updated distribution .dist file, and update as needed.
    • In particular make sure that the variable $admin_course_id is defined in site.conf.
    • Note that two factor authentication is enabled for all courses by default. This only affects signing in with a username and password on the login page, and not remote authentication methods. See the $twoFA variables in localOverrides.conf on how to configure two factor authentication.
    • If the setting for secrets in your webwork2.mojolicious.yml file is the same as that in the webwork2.mojolcious.dist.yml file, then make sure that you change it. That is now used to sign cookies, and would be a security vulnerability to use the default from the distribution.
  • restart the webwork2 server: >sudo systemctl restart webwork2
  • 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.