Release notes for WeBWorK 2.11

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

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

Details
-------



Release date: January, 2016

Github repository:  https://github.com/openwebwork
Modules:    webwork2   pg 

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 your system 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.

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 on added using wwsh.
  • You can disable this feature by editing the

Smaller Changes

Installer

The ww_install installer has been updated to support version 2.10. It has been tested on Ubuntu 14.04, Debian 7, CentOs 7, and Fedora 20. Note: ww_install also installs the components necessary to switch your installation to the develop branch without installing new software. (It has trouble installing the Template perl package on CentOS 7. This doesn't prevent you from using release 2.10.)

Supported Distributions and Features

The following are the distributions and features that are officially still supported. 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 LTS 14.04
  • Debian 7
  • CentOs 7
  • Fedora 20

Note: There is currently a bug which prevents installation on Fedora 21. There is no package which provides the pnmtops program and this causes the installation to fail.

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.
  • The library browser may stop responding. When you select a subject the chapter list may not populate. You should look in your apache error log to see what errors pop up. There are a couple of different things that can cause older systems to fail when upgraded. Chief among these seems to be having outdated or incompatible SOAP modules.
  • You can't get the update notifier to work: You need to update both the localOverrides.conf and the site.conf configuration files with the latest additions to get the update notifier to work.
  • You can't get hardcopies to work: You will need to install the latest LaTeX packages, including path.sty. This can be a challenge on CentOS 7 because there is no native package that provides it. You can manually download and install the Fedora version and it will work.
  • Remember to update the OPL and run OPL-update.