Release notes for WeBWorK 2.17
These are the release notes for WeBWorK 2.17.
Current release status: prerelease (no release candidate available yet)
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.
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. For this run
> cd /opt/webwork/webwork2
> git checkout develop
> git pull
> cd /opt/webwork/pg
> git checkout develop
> git pull
- The develop branch of webwork2 is the currently the WeBWorK 2.17 pre-release candidate, and the develop branch of pg is the PG 2.17 pre-release candidate.
- (TODO: Keep the branch names above up to date as the release progresses.)
- 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.
- 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:
- Email::Stuffer (on Ubuntu install the package libemail-stuffer-perl)
- YAML::XS (on Ubuntu install the package libyaml-libyaml-perl ... yes two libyaml's)
- 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 location as well.
- 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.)
> 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 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.)
- Then run npm to install (or upgrade) third party javascript and minimize local javascript and css:
> cd /opt/webwork/webwork2/htdocs
> npm install
> cd /opt/webwork/pg/htdocs
> npm install
- Optionally, you may want to serve third party javascript via a CDN. If so, then change the above
npm install
commands to > USE_CDN=1 npm install
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.