Release notes for WeBWorK 2.11
WeBWorK Online Homework Delivery System Version 2.11 Copyright 2000-2016, The WeBWorK Project All rights reserved. Details ------- Release date: December 22, 2015 Github repository: https://github.com/openwebwork Modules: webwork2 pg ww_install
Contents
Cautions
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 check_modules.pl
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', 'course.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 #$options{useOPLdefFiles}=1;
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.
- You can read more at Geoff Goehle's blog post: http://webworkgoehle.blogspot.com/2014/06/just-in-time-adaptive-homework.html
- There is also the wiki page: http://webwork.maa.org/wiki/Just-In-Time
- The github page is at: https://github.com/openwebwork/webwork2/pull/580
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 http://webwork.maa.org/wiki/Set_Definition_Files (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 http://mathbook.pugetsound.edu/ 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.
- You can read more at Mike Gage's blog: http://michaelgage.blogspot.com/2015/06/whether-writing-full-text-book-or-just.html
- There is also better error reporting for the xmlrpc pathway so you should get more informative errors on the Library Browser page (and not just "can't parse" js errors).
- Related Github pages: https://github.com/openwebwork/webwork2/pull/601 and https://github.com/openwebwork/webwork2/pull/619
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. https://github.com/openwebwork/webwork2/pull/562
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.
- The github for the main LTI changes: https://github.com/openwebwork/webwork2/pull/608
- The github for the wwassignment Moodle assignment type: https://github.com/openwebwork/wwassignment
- The github for the opaque_server mod which allows WeBWorK problems in Moodle quizzes: https://github.com/openwebwork/opaque_server
- A description of how to use webwork with moodle quizzes with pointers to demonstrations of how it works is at http://michaelgage.blogspot.com/2015/06/using-webwork-questions-in-moodle.html
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. https://github.com/openwebwork/webwork2/pull/521
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: https://github.com/openwebwork/webwork2/pull/587
9. contextTrigDegrees: Added a new context which allows PG problems to use degrees in trig functions instead of radians. https://github.com/openwebwork/pg/pull/221
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: https://github.com/openwebwork/webwork2/pull/551
- 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. https://github.com/openwebwork/webwork2/pull/530
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 https://github.com/openwebwork/pg/pull/230 and https://github.com/openwebwork/pg/pull/227
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. https://github.com/openwebwork/webwork2/pull/642
Smaller Changes
- Tweaked the math4 loading process so half formed pages don't appear: https://github.com/openwebwork/webwork2/pull/624
- Added Hope Macro files: https://github.com/openwebwork/webwork2/pull/620
- Math4 should be more responsive on smaller pages. In particular the sidebar should expand and collapse dynamically as you resize: https://github.com/openwebwork/webwork2/pull/618
- Improve OPL tagging menus: https://github.com/openwebwork/webwork2/pull/595
- Tweak DB so that it can support utf8 based tables: https://github.com/openwebwork/webwork2/pull/594
- Small bug on User Detail Page: https://github.com/openwebwork/webwork2/pull/582
- Fix issue with null passwords and Moodle: https://github.com/openwebwork/webwork2/pull/577
- XSS fix: https://github.com/openwebwork/webwork2/pull/575
- Cleaned up code for session and cookie keys. No more warnings that session and cookie keys do not match: https://github.com/openwebwork/webwork2/pull/574
- Fix Math4/radioButton bug: https://github.com/openwebwork/webwork2/pull/543
- Fix bug when exporting classlists with comments: https://github.com/openwebwork/webwork2/pull/541
- Fix bugs with SendMail and Locales: https://github.com/openwebwork/webwork2/pull/542
- Make the way webwork rounds scores consistent across all pages: https://github.com/openwebwork/webwork2/pull/513
- Added a RESOURCES library tag that helps keep track of additional files needed by a pg problem: https://github.com/openwebwork/webwork2/pull/593
- Upgraded MathView to be more accessible: https://github.com/openwebwork/webwork2/pull/571
- Fixed issues with outdated grep syntax: https://github.com/openwebwork/pg/pull/198
- Refactored pretty_print in PG and WeBWorK: https://github.com/openwebwork/pg/pull/200
- Fixed issue of knowls sometimes opening in strange places: https://github.com/openwebwork/pg/pull/216
- New basic PG macros: https://github.com/openwebwork/pg/pull/217 and https://github.com/openwebwork/pg/pull/236
- Fixed Scaffolding/Hardcopy bug: https://github.com/openwebwork/pg/pull/234
- Upgrade PGalias to also handle pdf: https://github.com/openwebwork/pg/pull/235
- Fix a named answer rule/PGML bug: https://github.com/openwebwork/pg/pull/232
- Add colspan to niceTables: https://github.com/openwebwork/pg/pull/233
- Redid how graphics alias works. This helps prevent cache collisions: https://github.com/openwebwork/pg/pull/226
- Cleaned up the IO system: https://github.com/openwebwork/pg/pull/219
- Fix matricies/alternate decimals bug: https://github.com/openwebwork/pg/pull/222
- Updated the sets in course.dist to show off more modern problem types and get rid of outdated ones: https://github.com/openwebwork/webwork2/pull/633
- Added configuration elements to make CAPA easier to use: https://github.com/openwebwork/webwork2/pull/623
- Refactored show me another. It should work the same: https://github.com/openwebwork/webwork2/pull/612
- Fixed issue with sets named 0: https://github.com/openwebwork/webwork2/pull/538
- Changing student override automatically checks corresponding box: https://github.com/openwebwork/webwork2/pull/658
- Fixed a bug where reduced credit dates were not saved in set export: https://github.com/openwebwork/webwork2/pull/659
- Fixed a bug related to displaying matrices in math3: https://github.com/openwebwork/webwork2/pull/614
- Fixed bug with double encoding on die pages: https://github.com/openwebwork/webwork2/pull/597
- Fix bug with past answers and UTF characters: https://github.com/openwebwork/webwork2/pull/569
- Added a sneaky permission to make it so that practice users can be allowed to check but not submit answers: https://github.com/openwebwork/webwork2/pull/549
- Fixed an issue where answers of 0 were not being preserved after timeouts. https://github.com/openwebwork/webwork2/pull/661
- Fixed some jitar and accessibility issues: https://github.com/openwebwork/webwork2/pull/666
Installer
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
upgrade_admin_db.pl
. 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.