Difference between revisions of "Release notes for WeBWorK 2.17"
(49 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | {{UnderConstruction}} |
||
− | |||
− | These are the release notes for WeBWorK 2.17. |
||
− | |||
− | Current release status: prerelease (no release candidate available yet) |
||
− | |||
== New WeBWorK Features == |
== New WeBWorK Features == |
||
− | * As with |
+ | * As with WeBWorK 2.16, third party javascript libraries (jquery, jquery-ui, mathjax, codemirror, etc.) are installed via npm. WeBWorK 2.17 does even more. Now WeBWorK's own javascript and css files are minimized, and generated with a filename containing a hash of its contents. This means that users will not need to clear their browser cache when WeBWorK is upgraded. In addition if you would like to serve third party javascript from a remote CDN instead of serving these files from your server, there is an installation option to set that up. |
* Students may now attach files to emails they send to instructors via the "Email Instructor" page. |
* Students may now attach files to emails they send to instructors via the "Email Instructor" page. |
||
* The look and feel of the user interface of WeBWorK is quite different, mainly because Bootstrap has been updated from version 2.3.2 to version 5.1.3. This gives a much more modern feel. |
* The look and feel of the user interface of WeBWorK is quite different, mainly because Bootstrap has been updated from version 2.3.2 to version 5.1.3. This gives a much more modern feel. |
||
− | * The theming of WeBWorK has changed significantly. |
+ | * The theming of WeBWorK has changed significantly. Themes written for previous versions of WeBWorK will no longer work. See [[Customizing WeBWorK]] for information on how to create new themes. |
+ | * Instructors may now create sets with spaces in the name. Technically the spaces are translated into underscores and the set names are stored that way, but anytime a set name appears in the user interface it will be shown with spaces. |
||
+ | * It is now possible to delete a specific version of a Gateway quiz for a student. This can be done on the page opened when you click on the "Assigned Sets" column for a user in the Classlist Editor. |
||
+ | * When a student clicks "Grade Test" in a gateway quiz, a confirmation dialog will open that informs the student of the consequences of submitting the quiz and gives the student a chance to decline submission. |
||
+ | * Gateway quiz versions are no longer listed on the course homepage (the Homework Sets page). Instead they are listed on a page that opens when you click on the Gateway quiz template. This page also gives the student more details on the Gateway quiz and displays a set info much like the problem list page for regular homework sets. If you are using LTI authentication and provide direct links to homework assignments or quizzes, then it is recommended that you now direct the students to this page for Gateway quizzes rather than directly into the the quiz. So use a link that looks something like "<nowiki>https://yourserver.edu/webwork2/courseID/setID</nowiki>" instead of "<nowiki>https://yourserver.edu/webwork2/courseID/quiz_mode/setID</nowiki>". |
||
+ | * Some LTI authentication mode parameters can now be set in a new tab on the course configuration page. This new tab is available if any of the entries of the @LTIConfigVariables array in /opt/webwork/webwork2/conf/authen_LTI.conf are un-commented. |
||
+ | * There is a new permission "navigation_allowed". This permission can be set on the "Permissions" tab of the course configuration page and is labeled "Allowed to view course home page" there. This permission is intended to be used with LTI authentication when grade passback mode ($LTIGradeMode) is set to "homework". If a user does not have this permission, then the user will not be allowed to view the course home page (the list of homework sets) or the "Grades" page, and links will not be available to access any set other than the one the user signed in to view. Usually this permission would be set to login_proctor in this case. If using this permission, then you will need to ensure that a link is provided to each homework set in your LMS. |
||
− | == |
+ | == New PG Features == |
− | * |
+ | * All support for Java and Flash applets has been removed (there is now a warning shown for existing problems). |
+ | * Three new graphing tools were added to the GraphTool macro (parserGraphTool.pl): a point tool, a three point quadratic tool, and a four point cubic tool. Furthermore, keyboard controls have been added. This is important for users with mobility impairments, and can be useful for other users having difficulty placing points accurately on the graph. |
||
+ | * The Drag/Drop macro (draggableProof.pl) has been updated, and if problems are written correctly these problems will now work in Gateway quizzes. |
||
+ | * There have been many improvements to Mathquill for both parsing mathematical expressions and units. |
||
+ | |||
+ | == Security/Advanced Features == |
||
+ | * The SOAP module is now disabled by default. You will need to set <code>$WeBWorK::SeedCE{soap_authen_key}</code> in /opt/webwork/webwork2/conf/webwork2.apache2.4-config to something secure. |
||
+ | * When hard copies of homework sets are generated, the generated files are no longer placed in a publicly available location on the server. Instead they are generated in the /opt/webwork/webwork2/tmp directory, and served via mod_perl2. Only the user that generates the file will have access to the file over the internet. Furthermore, on successful generation, all files are deleted from the server after the resulting pdf or zip file are served including the served file itself. On failure the files are not deleted so that the user can download them for diagnosis of the failure, but the user will only be able to access those files as long as the page is still open in WeBWorK. See issue [https://github.com/openwebwork/webwork2/issues/1075 #1075] for details on why this change was made. |
||
== Upgrade Instructions == |
== Upgrade Instructions == |
||
+ | * First update the webwork2 and pg code. You will most likely need to first delete the package-lock.json file. For this run |
||
+ | *: <code>> cd /opt/webwork/webwork2</code> |
||
+ | *: <code>> rm htdocs/package-lock.json</code> |
||
+ | *: <code>> git fetch origin</code> |
||
+ | *: <code>> git checkout -b WeBWorK-2.17+ WeBWorK-2.17+</code> |
||
+ | *: <code>> git pull</code> |
||
+ | *: <code>> cd /opt/webwork/pg</code> |
||
+ | *: <code>> git fetch origin</code> |
||
+ | *: <code>> git checkout -b PG-2.17+ PG-2.17+</code> |
||
+ | *: <code>> git pull</code> |
||
+ | * The default branch in Github for the OPL repository (https://github.com/openwebwork/webwork-open-problem-library) is now main instead of master. If you have a local clone with the old master branch, then you can switch to main with |
||
+ | *: <code>> git branch -m master main</code> |
||
+ | *: <code>> git fetch origin</code> |
||
+ | *: <code>> git branch -u origin/main main</code> |
||
+ | *: <code>> git remote set-head origin -a</code> |
||
+ | *: in /opt/webwork/libraries/webwork-open-problem-library. |
||
+ | *: If you get an error like <code>fatal: couldn't find remote ref refs/heads/master</code> when doing the <code>git fetch origin</code> |
||
+ | *: check if you have a line in <code>.git/config</code> in the <code>[remote "origin"]</code> section like |
||
+ | *: <code>fetch = +refs/heads/master:refs/remotes/origin/master</code> |
||
+ | *: and if so replace it with |
||
+ | *: <code>fetch = +refs/heads/main:refs/remotes/origin/main</code> |
||
+ | |||
+ | * There have been significant changes to /opt/webwork/webwork2/conf/webwork.apache2.4-config.dist. So make sure that you integrate these changes into your copy of that file and the active version which is /etc/apache2/conf-enabled/webwork.conf (or something similar depending on the base OS's apache config file location). |
||
* WW 2.17 requires the apache rewrite module (mod_rewrite) to be enabled. On Ubuntu systems run: <code>sudo a2enmod rewrite</code> |
* WW 2.17 requires the apache rewrite module (mod_rewrite) to be enabled. On Ubuntu systems run: <code>sudo a2enmod rewrite</code> |
||
− | * The following perl packages will need to be installed |
+ | * The following perl packages will need to be installed (run <code>bin/check_modules.pl</code> to ensure you have all programs/modules) |
** Email::Stuffer (on Ubuntu install the package libemail-stuffer-perl) |
** Email::Stuffer (on Ubuntu install the package libemail-stuffer-perl) |
||
− | * Run npm install in the htdocs directories to upgrade third party javascript libraries. This will also minimize the local javascript and css files. WW 2.17 requires newer versions of node and npm to do this. The javascript and css used solely by PG has been moved into /opt/webwork/pg/htdocs. This means that npm will also need to be run in that locaction as well. |
||
+ | ** YAML::XS (on Ubuntu install the package libyaml-libyaml-perl ... yes two libyaml's) |
||
+ | * Instead of running <code>pdflatex /opt/webwork/webwork2/bin/check_latex.tex</code> (which will fail), run <code>check_latex</code>. That script will tell pdflatex where to find the necessary webwork2 common tex files. |
||
+ | * Run npm ci in the htdocs directories to upgrade third party javascript libraries. This will also minimize the local javascript and css files. WW 2.17 requires newer versions of node and npm to do this. The javascript and css used solely by PG has been moved into /opt/webwork/pg/htdocs. This means that npm will also need to be run in that location as well. |
||
# Install node and npm: |
# Install node and npm: |
||
− | #* On Ubuntu: (Note that for Ubuntu 20.04 you may use the versions of node and npm in the repositories instead, although there will be a lot of warnings which can be safely ignored.) |
||
+ | #* On Ubuntu: |
||
#*: <code>> curl -fsSL <nowiki>https://deb.nodesource.com/setup_16.x</nowiki> | sudo -E bash -</code> |
#*: <code>> curl -fsSL <nowiki>https://deb.nodesource.com/setup_16.x</nowiki> | sudo -E bash -</code> |
||
#*: <code>> sudo apt install nodejs</code> |
#*: <code>> sudo apt install nodejs</code> |
||
#* On CentOS/RHEL: |
#* On CentOS/RHEL: |
||
#*: <code>> curl -fsSL <nowiki>https://rpm.nodesource.com/setup_16.x</nowiki> | sudo bash -</code> |
#*: <code>> curl -fsSL <nowiki>https://rpm.nodesource.com/setup_16.x</nowiki> | sudo bash -</code> |
||
+ | #* On RHEL 8 (whenever <code>dnf</code> is available): |
||
+ | #*: <code>> sudo dnf module reset nodejs</code> |
||
+ | #*: <code>> sudo dnf module enable nodejs:16</code> |
||
+ | #*: <code>> sudo dnf module -y install nodejs:16/common</code> |
||
# Then run npm to install (or upgrade) third party javascript and minimize local javascript and css: |
# Then run npm to install (or upgrade) third party javascript and minimize local javascript and css: |
||
#: <code>> cd /opt/webwork/webwork2/htdocs</code> |
#: <code>> cd /opt/webwork/webwork2/htdocs</code> |
||
− | #: <code>> npm |
+ | #: <code>> npm ci</code> |
#: <code>> cd /opt/webwork/pg/htdocs</code> |
#: <code>> cd /opt/webwork/pg/htdocs</code> |
||
− | #: <code>> npm |
+ | #: <code>> npm ci</code> |
− | #: Optionally, you may want to serve third party javascript via a CDN. If so, then change the above <code>npm |
+ | #: Optionally, you may want to serve third party javascript via a CDN. If so, then change the above <code>npm ci</code> commands to |
− | #: <code>> USE_CDN=1 npm |
+ | #: <code>> USE_CDN=1 npm ci</code> |
+ | # Upgrade the Database |
||
+ | #* <code>> upgrade_admin_db.pl</code> |
||
+ | #* Logon to the Admin course |
||
+ | #* Navigate to the "Upgrade Courses" tab. |
||
+ | #* Complete the upgrade to all desired courses. |
||
+ | * There have been updates to the Open Problem Library as well. |
||
+ | ** Running <code>OPL-update</code> is a '''necessary''' step when upgrading to 2.17. |
||
+ | *** <code>> cd /opt/webwork/libraries/webwork-open-problem-library</code> |
||
+ | *** <code>> git pull</code> |
||
+ | *** <code>> OPL-update</code> |
||
+ | ** The process has been streamlined so that it no longer takes 20+ minutes to import the OPL. |
||
+ | ** You will be asked to share OPL usage statistics with the community, please consider doing so (no student information will be included in the shared data). |
||
+ | ** Now, any course containing a <code>Contrib</code> sym-link in the templates folder will have an additional option on the Library Browser to include Contrib/ problems in their search. To accomplish this: |
||
+ | *** <code>> cd /opt/webwork/courses/YourModelCourse/templates</code> |
||
+ | *** <code>> ln -s /opt/webwork/libraries/webwork-open-problem-library/Contrib Contrib</code> |
||
+ | **** if the previous instruction requires <code>sudo</code> permissions, then make sure you also |
||
+ | **** <code>> sudo chown -h www-data:www-data Contrib</code> |
||
== Call for Translators == |
== Call for Translators == |
||
− | Much of the text has changed in the WeBWorK interface, so there are new entries that need to be translated into other languages. If you would like to help in translating a language, please go to [https://www.transifex.com/webwork/webwork2] and click on `Help Translate "webwork2"`. You will need to create a Transifex account (this is free, contrary to the remarks about a free trial). Then request to join the translation team for the language you will work on. If you would like to work on translating a language that is not yet in WeBWorK, you may also request to add a new language. If you have helped with translating a language for WeBWorK in the past, note that we will no longer be accepting direct pull requests to the webwork2 repository on GitHub for translations. This will all be done via Transifex. |
+ | Much of the text has changed in the WeBWorK interface, so there are new entries that need to be translated into other languages. If you would like to help in translating a language, please go to [https://www.transifex.com/webwork/webwork2 Transifex] and click on `Help Translate "webwork2"`. You will need to create a Transifex account (this is free, contrary to the remarks about a free trial). Then request to join the translation team for the language you will work on. If you would like to work on translating a language that is not yet in WeBWorK, you may also request to add a new language. If you have helped with translating a language for WeBWorK in the past, note that we will no longer be accepting direct pull requests to the webwork2 repository on GitHub for translations. This will all be done via Transifex. |
+ | |||
+ | == Release Details == |
||
+ | <pre> |
||
+ | WeBWorK |
||
+ | Online Homework Delivery System |
||
+ | Version 2.17 |
||
+ | |||
+ | Copyright 2000-2022, The WeBWorK Project |
||
+ | All rights reserved. |
||
+ | |||
+ | Details |
||
+ | ------- |
||
+ | |||
+ | Release date: July 18, 2022 |
||
+ | |||
+ | Commits: The webwork2 main branch was modified by 663 commits in merging the WeBWorKk-2.17 branch into main, and the pg main branch was modified by 210 commits in merging the PG-2.17 branch into main. |
||
+ | |||
+ | Github repository: https://github.com/openwebwork |
||
+ | Modules: webwork2 pg |
||
+ | |||
+ | Release team: |
||
+ | * Glenn Rice, Missouri Western State University |
||
+ | * Danny Glin, University of Calgary, technical manager for The WeBWorK Project (TWP) |
||
+ | * K. Andrew Parker, New York City College of Technology (“City Tech”), City University of New York |
||
+ | * Nathan Wallach, Technion - Israel Institute of Technology |
||
+ | * Alex Jordan, Portland Community College (PCC) |
||
+ | * Peter Staab, Fitchburg State University |
||
+ | * Mike Gage, University of Rochester |
||
+ | * Jaimos Skriletz, Boise State University |
||
+ | </pre> |
||
+ | |||
+ | [[Category:Release_Notes]] |
Latest revision as of 14:50, 12 August 2024
Contents
New WeBWorK Features
- As with WeBWorK 2.16, third party javascript libraries (jquery, jquery-ui, mathjax, codemirror, etc.) are installed via npm. WeBWorK 2.17 does even more. Now WeBWorK's own javascript and css files are minimized, and generated with a filename containing a hash of its contents. This means that users will not need to clear their browser cache when WeBWorK is upgraded. In addition if you would like to serve third party javascript from a remote CDN instead of serving these files from your server, there is an installation option to set that up.
- Students may now attach files to emails they send to instructors via the "Email Instructor" page.
- The look and feel of the user interface of WeBWorK is quite different, mainly because Bootstrap has been updated from version 2.3.2 to version 5.1.3. This gives a much more modern feel.
- The theming of WeBWorK has changed significantly. Themes written for previous versions of WeBWorK will no longer work. See Customizing WeBWorK for information on how to create new themes.
- Instructors may now create sets with spaces in the name. Technically the spaces are translated into underscores and the set names are stored that way, but anytime a set name appears in the user interface it will be shown with spaces.
- It is now possible to delete a specific version of a Gateway quiz for a student. This can be done on the page opened when you click on the "Assigned Sets" column for a user in the Classlist Editor.
- When a student clicks "Grade Test" in a gateway quiz, a confirmation dialog will open that informs the student of the consequences of submitting the quiz and gives the student a chance to decline submission.
- Gateway quiz versions are no longer listed on the course homepage (the Homework Sets page). Instead they are listed on a page that opens when you click on the Gateway quiz template. This page also gives the student more details on the Gateway quiz and displays a set info much like the problem list page for regular homework sets. If you are using LTI authentication and provide direct links to homework assignments or quizzes, then it is recommended that you now direct the students to this page for Gateway quizzes rather than directly into the the quiz. So use a link that looks something like "https://yourserver.edu/webwork2/courseID/setID" instead of "https://yourserver.edu/webwork2/courseID/quiz_mode/setID".
- Some LTI authentication mode parameters can now be set in a new tab on the course configuration page. This new tab is available if any of the entries of the @LTIConfigVariables array in /opt/webwork/webwork2/conf/authen_LTI.conf are un-commented.
- There is a new permission "navigation_allowed". This permission can be set on the "Permissions" tab of the course configuration page and is labeled "Allowed to view course home page" there. This permission is intended to be used with LTI authentication when grade passback mode ($LTIGradeMode) is set to "homework". If a user does not have this permission, then the user will not be allowed to view the course home page (the list of homework sets) or the "Grades" page, and links will not be available to access any set other than the one the user signed in to view. Usually this permission would be set to login_proctor in this case. If using this permission, then you will need to ensure that a link is provided to each homework set in your LMS.
New PG Features
- All support for Java and Flash applets has been removed (there is now a warning shown for existing problems).
- Three new graphing tools were added to the GraphTool macro (parserGraphTool.pl): a point tool, a three point quadratic tool, and a four point cubic tool. Furthermore, keyboard controls have been added. This is important for users with mobility impairments, and can be useful for other users having difficulty placing points accurately on the graph.
- The Drag/Drop macro (draggableProof.pl) has been updated, and if problems are written correctly these problems will now work in Gateway quizzes.
- There have been many improvements to Mathquill for both parsing mathematical expressions and units.
Security/Advanced Features
- The SOAP module is now disabled by default. You will need to set
$WeBWorK::SeedCE{soap_authen_key}
in /opt/webwork/webwork2/conf/webwork2.apache2.4-config to something secure. - When hard copies of homework sets are generated, the generated files are no longer placed in a publicly available location on the server. Instead they are generated in the /opt/webwork/webwork2/tmp directory, and served via mod_perl2. Only the user that generates the file will have access to the file over the internet. Furthermore, on successful generation, all files are deleted from the server after the resulting pdf or zip file are served including the served file itself. On failure the files are not deleted so that the user can download them for diagnosis of the failure, but the user will only be able to access those files as long as the page is still open in WeBWorK. See issue #1075 for details on why this change was made.
Upgrade Instructions
- First update the webwork2 and pg code. You will most likely need to first delete the package-lock.json file. For this run
> cd /opt/webwork/webwork2
> rm htdocs/package-lock.json
> git fetch origin
> git checkout -b WeBWorK-2.17+ WeBWorK-2.17+
> git pull
> cd /opt/webwork/pg
> git fetch origin
> git checkout -b PG-2.17+ PG-2.17+
> git pull
- The default branch in Github for the OPL repository (https://github.com/openwebwork/webwork-open-problem-library) is now main instead of master. If you have a local clone with the old master branch, then you can switch to main with
> git branch -m master main
> git fetch origin
> git branch -u origin/main main
> git remote set-head origin -a
- in /opt/webwork/libraries/webwork-open-problem-library.
- If you get an error like
fatal: couldn't find remote ref refs/heads/master
when doing thegit fetch origin
- check if you have a line in
.git/config
in the[remote "origin"]
section like fetch = +refs/heads/master:refs/remotes/origin/master
- and if so replace it with
fetch = +refs/heads/main:refs/remotes/origin/main
- There have been significant changes to /opt/webwork/webwork2/conf/webwork.apache2.4-config.dist. So make sure that you integrate these changes into your copy of that file and the active version which is /etc/apache2/conf-enabled/webwork.conf (or something similar depending on the base OS's apache config file location).
- WW 2.17 requires the apache rewrite module (mod_rewrite) to be enabled. On Ubuntu systems run:
sudo a2enmod rewrite
- The following perl packages will need to be installed (run
bin/check_modules.pl
to ensure you have all programs/modules)- Email::Stuffer (on Ubuntu install the package libemail-stuffer-perl)
- YAML::XS (on Ubuntu install the package libyaml-libyaml-perl ... yes two libyaml's)
- Instead of running
pdflatex /opt/webwork/webwork2/bin/check_latex.tex
(which will fail), runcheck_latex
. That script will tell pdflatex where to find the necessary webwork2 common tex files. - Run npm ci in the htdocs directories to upgrade third party javascript libraries. This will also minimize the local javascript and css files. WW 2.17 requires newer versions of node and npm to do this. The javascript and css used solely by PG has been moved into /opt/webwork/pg/htdocs. This means that npm will also need to be run in that location as well.
- Install node and npm:
- On Ubuntu:
> curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
> sudo apt install nodejs
- On CentOS/RHEL:
> curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
- On RHEL 8 (whenever
dnf
is available):> sudo dnf module reset nodejs
> sudo dnf module enable nodejs:16
> sudo dnf module -y install nodejs:16/common
- On Ubuntu:
- Then run npm to install (or upgrade) third party javascript and minimize local javascript and css:
> cd /opt/webwork/webwork2/htdocs
> npm ci
> cd /opt/webwork/pg/htdocs
> npm ci
- Optionally, you may want to serve third party javascript via a CDN. If so, then change the above
npm ci
commands to > USE_CDN=1 npm ci
- Upgrade the Database
> upgrade_admin_db.pl
- Logon to the Admin course
- Navigate to the "Upgrade Courses" tab.
- Complete the upgrade to all desired courses.
- There have been updates to the Open Problem Library as well.
- Running
OPL-update
is a necessary step when upgrading to 2.17.> cd /opt/webwork/libraries/webwork-open-problem-library
> git pull
> OPL-update
- The process has been streamlined so that it no longer takes 20+ minutes to import the OPL.
- You will be asked to share OPL usage statistics with the community, please consider doing so (no student information will be included in the shared data).
- Now, any course containing a
Contrib
sym-link in the templates folder will have an additional option on the Library Browser to include Contrib/ problems in their search. To accomplish this:> cd /opt/webwork/courses/YourModelCourse/templates
> ln -s /opt/webwork/libraries/webwork-open-problem-library/Contrib Contrib
- if the previous instruction requires
sudo
permissions, then make sure you also > sudo chown -h www-data:www-data Contrib
- if the previous instruction requires
- Running
Call for Translators
Much of the text has changed in the WeBWorK interface, so there are new entries that need to be translated into other languages. If you would like to help in translating a language, please go to Transifex and click on `Help Translate "webwork2"`. You will need to create a Transifex account (this is free, contrary to the remarks about a free trial). Then request to join the translation team for the language you will work on. If you would like to work on translating a language that is not yet in WeBWorK, you may also request to add a new language. If you have helped with translating a language for WeBWorK in the past, note that we will no longer be accepting direct pull requests to the webwork2 repository on GitHub for translations. This will all be done via Transifex.
Release Details
WeBWorK Online Homework Delivery System Version 2.17 Copyright 2000-2022, The WeBWorK Project All rights reserved. Details ------- Release date: July 18, 2022 Commits: The webwork2 main branch was modified by 663 commits in merging the WeBWorKk-2.17 branch into main, and the pg main branch was modified by 210 commits in merging the PG-2.17 branch into main. Github repository: https://github.com/openwebwork Modules: webwork2 pg Release team: * Glenn Rice, Missouri Western State University * Danny Glin, University of Calgary, technical manager for The WeBWorK Project (TWP) * K. Andrew Parker, New York City College of Technology (“City Tech”), City University of New York * Nathan Wallach, Technion - Israel Institute of Technology * Alex Jordan, Portland Community College (PCC) * Peter Staab, Fitchburg State University * Mike Gage, University of Rochester * Jaimos Skriletz, Boise State University