Difference between revisions of "Release notes for WeBWorK 2.19"

From WeBWorK_wiki
Jump to navigation Jump to search
(Explain about breaking change to Popup)
 
(33 intermediate revisions by 5 users not shown)
Line 6: Line 6:
   
 
* The attempts table has been removed. Feedback for correct/incorrect answers is now associated directly with each answer blank.
 
* The attempts table has been removed. Feedback for correct/incorrect answers is now associated directly with each answer blank.
* PGML native syntax for tables
 
  +
* The PG editor now has an option to convert problems to PGML although conversion is not complete and needs further editing to get a functional problem. So use with care.
* Add a PGML converter to the PG editor
 
  +
* The problem sets page has been reworked. The order that sets are presented to students has been made more intuitive, and can be sorted by the student.
* Rename the "Hmwk Sets Editor" and "Classlist Editor" to "Sets Manager" and "Accounts Manager"
+
* The "Hmwk Sets Editor" has been renamed to "Sets Manager", and the "Classlist Editor" is now called "Accounts Manager".
* Links to file bugs now go to the appropriate GitHub page.
+
* In the "Accounts Manager" all user aspects (including password and permission level) can now be set when a user is first created, and all user aspects can now be edited at once on the edit tab (there is not a separate password tab anymore).
* File Manager updates
+
* The "Report bugs" link now points to GitHub issues rather than bugzilla.
** archive and unarchive zip files
+
* The file manager has been updated with the following feaures:
** editing problem files (pg) opens the problem editor.
+
** Archiving and unarchiving now supports the .zip archive format.
* Improvements to the Instructor Tools
+
** Clicking on the edit link for a problem file (.pg) now opens that file in the problem editor.
** new sort options on users/sets
+
** The <code>course.conf</code> and <code>simple.conf</code> files are now truly not editable by users that do not have admin permissions.
**
+
* The "Instructor Tools" page has been redesigned.
* Redesign of the PGML lab
+
** There are new sort options on users and sets.
  +
** The user interface has been improved.
  +
* The PGML lab problem has been redesigned.
 
** All of the examples have been updated.
 
** All of the examples have been updated.
 
** Now there are examples that include all PGML features.
 
** Now there are examples that include all PGML features.
** Listing of references
 
  +
** The problem is now hosted on the local webwork server instead of the defunct Rochester webwork server, and so will always work.
  +
* Two-factor authentication using an authenticator app is now available, and is enabled by default (see the Two Factor Authentication section of `defaults.config`.
  +
* The course that is used for Course Administration can now be customized. It is recommended that you change from the previously hard coded "admin" course to something of your choosing. Having the name of the admin course be publicly known is a security vulnerability.
  +
* Changing tabs on the instructor course configuration page doesn't reload the page, and when the course configuration is saved the new settings take effect immediately without another page reload.
  +
* Achievement changes
  +
** The following achievement items can now be applied to sets for which the due date has passed: Cupcake of Enlargement, Cake of Enlargement, Greater Rod of Revelation, Greater Tome of Enlightenment, Lesser Rod of Revelation, Lesser Tome of Enlightenment.
  +
** A new achievement item has been added to provide students with a set of assignment extensions that they can apply on their own. Simply import the `extensions.at` achievement.
  +
* WeBWorK now supports authentication for SMTP servers. See <code>site.conf.dist</code> and <code>localOverrides.conf.dist</code> for details.
  +
* The `$sessionKeyTimeout` configuration variable has been replaced with `$sessionTimeout`, and applies more generally to session cookies.
  +
* A new student orientation set has been created, and separated from the Model course. These problems now refer to the current version of WeBWorK.
  +
* <mark>Proctor authentication fix (#2347)</mark>
  +
* When using LTI 1.3 you can now separately set the Access Token Audience (<code>$LTI{v1p3}{AccessTokenAUD}</code>) and Access Token URL (<code>$LTI{v1p3}{AccessTokenURL}</code>).
  +
* A content selection tool is available when using LTI, which if enabled by your learning management system administrator will allow instructors to select an assignment or a course to link in the LMS. See [[LTI_Authentication_(for_WeBWorK_2.18_or_newer)#Setup_Courses_To_Use_Content_Selection]].
  +
* <mark>Certbot renewal routes (#2321)</mark>
  +
* Added the ability to filter student progress on a single set by section/recitation ([[https://github.com/openwebwork/webwork2/pull/2320 #2320]])
  +
* If reduced scoring is enabled, then student progress shows a question as complete if the student has achieved the highest possible score [[https://github.com/openwebwork/webwork2/pull/2301 #2301]].
  +
* When creating a new course you can now copy more things from an existing course (templates and html folders, simple configuration file, non-student users, assignments/sets, achievements, course title, course institution)
  +
* You are now given the ability to upgrade a course while unarchiving.
   
== New PG Features ==
+
== New PG Features and Improvements ==
  +
  +
* New PGML features
  +
** [[Tables - PGML]] A new syntax is added to create tables within PGML blocks using <code>niceTables.pl</code>. Also, the <code>niceTables.pl</code> macro is automatically loaded when using PGML.
  +
** [[Tags - PGML]] One can now add HTML div or span tags within PGML with <tt>[< ... >]</tt>.
  +
* The <code>contextBoolean.pl</code> macro was added with a Boolean MathObject context which includes:
  +
** parsing of boolean expressions,
  +
** reduction rules with and's and or's
  +
** customizable true and false symbols and provision of unicode versions.
  +
* Additional methods were added to Matrix MathObjects including:
  +
** 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.
  +
* A general macro <code>parserMultipleChoice.pl</code> was added that loads all the multiple choice parsers: PopUp, CheckboxList, RadioButtons, RadioMultiAnswer
  +
* Updated and fixed PGML horizontal rules. [[Rules - PGML]]
  +
* The methods <tt>num</tt> and <tt>den</tt> have been added to fraction MathObjects (those created in the contexts provided by the <code>contextFraction.pl</code> macro).
  +
* 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.
  +
* Knowls have been reworked (again). Knowl links no longer attempt to open directly in the page. Instead they open in a modal dialog.
  +
* There have been many accessibility improvements.
  +
  +
== Breaking changes ==
  +
  +
* <code>parserPopUp.pl</code> has changed the default handling when the correct answer is defined to be a non-negative integer. That will now be treated as an index into the array of answers (to be consistent with other macros) and not as the "answer" from the array. See: [https://github.com/openwebwork/pg/pull/1019 PR#1019]. Some sites may want to temporarily change the default back to the old behavior, and maybe use a modified version of the file on their servers to locate problems which may not behave as intended after the change. See [https://github.com/openwebwork/pg/issues/1139 Issue#1139].
   
 
== Deprecated Functionality ==
 
== Deprecated Functionality ==
   
* All versions of PGcompoundproblem have been deprecated. Problems should be migrated to scaffold.
+
* All versions of the compound problem macro have been deprecated (<code>compoundProblem.pl</code>, <code>compoundProblem2.pl</code>, and <code>compoundProblem5.pl</code>). Problems should be migrated to use the <code>scaffold.pl</code> macro.
   
 
== Upgrade Instructions ==
 
== Upgrade Instructions ==
Line 31: Line 48:
 
*: <code>> cd /opt/webwork/webwork2</code>
 
*: <code>> cd /opt/webwork/webwork2</code>
 
*: <code>> git fetch origin</code>
 
*: <code>> git fetch origin</code>
*: <code>> git checkout develop</code>
+
*: <code>> git checkout main</code>
 
*: <code>> git pull</code>
 
*: <code>> git pull</code>
 
*: <code>> cd /opt/webwork/pg</code>
 
*: <code>> cd /opt/webwork/pg</code>
 
*: <code>> git fetch origin</code>
 
*: <code>> git fetch origin</code>
*: <code>> git checkout develop</code>
+
*: <code>> git checkout main</code>
 
*: <code>> git pull</code>
 
*: <code>> git pull</code>
*: '''Note''': Use the develop branch until the release candidate is out.
 
 
* Update the javascript and css assets for webwork2 and pg with
 
* Update the javascript and css assets for webwork2 and pg with
 
*: <code>> cd /opt/webwork/webwork2/htdocs</code>
 
*: <code>> cd /opt/webwork/webwork2/htdocs</code>
Line 49: Line 65:
 
** MIME::Base32 (on Ubuntu install libmime-base32-perl)
 
** MIME::Base32 (on Ubuntu install libmime-base32-perl)
 
** SQL::Abstract (on Ubuntu install libsql-abstract-perl)
 
** SQL::Abstract (on Ubuntu install libsql-abstract-perl)
  +
** Mojolicious must be version 9.34 or later. For older OSs (ex. Ubuntu 2204 install from cpan)
 
* 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.)
 
* 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.)
  +
* Webwork2 now uses <code>xelatex</code> by default for PDF generation instead of <code>pdflatex</code> because of a need for general UTF8 support. (On Ubuntu install texlive-xetex. Also install texlive-lang-arabic. The latter package is only needed if you use the Hebrew themes, and if you want the check_latex script to work.)
 
* Compare any files in the <code>/opt/webwork/webwork2/conf</code> directory that have been copied from a .dist file to the updated distribution .dist file, and update as needed.
 
* Compare any files in the <code>/opt/webwork/webwork2/conf</code> 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.
 
** 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.
 
** 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.
 
** 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: <code>>sudo systemctl restart webwork2 </code>
  +
* If you use the webwork2 job queue, then that will also need to be restarted. Do that with: <code>>sudo systemctl restart webwork2-job-queue</code>
  +
* You should update the modelCourse via: <code>rsync -av /opt/webwork/webwork2/courses.dist/modelCourse/ /opt/webwork/courses/modelCourse/</code>
 
* Upgrade the admin course by executing the <code>upgrade_admin_db.pl</code> script.
 
* Upgrade the admin course by executing the <code>upgrade_admin_db.pl</code> script.
 
* Make sure to upgrade courses from the admin course to relegate changes to the database.
 
* Make sure to upgrade courses from the admin course to relegate changes to the database.

Latest revision as of 08:49, 5 November 2024

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 although conversion is not complete and needs further editing to get a functional problem. So use with care.
  • The problem sets page has been reworked. The order that sets are presented to students has been made more intuitive, and can be sorted by the student.
  • The "Hmwk Sets Editor" has been renamed to "Sets Manager", and the "Classlist Editor" is now called "Accounts Manager".
  • In the "Accounts Manager" all user aspects (including password and permission level) can now be set when a user is first created, and all user aspects can now be edited at once on the edit tab (there is not a separate password tab anymore).
  • The "Report bugs" link now points to GitHub issues rather than bugzilla.
  • The file manager has been updated with the following feaures:
    • Archiving and unarchiving now supports the .zip archive format.
    • Clicking on the edit link for a problem file (.pg) now opens that file in the problem editor.
    • The course.conf and simple.conf files are now truly not editable by users that do not have admin permissions.
  • The "Instructor Tools" page has been redesigned.
    • There are new sort options on users and sets.
    • The user interface has been improved.
  • The PGML lab problem has been redesigned.
    • All of the examples have been updated.
    • Now there are examples that include all PGML features.
    • The problem is now hosted on the local webwork server instead of the defunct Rochester webwork server, and so will always work.
  • Two-factor authentication using an authenticator app is now available, and is enabled by default (see the Two Factor Authentication section of `defaults.config`.
  • The course that is used for Course Administration can now be customized. It is recommended that you change from the previously hard coded "admin" course to something of your choosing. Having the name of the admin course be publicly known is a security vulnerability.
  • Changing tabs on the instructor course configuration page doesn't reload the page, and when the course configuration is saved the new settings take effect immediately without another page reload.
  • Achievement changes
    • The following achievement items can now be applied to sets for which the due date has passed: Cupcake of Enlargement, Cake of Enlargement, Greater Rod of Revelation, Greater Tome of Enlightenment, Lesser Rod of Revelation, Lesser Tome of Enlightenment.
    • A new achievement item has been added to provide students with a set of assignment extensions that they can apply on their own. Simply import the `extensions.at` achievement.
  • WeBWorK now supports authentication for SMTP servers. See site.conf.dist and localOverrides.conf.dist for details.
  • The `$sessionKeyTimeout` configuration variable has been replaced with `$sessionTimeout`, and applies more generally to session cookies.
  • A new student orientation set has been created, and separated from the Model course. These problems now refer to the current version of WeBWorK.
  • Proctor authentication fix (#2347)
  • When using LTI 1.3 you can now separately set the Access Token Audience ($LTI{v1p3}{AccessTokenAUD}) and Access Token URL ($LTI{v1p3}{AccessTokenURL}).
  • A content selection tool is available when using LTI, which if enabled by your learning management system administrator will allow instructors to select an assignment or a course to link in the LMS. See LTI_Authentication_(for_WeBWorK_2.18_or_newer)#Setup_Courses_To_Use_Content_Selection.
  • Certbot renewal routes (#2321)
  • Added the ability to filter student progress on a single set by section/recitation ([#2320])
  • If reduced scoring is enabled, then student progress shows a question as complete if the student has achieved the highest possible score [#2301].
  • When creating a new course you can now copy more things from an existing course (templates and html folders, simple configuration file, non-student users, assignments/sets, achievements, course title, course institution)
  • You are now given the ability to upgrade a course while unarchiving.

New PG Features and Improvements

  • New PGML features
    • Tables - PGML A new syntax is added to create tables within PGML blocks using niceTables.pl. Also, the niceTables.pl macro is automatically loaded when using PGML.
    • Tags - PGML One can now add HTML div or span tags within PGML with [< ... >].
  • The contextBoolean.pl macro was added with a Boolean MathObject context which includes:
    • parsing of boolean expressions,
    • reduction rules with and's and or's
    • customizable true and false symbols and provision of unicode versions.
  • Additional methods were added to Matrix MathObjects including:
    • 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.
  • A general macro parserMultipleChoice.pl was added that loads all the multiple choice parsers: PopUp, CheckboxList, RadioButtons, RadioMultiAnswer
  • Updated and fixed PGML horizontal rules. Rules - PGML
  • The methods num and den have been added to fraction MathObjects (those created in the contexts provided by the contextFraction.pl macro).
  • 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.
  • Knowls have been reworked (again). Knowl links no longer attempt to open directly in the page. Instead they open in a modal dialog.
  • There have been many accessibility improvements.

Breaking changes

  • parserPopUp.pl has changed the default handling when the correct answer is defined to be a non-negative integer. That will now be treated as an index into the array of answers (to be consistent with other macros) and not as the "answer" from the array. See: PR#1019. Some sites may want to temporarily change the default back to the old behavior, and maybe use a modified version of the file on their servers to locate problems which may not behave as intended after the change. See Issue#1139.

Deprecated Functionality

  • All versions of the compound problem macro have been deprecated (compoundProblem.pl, compoundProblem2.pl, and compoundProblem5.pl). Problems should be migrated to use the scaffold.pl macro.

Upgrade Instructions

  • First update the webwork2 and pg code. For this run
    > cd /opt/webwork/webwork2
    > git fetch origin
    > git checkout main
    > git pull
    > cd /opt/webwork/pg
    > git fetch origin
    > git checkout main
    > 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
  • 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)
    • Mojolicious must be version 9.34 or later. For older OSs (ex. Ubuntu 2204 install from cpan)
  • 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.)
  • Webwork2 now uses xelatex by default for PDF generation instead of pdflatex because of a need for general UTF8 support. (On Ubuntu install texlive-xetex. Also install texlive-lang-arabic. The latter package is only needed if you use the Hebrew themes, and if you want the check_latex script to work.)
  • 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
  • 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.