Release notes for WeBWorK 2.11

From WeBWorK_wiki
Jump to navigation Jump to search
                         Online Homework Delivery System                        
                                  Version 2.11                          

                    Copyright 2000-2016, The WeBWorK Project                    
                              All rights reserved.                              


Release date: December 22, 2015

Github repository:
Modules:    webwork2   pg   ww_install


Warning : There are significant database upgrades since 2.10, as well as potential new modules. There are also changes to the configuration files which will need to be integrated into your existing configurations. The process for upgrading to 2.11 is described below.:

Upgrade Instructions

1) Go to /opt/webwork/webwork2, /opt/webwork/pg and run

git pull origin master

on each directory (assuming that origin is your remote name for the openwebwork repo).

2) Depending on your system there may be new perl modules added for 2.11. Run and look for missing modules. They may include:

  • LWP::Protocol::https (version > 6.06)
  • Class::Accessor

An outdated LWP::Protocol::https module can keep the Library Browser from running correctly if you are using https.

4) Check localOverrides.conf.dist and look for changes to add to the existing localOverrides.conf. There are a couple of important things here that will negatively affect your system if you don't deal with them.

  • The show editors hash should be removed. If it is not removed then there will be minor annoyances (e.g. the link to the problem set detail page that appears when you are looking at a homework set will not appear). Instead of redefining this hash, overrides should be made to the hash elements individually. For example
# These will enable the versions of the problem set detail page and library browser page
# that do not use the xmlrpc pathway
#$showeditors{problemsetdetail1} = 1;
#$showeditors{librarybrowsernojs} = 1;

# This will enable the slightly fancier PG problem editor 3
#$showeditors{pgproblemeditor3} = 1;

# This will turn off ww3 (if you are on the ww3 branch)
#$showeditors{ww3} = 0;
  • While this does not appear by default in localOverrides.conf.dist, something you may want to modify using localOverrides.conf is the variable controlling which files users with professor privilege can access. For security reasons default only users with admin privilege will be able to access course.conf using the File Manager. The variable you would change is
# For safety reasons these course specific files cannot be edited from the File Manager except
# by an administrator.  These are paths relative to the course directory.
$uneditableCourseFiles = ['simple.conf',
  • Options which control if the homework sets editor will look for set .def files in places other than templates. In can search in subfolders of templates or even the OPL. The options are
# Searching for set.def files to import 
# Uncomment below so that when the homework sets editor searches for set def
# files, it searches beyond templates; it can search deeper subfolders of 
# templates, and optionally also descend into Library
#$options{setDefSearchDepth}=4; #search down 4 levels

5) Check site-conf.dist and look for changes to add to the existing site.conf. Things to look for include:

  • The version of your server is determined automatically from your server banner. However, if you have turned off the version in your server banner you can specify it manually with
$server_apache_version = ''; # e.g. '2.22.1'  
  • Specifying if tls is allowed when sending email. This is enabled via
$tls_allowed = 1;  
  • Specifying an email address to display when apache has problems with webwork pages, assuming you don't want to use the default apache admin email. This is done via
$webwork_server_admin_email ='';
  • Specifying a default timeout for the checkurl command. This is done via
$externalPrograms{checkurl}     = "/usr/bin/lwp-request -d -t 40 -mHEAD "; 

6) Check your apache configuration dist file and look for changes to add to the existing apache configuration file. Things to look for include

  • A line which ensures that each apache child process has a different random number seed. The main impact this has is that without the following line practice users are not shuffled randomly.
PerlChildInitHandler "sub { srand }"
  • The code which overrides the administrator email using the variable mentioned in the previous section. The code looks like
my $webwork_server_admin_email = $ce->{webwork_server_admin_email};
if ($webwork_server_admin_email) {
	$webwork_server_admin_email = $ce->{webwork_server_admin_email};
	warn "set email from site.conf";
} else {
	$webwork_server_admin_email= $ENV{SERVER_ADMIN};
  • Optional code to make use of the opaque server interface with Moodle.
  • Optional code to improve performance by using mod_expires.

7) Restart the webserver. (with apachectl graceful or similar command.)

8) Log into the admin course and upgrade the databases for all of your courses. Your server will not be functional until you perform this step.

9) Download the latest version of the OPL using

  • cd /opt/webwork/libraries/webwork-open-problem-library
  • git pull origin
  • OPL-update

Primary Changes

1. Just-In-Time Assignments: This is a new adaptive homework assignment type. The basic idea is that instead of having a linear list of problems, the problem set has a "tree" of problems. Each problem has a number of "child" problems which are only shown to the student if they have trouble with the parent problem. The basic idea is that these child problems will have review content to help the student solve the original problem. There are a number of other features including restricting the progress of students through the homework and emailing the professor if the student fails to complete the assignment.

2. Editing Course.conf: The ability to edit course.conf from the web has long been a security and stability issue. (One missing semicolon can lock a professor out of their course and require command line access by a super user to recover.) Because of this users with "professor" privilege will not be able to edit either course.conf or simple.conf from the File Manager. Instead only users with "admin" privilege will be able to edit those files. This is likely to feel restrictive to users who are used to making lots of modifications via course.conf. There are really three main ways to deal with this:

  • Common configuration changes can easily be added to the Course Configuration page. If you have a configuration page that you make a lot submit it as a github issue.
  • Administrators in the admin course are always given admin privileges if they are added to a course. Any admin user can grant any other user admin privileges using the Classlist Editor. You can use this to give trusted professors permission to edit course.conf. Courses that don't have any "admin" privileged users can have one added using wwsh.
  • You can disable this feature by editing the $uneditableCourseFiles variable. Do this at your own risk.

3. Def File Changes: Because of all the new features added to WeBWorK the way problems are defined in def files needed to be refactored. Now problems in def files are defined using the same "property = value" format as the rest of the problem set.

  • You can read more about the new def format at (specifically the Problem List Version 2 portion).
  • Older def files using the "version 1" problem list can still be imported, but all exports will use version 2.

4. XMLRPC Rendering: Driven by the Mathbook XML project and the Moodle opaqueserver linkage the ability to render problems via the XMLRPC pathway has been greatly improved. In particular problems can be embedded in pages using iframes. The embedded problems can be interacted with, answers can be checked, and there is even the option to store answers and scores locally in the browser.

5. wwsh: Due to recent changes in Perl wwsh no longer gives you an interactive perl interface. Instead you call wwsh with a script as follows wwsh <course name> <script name>. Several scripts have been provided to help recover courses.

6. LTI Upgrades: The LTI authentication interface has been upgraded to work more smoothly with recent versions of Blackboard and Moodle. In particular the LTI interface is used with the Moodle bridge, which has also seen a number of upgrades including the ability to include a WeBWorK problem set in Moodle as an assignment, or to include WeBWorK problems in Moodle quizzes.

7. Set Defs Search: You can now set configuration variables which allow the Homework Sets Editor page to search for set def files in folders other than templates. In particular it can look for def files in subdirectories of templates and optionally in the OPL.

8. Live Graph 3D: The java based Live Graph 3D grapher has been replaced by a drop in javascript alternative. This javascript alternative is webGL based and should work on any device which has webGL support. It should work as a replacement without any additional configuration.

  • This grapher has been tested with the existing problems in the OPL which used the old java grapher. If there are issues with local problems please report them.
  • The older grapher can be re-enabled via a configuration variable.
  • The github for this is:

9. contextTrigDegrees: Added a new context which allows PG problems to use degrees in trig functions instead of radians.

10. No More Timezones: Timezones in date entry have been removed, as have most time zones in displayed dates. (Due dates displayed to students still have time zones.) Now all times are interpreted to be in the time zone defined in the Course Configuration page. This should eliminate the longstanding problem of entering a date with the wrong daylight savings timezone and having your time unexpected shifted by an hour.

  • The github page for this is:
  • As part of this project the datepicker has been refactored. It should have a more consistent behavior now where if date x comes before date y when it should come after then date x is set to date y.

11. Library Browser Icons: There are now icons in the library browser to help signify when problems use math objects and when problems don’t have any randomization.

12. PopUps and RadioButtons: MathObjects PopUp and RadioButtons were refactored. They now support more randomization, more alias support and the ability to have rendered math in RadioButtons. See and

13. Course Renaming: In addition to renaming courses you can now give courses new Course Titles and new Institutions. This is done using the Rename function on the course admin page.

Smaller Changes


The ww_install installer has been updated to support version 2.11. It has been tested on all of the distributions listed below. The installer has also been refactored to be more modular when it comes to different distributions. If you are interested in modifying the installer to work with your distribution post an issue on the ww_install github. You can read more about it at WeBWorK Installer Guide

Supported Distributions

The following are the distributions and features that are officially still supported. They have all been tested with the webwork installer. You still can use WeBWorK on whatever you like, of course. In particular if you install WeBWorK on a very recent version of Ubuntu or Fedora and have problems let us know.

  • Ubuntu 14.04
  • Ubuntu 15.04
  • Ubuntu 15.10
  • Debian 7
  • Debian 8
  • CentOS 6
  • CentOS 7
  • Fedora 22

Note: Mod perl does not work with the version of Apache that is included in Fedora 23. While it could probably be made to run, WeBWorK is not officially supported in Fedora 23 for this release.

What could possibly go wrong?

  • You can get a warning when trying to log into the admin course: You will need to run You will also need to upgrade all of your other course databases using the admin course.
  • You can't edit the course.conf file: You need "admin" permissions. See item 2 of Primary Changes.
  • You can't find the "SetName" link in the sidebar that normally brings you to the Problem Set Detail page for a particular set: You need to remove the %showEditors hash from your local overrides file. See item 4 of Upgrade Instructions.
  • The library browser may stop responding: When you select a subject the chapter list may not populate and you may get error popups. The main cause of this is a missing or outdated LWP::Protocol::https (version < 6.06) package.
  • Remember to update the OPL and run OPL-update.