Release notes for WeBWorK 2.4.5

From WeBWorK_wiki
Jump to navigation Jump to search
                                     WeBWorK                                    
                         Online Homework Delivery System                        
                                  Version 2.4.5.x                                 

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

Details
-------

Release date: 2008 ?? July
CVS tag: rel-2-4-5 (.1)?
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

Major changes

pg

  • 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:
  `(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 file for more details.
  • new contexts
    • contextLimitedPowers.pl See the comments in the POD documentation for more details.
    • contextScientificNotation.pl New context.
  • changes in existing contexts
    • 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.
    • Diagnostics works in the Complex context (for plotting real valued functions)
$formula->cmp(diagnostics=>1);
    • Point context no longer includes vector operations
    • 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.)
  • 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 as well as the . There are still some conflicts between MathObjects and Matrix types so include MathObjects explicitly with PGgraphicmacros.pl if you want to use MathObjects

Technical changes

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


doc

WeBWorK2

Upgrade instructions

Upgrading from 2.4.1

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

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

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

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

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-patches

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.

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

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

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/