Release notes for WeBWorK 2.4.5

From WeBWorK_wiki
Jump to navigation Jump to search
This article has been retained as a historical document. It is not up-to-date and the formatting may be lacking. Use the information herein with caution.

See more recent notes in Category:Release_Notes


                                     WeBWorK                                    
                         Online Homework Delivery System                        
                                  Version 2.4.5.x                                 

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

Details
-------

Release date: 2008 July 11
CVS tag: rel-2-4-5 
CVS branch: rel-2-4-patches
(the rel-2-4-dev branch will no longer being kept up to date)


Changes since 2.4.1

New features and important changes

  • Registration "feature". In an effort to find out how many WeBWorK servers are being actively used we have added a registration message and button which appears when you log in to the "admin" course to administrate your server. The "registration button" formats an email message which you can fill out send. At that point another button appears which allows you to declare that you have sent the message (whether you have or not :-) ) and the message disappears and will not appear again until the next major version. Please help out by registering any servers on which you host active courses. You need not register development or experimental servers which are not being used for instruction. (We now return you to your regular programming :-) )
  • BEGIN_HINT/END_HINT, BEGIN_SOLUTION/END_SOLUTION now work like BEGIN_TEXT/END_TEXT. Hints are shown after a certain number of tries, and solutions are shown after the answers available date.
  • Calculator like syntax can now be used to create TeX code in BEGIN_TEXT/END_TEXT blocks by using backticks:
  `(x^2-3x+5)/(x^2-5)`  
  • context parameters are now inherited. The following sets the relative tolerance of $x to 1 per cent. (See details in next

section)

     $x = Real(1)->with(tolerance=>.01);
     $y = sin($x);
     # $y will also have tolerance set to .01.
  • answerHints.pl This file implements a postfilter for AnswerEvaluators that allows you to specify answer hint messages to use when specific answers or sets of answers are given by the student. You can use specific constants or a perl subroutine to determine which answers to respond to. You can also specify a score to use when the answers are triggered, and whether to replace existing messages or not. See the comments in the POD documentation for more details.
  • contexts -- new and changed
    • new contextLimitedPowers.pl See the comments in the POD documentation for more details.
    • new contextScientificNotation.pl Real() can create ScientificNotation objects.
    • changed Vector2D context no longer needed: When context flag (ijkAnyDimension is set to 1 then i+2*j will equal <1,2> even though i and j are vectors in 3-space. The value of ijkAnyDimension is 1 by default. This eliminates the need for the Vector2D context.
    • changed Point context no longer includes vector operations. Students cannot use vector operations in constructing answers when in Point context. Use "Vector" context if you wish to allow their use.
    • changed In "Interval" context, allow interval data to be given in more forms (eg, (a,b,"(",")") in addition to ("(",a,b,")"), since that is the order that the value() method returns the data.)
    • new problemPreserveAnswers.pl Allows $ and other special characters to be preserved in student's answers. This is a temporary fix (see POD documentation in file).
    • new problemRandomize.pl - Reseed a problem so that students can do additional versions for more practice.
    • changed Diagnostics can now be used in the Complex context (for plotting real valued functions)
$formula->cmp(diagnostics=>1);  

This is used mainly for debugging when a student's answer is not being evaluated correctly. The diagnostics flag prints a graph of the function being evaluated enabling the instructor to determine if there might be points where round-off errors or other numerical problems might be causing the mis-evaluation.

  • Memory leak in Formula fixed. (since revision 1.59) (See details in next section.)
  • improved differentiation of log() and abs()
  • Patched bug in NumberWithUnits
  • Fix loadMacros() and alias() so that they find auxiliary files even when the .pg file is in templates/tmpEdit.
  • Fixed bad behavior of the Library Browser (SetMaker) when two auxiliary files in different subdirectories had the same name.
  • plot_functions uses MathObjects behind the scenes but does not automatically load the file MathObjects.pl. (This is because there are still some conflicts between MathObjects and Matrix types and automatically including MathObjects can cause difficulties.) You will need to load both PGgraphmacros.pl and MathObjects.pl to use "plot_functions". This annoyance will be removed as we reconcile MathObjects, the old RealMatrix objects and GraphObjects.
  • added "print_path_to_problem" permission level (default professor). If the user has a permissions above this level the "path to file" string is displayed with each question so that you know the path to the file that needs to be edited to change the question.

Technical changes

  • inheriting context parameters.
The make() method now inherits all the settings of the parent object,
so that flags set by the user (e.g., tolerances, periods, and so on)
will be passed on as new objects are created.  For example, in

     $x = Real(1)->with(tolerance=>.0001);
     $y = sin($x);

$y will also have tolerance set to .0001.

This also applies to binary operations, where the result will now
inherit all the values of either operand, with the left-hand operand
taking precedence when they both have a flag set but to different
values.

This is a significant change, and there may be unforeseen side effects
that I'll have to take care of as they appear.  It passes my test
suite, however, so I'm hoping they will be limited.
  • memory leak
Formula objects and Context objects contain reference loops, which
prevent them from being freed properly by perl when they are no longer
needed.  This is a source of an important memory leak in WeBWorK.  The
problem has been fixed by using Scalar::Util::weaken for these
recursive references, so these objects can be freed properly when they
go out of scope.  This should cause an improvement in the memory usage
of the httpd child processes.

Upgrade instructions

Upgrading from 2.4.1

--------------------

1. Before beginning, back up your WeBWorK database and course directories.

2. Recommended: Update WeBWorK to the "tip" of the 2.4.x branch.
 rel-2-4-patches is our stable release that will also include bug
 fixes and "safe" new features before they are  included
 in the next official release. To obtain this version and 
 subsequently to update the version to include the latest 
 bug fixes and features, use the following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-patches

cd /opt/webwork/pg
cvs -q up -dP -rrel-2-4-patches

----------------------------------------------------------------
(the option below is not yet available -- should be released by July 14, 2008)

2alt. To update WeBWorK to exactly 2.4.5, use the following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-5


cd /opt/webwork/pg
cvs -q up -dP -rrel-2-4-5

This version will remain unchanged and will not include 
periodic updates for bug fixes.
----------------------------------------------------------------

3. Merge changes from global.conf.dist, database.conf.dist, and
webwork.apache-config (if you are using Apache 1) or webwork.apache2-config (if
you are using Apache 2) into your configuration files.  See below for list of changes.


4. If you are using the National Problem Library, re-run bin/NPL-update to update
the database format to the latest version. (You may want to update 
the library files from the cvs before you do this.)

5. No database changes occurred between 2.4.1 and 2.4.5, so running bin/wwdb_upgrade
is not necessary unless you are updating from a version of WeBWorK earlier than 2.4.1

Upgrading from 2.4.0

--------------------

Before beginning, back up your WeBWorK database and course directories.

To update WeBWorK to exactly 2.4.1, use the following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-1

To update WeBWorK to the "tip" of the 2.4.x branch, which is mostly stable and
includes bug fixes and new features before they are officially released, use the
following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-dev

If you are using the National Problem Library, re-run bin/NPL-update to update
the database format to the latest version.

No database changes occurred between 2.4.0 and 2.4.1, so running bin/wwdb_upgrade
is not necessary. No configuration file changes occurred between 

Upgrading from 2.3.x

--------------------

Before beginning, back up your WeBWorK database and course directories.

To update WeBWorK to exactly 2.4.1, use the following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-1

To update WeBWorK to the "tip" of the 2.4.x branch, which is mostly stable and
includes bug fixes and new features before they are officially released, use the
following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-dev

Merge changes from global.conf.dist, database.conf.dist, and
webwork.apache-config (if you are using Apache 1) or webwork.apache2-config (if
you are using Apache 2) into your configuration files.

Run bin/wwdb_upgrade -v to upgrade your database. If you receive errors about
modelCourse it is OK to go on -- modelCourse is not a real course.

If you are using the National Problem Library, the loadDB2 script in the
database_problems directory has been replaced with a new bin/NPL-update script
in the main webwork2 distribution. The problem library metadata is now stored
within the main webwork database. Run bin/NPL-update to load the problem
metadata into the its new location. It is safe to remove the separate
ProblemLibrary database.

Upgrading from 2.2.x

--------------------

Make sure you are using the sql_single database layout for all the courses you
wish to continue to use. After you upgrade, courses using other database
layouts will be inaccessible. Move non-sql_single courses out of your courses
directory.

The standard directory layout of WeBWorK has changed since 2.2.x. We now suggest
that you place the webwork2 directory, as well as the pg, courses, and
libraries, directories in /opt/webwork rather than in /opt.

To update WeBWorK to exactly 2.4.1, use the following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-1

To update WeBWorK to the "tip" of the 2.4.x branch, which is mostly stable and
includes bug fixes and new features before they are officially released, use the
following commands:

cd /opt/webwork/webwork2
cvs -q up -dP -rrel-2-4-dev

Merge changes from global.conf.dist, database.conf.dist, and
webwork.apache-config into your configuration files.

Run bin/wwdb_check -v to verify that your database is up-to-date for version
2.3.0 (the first version that included automated database upgrades). Then run
bin/wwdb_upgrade -v to upgrade to bring your database up-to-date for version
2.4.1.

Getting help
------------

The best place to get support is in the WeBWorK discussion forums located at:
http://webwork.maa.org/moodle/course/view.php?id=2

To report bugs:
http://bugs.webwork.rochester.edu/

Lots of WeBWorK documentation:
http://webwork.maa.org/wiki/