Release notes for WeBWorK 2.10

From WeBWorK_wiki
Revision as of 11:25, 23 December 2014 by Pstaabp (talk | contribs) (clarified some steps of the upgrade instructions.)
Jump to navigation Jump to search
                                     WeBWorK                                    
                         Online Homework Delivery System                        
                                  Version 2.10                          

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

Details
-------



Release date: January ??, 2015

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

Cautions

Warning : A number of new modules have been added since version 2.9, as well as significant database upgrades. There are also changes to the configuration files which will need to be integrated into your existing configurations. The process for upgrading to 2.10 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) There were a number of new perl modules added for 2.10. Run check_modules.pl and look for missing modules. They may include

  • Array::Utils
  • Dancer
  • Dancer::Plugin::Database
  • Iterator
  • Iterator::Util
  • Path::Class
  • XML::Parser::EasyTree

Install using your distributions package manager or via cpan cpan Array::Utils Dancer::Plugin::Database Iterator::Util Path::Class XML::Parser::EasyTree

3) There were a couple of new LaTeX packages added for 2.10. Change to a writeable directory outside the webwork2 directory (like ~) Run pdflatex /opt/webwork/webwork2/check_latex.tex and look for missing packages. Added packages include booktabs,tabularx,colortbl,caption,xcolor,path.

  • In apt based systems you may have to install texlive-latex-recommended and yum based systems may have to install texlive-path
Warning : There currently is no package on CentOS 7 which provides the path package. You can manually download and install the Fedora package and it will work.

4) Check localOverrides.conf.dist and look for changes to add to the existing localOverrides.conf. They may include

  • Information for the Upgrade Notifier
################################################################################
# Repository Information
###############################################################################
# This is where you put your remote and branch for your WeBWorK, PG and OPL
# github repositories.
# To disable checking for a particular repository, set the remote and branch
# variables to be empty strings.
$enableGitUpgradeNotifier = 1;
$gitWeBWorKRemoteName = "origin";
$gitWeBWorKBranchName = "master";
$gitPGRemoteName = "origin";
$gitPGBranchName = "master";
$gitLibraryRemoteName = "origin";
$gitLibraryBranchName = "master";
  • Information for a local "site_info.txt" file
# This is the site_info file. You should consider changing this to point
# to a file which is not tracked by git
$webworkFiles{site_info} = "$webworkDirs{htdocs}/site_info.txt";
  • Default value for the showMeAnother feature
# The default showMeAnother for a problem to use when using the
# Library Browser, Problem Editor or Hmwk Sets Editor to add problems to a set
# or when this value is left blank in an imported set definition file. Note that
# setting this to -1 disables the showMeAnother button
$problemDefaults{showMeAnother} = -1; 

5) Check site-conf.dist and look for changes to add to the existing site.conf. They may include paths for the following external programs

  • Git $externalPrograms{git} = "/usr/bin/git";
  • TTH $externalPrograms{tth} ="/usr/bin/tth";
  • Curl $externalPrograms{curlCommand} = "/usr/bin/curl";

6) Run the upgrade_admin_db.pl command from webwork2/bin to upgrade your admin course database.

Warning : You will not be able to access the admin course until you perform this step.

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.

9) Download the latest version of the OPL using

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

Primary Changes

This version contains a couple of major additions to WeBWorK and a collection of smaller features. The major changes are listed below.

  • Accessibility: We made a number of changes to the math4 interface to make it much friendlier to screen readers and other accessibility tools. Rather than one large change this is a huge number of small tweaks and improvements.
    • All color contrasts should be up to AA level
    • There is an easy to see focus box now and a skip to main content link.
    • Tables and fields should mostly meet accessibility standards now. The big exception is that fields in problems do not have proper labels.
    • Added aria labels to fields generated by PG. These labels identify each answer field as "Answer 1", or "Answer 1 Part 1", etc... These are not technical replacements for input labels, but are functional replacements for most screen readers.
    • Made tweaks to make the student interface of WeBWorK easy to navigate using the tab key.
    • Reordered the problem results table to make more sense when read left to right and added links which change focus from the "correct/incorrect" text to the corresponding field.
    • The VPAT can be found at http://spot.pcc.edu/~ajordan/WeBWorKVPAT2-10.pdf
  • Update Notifier: When properly set up and enabled using the configuration files this will notify you when there are updates, or new versions, available for WeBWorK or PG. It will also notify you when there are updates to the OPL and if you need to run OPL-update. The notification appears on the Course List page of the admin course.
  • Theme Overrides: Using the files math4-overrides.css and math4-overrides.js administrators can include their own js and css in a way which will be compatible with future updates. Using this administrators can change coloring, the header images, or even basic functionality.
  • Show Me Another: Added a "Show Me Another" feature. When enabled this will give students the option of viewing a different version of their current problem. Depending on the configuration this version may or may not come with a solution, hints, the ability to check answers, or the ability to view correct answers.
  • Reduced Scoring: Changed how reduced scoring works so that instead of a fixed reduced scoring period, each set has an individual "reduced scoring date". After this reduced scoring date students will receive reduced credit for their answers.
  • PG Additions: There were a number of new PG macros added which provide some nice functionality.
    • niceTables.pl: This allows problem authors to create tables with a large degree of control, including accessibility support.
    • contextPercentage.pl: This is a context for Percentages.
    • contextAlternateDecimal.pl: This context allows ',' instead of '.' as decimal places.
    • contextAlternateInterval.pl: This context allows ']2,3[' as an alternate notation for open intervals.
    • contextInequalitySetBuilder.pl: This allows for inequality based set notation.
    • contextPartition.pl: This allows for partitions of integers.
    • contextPermutation.pl: This allows for permutation notation.
    • parserRoot.pl: This allows for more generalized roots.
    • scaffold.pl: This new Scaffolding structure is an upgrade to the existing compoundProblem series of macros.

Smaller Changes

This is a list of the smaller changes and bugfixes that are in this release. Note: Not all bugfixes are included.

  • System Updates
    • Changed password hashing to use SHA512. This allows passwords to be functionally longer than 6 characters and is much safer.
    • The Course Title and Course Institution are now stored in the setting database rather than being forgotten after course creation. I also made it so that the page title will be the course title on various pages that used to use courseID.
    • Added option to use a custom file in place of "site-info.txt". This will keep git from overwriting your site-info.txt changes.
    • Added options for customizing the amount of time between the open date, due date and answer date on set creation. These are used when creating sets via the webwork webservice, the problem set list 2 and the library browser (js and nojs).
  • General Interface Updates
    • Changed how display options work so that they are persistent. Now there will be no "Display Options" menu. Instead these are set in the "User Settings" page (formerly the "Password/Email" page) and persist across page calls and logins.
    • Changed how fields are colored to have a glow around the edge instead of a background color.
    • Fixed a bug where math in plain text mode would still get rendered by MathJax
    • Added hidden text to glyphicons to support screen readers.
    • Changed labels on some of the navigation buttons to be clearer.
    • Changed forms so that they dont spill over their containers on phones.
    • Default displayMode for new installations is now MathJax
  • Problem Page Updates
    • Changed results table order, results are now colored and contain a link pointing back to the corresponding input field.
    • Fixed a bug where the problem correctness coloring didn't work with MultiAnswers.
    • Made score rounding to be consistent with across all pages. Problems were always stored correctly but now everything is displayed using the same rounding subroutine.
    • Removed the configuration option for Drag Math. The feature can still be used if configured manually.
    • Removed the configuration option for pgMatrixMacros since those have been replaced by MathObjects. The flag can still be modified in course.conf.
    • Fixed a bug in rendering comments on essays.
  • Gateway Updates
    • Fix bug in grading where some gateway problems use weighted grader.
    • Fixed a bug where non-proctored gateway exams wouldn't work on some newer systems
    • Many of the tables, (grades, results, score summary) were redone to improve their look and accessibility.
    • Cleaned up the form for viewing Gateways in Student Progress
    • Added the MathView editor to GatewayQuizzes
    • Fixed a bug where reduced scores were not reported properly.
  • Library Browser Updates
    • Changed XMLRPC calls so they do not verify sll certificates. (Allows the Library Browser to be used with self signed ssl certs)
    • Fixed LTI authentication so that it works with XMLRPC calls (i.e. the Library Browser)
  • Achievement Updates
    • Fixed a bug where the item dropdowns might not allow student to select all the problems.
    • Fixed a bug where achievement items would produce errors when there are no open sets.
  • Show Answers
    • Blank entries are interpreted as * and * works with numbers.
    • Fixed a bug where gateway answer tags would get formatted as math.
  • File Manager
    • Changed the default names for rename and copy.
  • Hardcopy Updates
    • Upgraded how paths are displayed in hard copies to allow wrapping
    • Fixed a bug where radio buttons didn't print in hard copies properly.
    • Hardcopy now uses pdflatex and not dvips.
    • Fixed a bug where hardcopies could be generated for sets locked with conditional release.
  • Under the Hood Updates
    • Made it so that the debug log no longer contains unmasked passwords.
    • Fixed a bug where the admin course would keep trying to update non-native tables.
    • Cleaned up some pre WW3 code that was lying around in the WW2 directories
    • Added maketext hooks to lots of stuff. There is a great deal of translating that needs to be done.
    • Randomized which practice user is used when someone logs in as guest
    • Fixed a bug where clicking the log out button didn't log you out.
    • Fixed a bug with paths and shibboleth authentication.
    • Newer versions of CGI::pop_up dont respect the multiple attribute. Changed these to be scrolling_list.
  • Datepicker changes
    • Added a changed class to datepicker. Now it shows you which fields it has changed.
    • Fixed a bug where timezone codes with 4 digits were not handled properly
    • Added datepicker to the UserDetail page.
    • Added support for GatewayQuizzes
  • Problem Editor Updates
    • Changed the behavior of PGProblemEditor2 so that if you "Save As" or "Append" it will open the new file for editing instead of remaining on the old file.
    • Fix bug when tagging problems using tagging menus which can accidentally remove lines from the pg file.
  • PG Updates
    • Fixed a bug where fileFromPath didn't work on newer systems.
    • Upgraded AskSage error reporting and portability.
    • Fixed a bug when comparing ImplicitPlane objects
    • Fixed a bug where problems which used read_whole_problem wouldn't run on newer systems.
    • Fixed a bug where student answers would be interpolated by pg.
    • Fixed a bug where viewing temporary pg files generated errors from the tagging subsystem.
    • Fix MultiAnswer to set the correct_ans_latex_string, and also make it use the format and tex_format strings for the correct answer when singleResult is used.
    • Fix contextComplexJ so that it can be loaded in parserCustomization.pl, and so that it can allow or disallow each of the i and j notation independently.
    • Fix parserFunctionPrime.pl to handle names with primes properly in perl output (needed for answer checking, but not for display). Apparently this file never worked (argh).
    • Fix List answer checker to set correct_ans_latex_string when parens have been removed.
    • Don't force functions to be of class parser::FunctionPrime (this messed up differentiation, since parser::FunctionPrime has parent parserFunction, and that overrides the D method).
    • Fix problem with error messages when a restricted input format is required. Make sure constants display their TeX forms correctly. Force the constant i into the given context so that it produces the proper class when evaluated.
    • Added href to knowl links
    • Changed pts to points in PG header.
    • Added BLABEL and ELABEL to support labels in PG
    • Make PopUp and RadioButtons objects work properly with the new MultiAnswer name prefixes. (These didn't work with singleResult=>1 in the past, but now do.)
    • Fix an infinite loop when checking sets formed by unions
    • Avoid error messages from comparisons to strings and in testing for when the formula agrees with the previous one typed by the student.
    • Fixed a bug in the definition of cosh which could cause it to fail.

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.
  • 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.