Difference between revisions of "Release notes for WeBWorK 2.4.9"

From WeBWorK_wiki
Jump to navigation Jump to search
m (fixed broken link)
 
(159 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{UnderConstruction}}
 
  +
{{Historical }}
   
  +
See more recent notes in [[:Category:Release_Notes]]
 
<pre> WeBWorK
 
<pre> WeBWorK
 
Online Homework Delivery System
 
Online Homework Delivery System
Line 13: Line 14:
   
   
Release date: 2010 November 15
+
Release date: 2010 December 1
 
SVN tag: rel-2-4-9
 
SVN tag: rel-2-4-9
 
SVN url/branch: http://svn.webwork.maa.org/system/trunk module
 
SVN url/branch: http://svn.webwork.maa.org/system/trunk module
Line 19: Line 20:
 
</pre>
 
</pre>
   
== We have switched to using SVN instead of CVS for this and all future updates ==
 
Except Moodle module updates which will remain CVS while the other components remain CVS.
 
   
== Changes between 2.4.7 and 2.4.9 ==
 
  +
IMPORTANT!! Be sure to inspect changes in the configuration files when upgrading to this release.
   
=== Changes in Configuration files ===
 
  +
= For Students =
   
It is important to compare the global.conf.dist files with global.conf
 
  +
== New features 2.4.9 ==
(and similarly database.conf.dist and database.conf and webwork.apache2-conf.dist
 
and webwork.apache2-conf ). The differences that you recognize as being made to
 
accomodate local settings (e.g. location of standard unix tools, or preferences on how webwork
 
behaves) should be preserved in global.conf. New lines appearing in global.conf.dist should probably
 
be transferred over. This is especially true of new permission lines and of new module lines
 
   
Here are some of the significant sections of global.conf that have been changed. (This also gives a good
 
  +
=== Tool tips for previewing answers ===
overview of what has changed since rel-2-4-7. ) You
 
  +
* The "preview answers" and "correct answers" fields which respond to student entries are now typeset. Hovering over the fields will bring up a tooltip with the entry in it's original unformatted form. The tooltip contents can be copied and pasted back into answer blanks if desired.
can get full report of all changes by using the SVN diff facility and comparing the current
 
  +
* This feature uses the open source tooltips javaScript suite written by Walter Zorn. The code is stored in the file webwork2/htdocs/js/wz_tooltip.js.
version with the version from June 2009 when rel-2-4-7 was released.
 
  +
* This makes the "Entered" field redundant since it's content is identical to the tooltip which comes up when hovering over the "preview answers" field. It's likely that we'll remove the "Entered" field at some later date unless there is good reason to keep it.
   
http://http://webwork.maa.org/viewvc/system/trunk/webwork2/conf/global.conf.dist?r1=6441&r2=6073
 
  +
=== Hardcopy changes ===
  +
* Added separate checkbox for printing answers entered by students for any hardcopy (including quizzes). The print correct answer checkbox remains as well. The "print student answers" box is checked by default.
  +
* 7/17/09 Allow instructor to print hardcopy for student by adding effectivePermissionLevel (level of user to whom question has been assigned) and permissionLevel (user viewing the assignment) to the PG environment.
   
# Control of WeBWorK's email feedback system is enhanced. It is possible to redirect the email to be sent to a url for posting. It is also possible to replace the email form itself with an external url. (Constructed for use by MathNerds)
 
  +
=== MathJax option ===
# All urls refering to webwork.rochester.edu machines have been changed to webwork.maa.org machines.
 
# Controls for MathJax (the new upgraded jsMath) have been added in several sections. You can allow the user to chose between jsMath, MathJax and images when viewing equations.
 
# The timezone is initialized to America/New_York by default instead of to blank.
 
# The moodle authen configuration has been removed -- it is no longer used in moodle/webwork installations
 
# There are additional configuration options when using LDAP directly with WeBWorK. (thanks to Mark Hamrick and Jason Aubrey).
 
# "report_bugs" permission defaults to ta now rather than to student.
 
# "download_hardcopy_view_errors" has been added and set to "professor".
 
# The paths to many macro libraries in the NationalProblemLibrary have been added by default. This will lead to fewer surprises when a question written at another school appears not to work because it can't find the appropriate macros.
 
# More URLS have been added to the search paths for applets, including geogebra.
 
# The default positions of the CAPA libraries have been changed.
 
# Added the capability to define problemDefaults for max_attempts and value on a course basis from the web using the Course Configuration page or site wide using global.conf.
 
# Controls for the reducedScoringPeriod have been added. (Less credit if the student hands homework in late.)
 
# Can specify defaultDisplayMatrixStyle in ansEvalDefaults.
 
# IMPORTANT. The "List" module's name has been changed to "ChoiceList" to avoid confusion with the MathObjects "List" object. List is called by Math, Multiple and several other modules but is seldom called directly except in macro files. The macrofiles in the NPL (especially Union) have been modified to accommodate this change. This change will break questions that called List directly but that seems to be a rare occurence.
 
# The modules PGcore, PGalias, PGresource PGloadfiles PGanswergroup, PGresponsegroup, Tie::IxHash have been added. This is the beginning of a major upgrade to the internals of the PG language. It will not affect most users, but it may affect questions or macros that use the lowest level internal functions designed for matching answer blanks with answer evaluators. The macros in the NPL have been modified to accommodate these changes.
 
# Added the module CanvasApplet which implements HTML5 techniques for inputting a graph.
 
# Added -d flag to lwp-request to reduce overhead when checking urls with checkurl
 
   
=== Changes in site administration operations ===
 
  +
* MathJax (a successor to jsMath) can now be selected as a means of displaying the mathematics equations.
  +
** "No more setup for readers. No more browser plugins. No more font installations… It just works."
  +
** [http://www.mathjax.org/resources/articles-and-presentations/accessible-pages-with-mathjax/ MathJax and accessibility (ADA) ]
  +
*See [http://www.mathjax.org/ MathJax] for more details.
   
We continue to make incremental changes to increase the power of administering WeBWorK from the web instead of from the command line.
 
  +
=For Course Instructors=
The archive and unarchiving process has been made more robust. The integrity of the database structure is checked before archiving and when unarchiving a course.
 
# The automatic integrity checking of each course when the admin homepage loads has been discontinued. The integrity is now checked only when you choose the "Upgrade Course" tab. This speeds up loading of the admin site when there are many courses on the site.
 
# You will need to upgrade each active course when upgrading from 2.4.9 to 2.4.7 since the reducedScoringPeriod feature has added extra fields to the database.
 
# The Upgrade Course allows one to select multiple courses for upgrading. The course's integrity -- the agreement between the courses data structure in the database and the datastructure defined in database.conf -- is analyzed as well as the existence and permissions set for the various directories in the course. Simple and safe fixes can then be performed by clicking the upgrade course button. More complicated fixes must still be performed from the command line since a bad fix is usually worse than no fix at all.
 
# Multiple courses can be selected for archiving. Each one is screened and approved individually but the list of courses to work on is selected at the start. There is a known bug in the process which stops work on the remaining list of archive courses if one declines to archive one of them.
 
# An instructor can archive their own course from the File Manager page. This allows them to back up courses and save them for a later semester. The integrity of the course is automatically checked and updated if necessary (and possible). There is no opportunity to decide not to update. Only administrators with command line access can unarchive a course.
 
# The Upgrade Course facility means that the command line module DBupgrade.pm is no longer used for upgrades. It might be needed if one is sequentially updating a release that is more than 3 years old.
 
# It is possible to access the integrity subroutines from the command line and to build custom command line scripts which batch process the archiving, upgrading and unarchiving of courses. -- for details see the forum and the wiki -- for descriptions of how this has been done at individual sites. These scripts usually need to be modified for use at a new site, but they provide a starting point.
 
   
Other:
 
  +
== New features added to 2.4.9 ==
 
# Removed the possibility of selecting moodle_sql which is now obsolete. Only one schema: sql_single is currently being used.
 
   
 
=== Changes to course administration ===
 
=== Changes to course administration ===
* Added buttons (javaScript) to select all or unselect all on the classlist and homework set editor pages
+
* Added buttons (javaScript) to select all or unselect all checkboxes on the classlist and homework set editor pages
 
   
 
=== Extensions to "Email the instructor" ===
 
=== Extensions to "Email the instructor" ===
Line 84: Line 56:
 
* If $courseURLs{feedbackURL} is not empty then the form filled out by the student is submitted to that URL for processing. For example this could be used to submit the email for posting to a joint Moodle wiki where the message could be viewed and replied to by the entire class.
 
* If $courseURLs{feedbackURL} is not empty then the form filled out by the student is submitted to that URL for processing. For example this could be used to submit the email for posting to a joint Moodle wiki where the message could be viewed and replied to by the entire class.
   
* If $courseURLs{feedbackFormURL] is not empty then the button calls up the form supplied by that URL. For example this could be used to call up the welcome form for a tutoring site (such as MathNerds).
+
* If $courseURLs{feedbackFormURL} is not empty then the button calls up the form supplied by that URL. For example this could be used to call up the welcome form for a tutoring site (The video session [[MathNerds.com_(Video)]] describes the interaction of WeBWorK and the free online tutoring service [http://mathnerds.com/ MathNerds] ).
   
=== Extended and (more) Unified Naming conventions ===
 
  +
While these preferences can be set on a course by course basis it is probably best if the changes are made to course.conf by someone with command line access (e.g. the site administrator) in case something goes wrong. There is no safety net (from the web) when modifying course.conf.
  +
  +
=== Extended and unified naming conventions ===
   
 
* Set names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and commas(.), colons (:), and slashes(/).
 
* Set names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and commas(.), colons (:), and slashes(/).
 
* User names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and at signs(@). This allows the use of most email addresses as login user_id's. For safety the at sign, comma and period are converted to underbars when labeling on-the-fly graphs.
 
* User names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and at signs(@). This allows the use of most email addresses as login user_id's. For safety the at sign, comma and period are converted to underbars when labeling on-the-fly graphs.
* Problem_id's can contain only numbers
+
* Problem_id's can contain only numbers.
 
* IP's (used in proctored gateway quizzes) can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), commas(.), colons (:), and slashes(/).
 
* IP's (used in proctored gateway quizzes) can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), commas(.), colons (:), and slashes(/).
 
* FileManager will allow commas in directory names.
 
* FileManager will allow commas in directory names.
 
* Periods in set names are automatically converted to _ when printing hardcopy to avoid incompatibility with TeX. Still it is probably wise to limit set names characters to letters, numbers and underbars to avoid conflicts with auxiliary tools such as TeX, and mySQL.
 
* Periods in set names are automatically converted to _ when printing hardcopy to avoid incompatibility with TeX. Still it is probably wise to limit set names characters to letters, numbers and underbars to avoid conflicts with auxiliary tools such as TeX, and mySQL.
* Image names can contain underbars
+
* Image names can contain underbars and still act peacefully with TeX (at least most of the time :-) ).
   
In conjunction with this a centralized macro in DB.pm check_user_id is called to make sure that user names conform
 
  +
Technical note:
to the standards above. This is also done when uploading classlists. It is hoped that this will eliminate a bug
 
  +
In conjunction with this unified naming convention a centralized macro in DB.pm, check_user_id, is called to make sure that
where bad characters were entered with a student's login ID which made it difficult to change the student's name
 
  +
user names conform to the standards above. This is also done when uploading classlists. It is
or remove them from the database.
 
  +
expected that this will eliminate a previous bug which allowed student ID's with non-English characters
  +
to corrupt the database resulting in non-deletable users with "diamond" characters in their user names.
   
=== New Help Files for students ===
 
   
=== Tool tips for previewing answers ===
 
   
=== NPL additions ===
 
  +
see [[Naming_conventions]] for further updates.
* CAPA
 
* FortLewis
 
* LoyolaChicago
 
* Michigan (from HughesHallet)
 
* bug fixes and updates (thanks to Spyro Roubos)
 
   
=== Support for show source button ===
 
  +
=== User Interface Changes ===
   
  +
* HINTS and SOLUTIONS now are always shown to instructors -- this makes it easier to proof read all parts of a WeBWorK question including the solutions and instructions sections.
  +
* There is now a cleaner syntax for the hints and solution sections: BEGIN_HINT / END_HINT and BEGIN_SOLUTION / END_SOLUTION.
  +
BEGIN_HINT is translated into TEXT(HINT(EV3P(<<'END_HINT'))); which is unwieldy to type directly.
  +
BEGIN_SOLUTION has a similar translation.
   
=== PG language enhancements ===
+
=== NPL additions ===
   
==== New and changed contexts ====
 
  +
We have added libraries of questions donated by these institutions to the NationalProblemLibrary:
==== New macro files ====
 
   
=== Applets ===
 
  +
* FortLewis -- from Paul Pearson at Fort Lewis College in Durango, CO
==== Geogebra ====
 
  +
* LoyolaChicago -- Loyola University in Chicago
==== Draw graph inputs ====
 
  +
* Michigan (questions drawn from the Gleason, Hughes- Hallet, et. al. text) questions written by Gavin LaRose at U. of Michigan
  +
* NationalProblemLibrary questions have been upgraded with many bug fixes and improvements. (thanks to Spyro Roubos)
   
=== BEGIN_PGML/END_PGML ===
 
  +
* [https://courses.webwork.maa.org/webwork2/physics_library/?login_practice_user=true Physics problems] are now available -- adapted by the Frank Wolfs (at University of Rochester) and his students from the CAPA physics problem collection. These can be downloaded from the <code>rochester</code> section of the svn repository but they are not yet part of the NationalProblemLibrary. (tagging remains to be done.)
   
=== PG changes "under the hood" ===
+
=== Model Course Examples ===
   
  +
We are collecting examples of questions from the NationalProblemLibrary which are appropriate to courses typically taught at colleges and universities in the US. Here is our first collection for 1st semester calculus.
   
==== Potential changes needed to adjust to new basic structure of PG ====
 
  +
* This first [https://test.webwork.maa.org/moodle/course/view.php?id=8 model calculus problem collection] was taken from a first semester "Engineering calculus" course taught at the University of Rochester in 2007 using Stewart's Calculus text book.
*Use ANS_NUM_TO_NAME(1) macro instead of calling AnSwEr1 directly (the label might change)
 
  +
* This collection also indicates the interaction of Moodle and WeBWorK. An outline for the course with chapters from Stewart is listed in the week by week syllabus page of Moodle. Each week has a link to the corresponding homework set in WeBWorK.
  +
* You can log in using the guest login button.
   
* New [Category:Applets Applet macros]:
 
  +
Encouraging best practices in coding WeBWorK problems.
** basic [[Applets]] API and demo links,
 
** POD documentation: [http://webwork.maa.org/doc/cvs/pg_CURRENT/lib/Applet.html Applet.pm], [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/AppletObjects.pl.html AppletObjects.pl]
 
** details for constructing WeBWorK compatible [[FlashApplets]]
 
** basic information for [[JavaApplets]]
 
* WWPlot's <code>lineTo()</code> accepts linewidth and "dashed" options
 
* New contexts:
 
** Fraction -- maintains rational numbers
 
** Ordering -- for handling ordered lists of letters like "D > A = C > B" in answers
 
* "Problem source" instructions -- allows placement of a "Problem source" button in questions -- used for demonstrating how WeBWorK questions are coded.
 
   
  +
*The most important aspect of this collection is that the questions were rewritten to use MathObjects where ever possible and the questions represent the current ''' "best practices" ''' for writing new WeBWorK questions (as of 2010).
  +
* You can view the code for each question using the "Show Problem Source" button.
   
== Moodle wwassignment changes ==
 
  +
* This [https://test.webwork.maa.org/moodle/course/view.php?id=8 model calculus problem collection] (use guest login button) and
  +
* This wiki's [[:Category:Problem_Techniques |Problem Techniques Category]] provide good resources for authors just beginning to write WeBWorK questions as well as for authors with more experience.
  +
*Another useful reference is the [[PGLabs]] page where one can try out snippets of PG code without creating an entire problem.
   
== Independent editor features ==
 
  +
== Moodle wwassignment/ WebworkSOAP changes ==
   
== Bug fixes ==
 
  +
The [[WeBWorK/Moodle_bridge(Video)]] describes using Moodle and WeBWorK together.
  +
  +
mod/wwassignment php files changed in Moodle
  +
  +
* 9/20/2009 correctly calculate point problems for grades rather than just the number of correct answers.
  +
* 9/20/2009 only administrators can edit a wwlink block to connect to a webwork site or course. (Instructors are not given permission to do this.)
  +
* 10/1/2009 Modify upgrade_dirty_sets() subroutine so that only wwassignment modules that have been touched since the last cron job are updated. Before this all grades in all courses (even archived courses) were updated causing unnecessary load on the server.
  +
* 10/03/2009 Refresh calendar events for the course (part of upgrade_dirty_sets)
  +
* 9/27/2010 Added a line that prevents errors when one of the moodle courses is no longer available.- The grade transfer process is skipped in this case.
  +
* 9/27/2010 make modifications that allow gateway quizzes to be initiated from Moodle.
  +
* 9/27/2010 Added to the grade_sets routine so that gateway quizzes can also have their grades returned to Moodle (first added 9/27/2010 in branches/gage_dev)
   
* 8/29/09 fixed bug in hardcopy preventing printing when no set was selected.
 
* 9/24/09 fixed bug in CourseIntegrityCheck that confused msql tables of math101 and math101_fall09
 
* 9/30/2009 First of changes working around bugs in CGI.pm that handle student permissions badly -- in pop up menus because they have permission level 0. This might require tweaking depending on the copy of CGI.pm used on your machine.
 
* 1/23/2010 second attempt to fix the CGI bug.
 
* 12/16/2009 Fixed major security hole -- only files below templates directory should be accessible from the homework set detail page (described in ProblemSetDetail.pm ).
 
* 11/4/09 fixed bug in useBaseTenLog
 
* 1/11/2010 Fix bug that gave error message when problem had not been assigned to any user.
 
* 1/11/2010 Give more reasonable warning message if timezone is not correctly defined.
 
* 5/13/2010 fixed mysqldump bug that affects archiving. (changes in Schema/NewSQL/Std.pm) - work around for non-documented behavior of --defaults-file and --defaults-extra-file flags in calling mysql from the command line. This may need to be adjusted on different servers.
 
* 5/14/2010 fixed typo in num_sort
 
* 5/18/2010 insure that hardcopy error files can be read by the instructor from the web.
 
* 6/8/2010 NPL update fix (from Gavin)
 
* 7/20/ update findAppletCodebase (in PGalias.pm)
 
* 7/21/2010 bugfix to ww_applet_support.js
 
* 9/27/2010 make modifications that allow gateway quizzes to be generated and taken from moodle
 
   
 
== Gotchya's ==
 
== Gotchya's ==
* If you edit a student from the classlist page then their status may be reset to guest (the lowest -5) because the student status of 0 is incorrectly read as blank. The correct workaround for this "feature" depends on which version of CGI.pm is being used. The changes are around line 1514 of UserList.pm. The changes work for 3.42 but the original line on 1514 works with CGI 3.49 and the changed line does not. This is recognized as a problem by CGI.pm maintainers and we don't yet have code that will work with both versions of CGI.pm
 
1514 default => $default,
 
is changed to
 
1514 -default => [$default], # force default of 0 to be a selector value (instead of
 
1515 # being considered as a null -- now works with CGI 3.42
 
   
* There is a bug in the way mysql flags work. Changes may need to be made for the version used on your server. (The change is in Schema/NewSQL/Std.pm) and involves the flags: --defaults-extra-file and --defaults-file which are used to retrieve temporarily cached credentials for accessing mysql.)
 
  +
* A new method of storing data for past answers has been implemented with this version of WeBWorK. Past answers entered into courses created with a previous version of WeBWorK here will be lost once a new answer is entered. There will be a warning message the first time this is done. It will read something like:
  +
* problem fetching answers -- possibly left over from base64 days. Not to worry -- press "Preview" or "Submit"
  +
and this will go away permanently for this question. Storable binary ....
   
[[Release_notes_for_WeBWorK_2.4.7]] and previously.
 
  +
This will only be noticeable to instructors viewing old courses or to students who are viewing problems from an old course which they answered using a previous version of WeBWorK. This warning message goes away as soon as the question is answered once using the new system.
   
=== New features and important changes===
 
  +
= For WeBWorK question authors =
* 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.
 
* [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/answerHints.pl.html 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 [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/answerHints.pl.html POD documentation] for more details.
 
* '''contexts -- new and changed'''
 
** '''new''' [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/contextLimitedPowers.pl.html contextLimitedPowers.pl] See the comments in the POD documentation for more details.
 
** '''new''' [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/contextScientificNotation.pl.html 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''' [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/problemPreserveAnswers.pl.html 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''' [http://webwork.maa.org/doc/cvs/pg_CURRENT/macros/problemRandomize.pl.html 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.
 
   
== Upgrade instructions ==
 
  +
=== Best practices examples ===
=== Upgrading from 2.4.5 ===
 
   
1. Before beginning, back up your WeBWorK database and course directories.
 
  +
Where to find advice on best practices for coding WeBWorK problems.
   
2. If you have been updating WeBWorK on the <code>rel-2-4-patches</code> branch then using the <code>cvs update</code> command then you can simply update in order to get the 2.4.7 release. This will also work if you installed 2.4.5 from a tarball, since the CVS directory files are automatically set to update from the rel-2-4-patches repository.
 
  +
*The most important aspect of the [https://test.webwork.maa.org/moodle/course/view.php?id=8 model calculus problem collection] (login as guest) described above is that the questions were rewritten to use MathObjects where ever possible and the questions represent the current ''' "best practices" ''' for writing new WeBWorK questions (as of 2010).
  +
* You can view the code for each question using the "Show Problem Source" button.
  +
* This [https://test.webwork.maa.org/moodle/course/view.php?id=8 model calculus problem collection] and
  +
* This wiki's [[:Category:Problem_Techniques |Problem Techniques Category]] provide good resources for authors just beginning to write WeBWorK questions and for authors with more experience.
  +
*Another useful reference is the [[PGLabs]] page where one can try out snippets of PG code without creating an entire problem.
   
cd /opt/webwork/pg
 
  +
=== New Help Files for students ===
cvs status
 
  +
This new feature makes it easy to provide
will return information indicating the current release you are using: rel-2-4-5 or rel-2-4-patches
 
  +
answer formatting information and other help for students
  +
in a consistent manner.
  +
* Example: <code>\{ AnswerFormatHelp("formulas") \} $PAR</code>
  +
* The helpFiles currently available are
  +
angle, decimal, exponent, equation, formula, fraction,
  +
inequalit, interval, log, limit, number, point, syntax, unit, vector
  +
Thanks to Paul Pearson for the helpFile macros.
   
cd /opt/webwork/pg
 
  +
Details:
cvs update -dP
 
  +
# Usage
should update your system to rel-2-4-patches, which at this release date is the same as rel-2-4-7, but makes it
 
  +
#
easy to acquire minor bug fixes that are added tot he rel-2-4-7 distribution.
 
  +
# DOCUMENT();
  +
# loadMacros("PGstandard.pl","AnswerFormatHelp.pl",);
  +
# TEXT(beginproblem());
  +
# BEGIN_TEXT
  +
# \{ AnswerFormatHelp("formulas") \} $PAR
  +
# \{ AnswerFormatHelp("equations","help entering equations") \} $PAR
  +
# \{ AnswerFormatHelp("formulas","help (formulas)","http://webwork.someschool.edu/dir/subdir/") \}
  +
# END_TEXT
  +
# ENDDOCUMENT();
  +
#
  +
# First example: use defaults.
  +
#
  +
# Second example: use customized text displayed to the student
  +
# as the html link.
  +
#
  +
# Third example: additionally points to a particular URL where
  +
# html help files are located. The URL must end with a forward slash.
  +
#
  +
# The third method is not recommended, as a universal, site-wide,
  +
# or course-wide solution obtained by modifying the value of
  +
# $helpdir in NPL/macros/FortLewis/AnswerFormatHelp.pl is preferable to setting the
  +
# URL in every individual PG file manually.
   
To check that the update has worked use
 
  +
The default location for help files is in the directory <code>webwork2/htdocs/helpFiles/</code>.
cd /opt/webwork/pg
 
cvs status
 
again and check the the release branch is now rel-2-4-patches.
 
   
If your current installation is an earlier release, or if the cvs update is not updating to rel-2-4-patches use
 
  +
=== Client editor features ===
   
cd /opt/webwork/pg
 
  +
There is now support for authoring and editing WeBWorK questions on your local computer using your favorite editor. Once you have written the question you can send it to a WeBWorK site for conversion into HTML. The html is returned to your computer where it is displayed in your browser.
cvs update -dP -r rel-2-4-patches
 
 
After updating the <code>pg</code> directory successfully update the <code>webwork2</code> directory
 
   
cd /opt/webwork/webwork2
 
  +
* The script ...webwork/clients/renderProblem.pl will render a WeBWorK problem submitted from the command line.
cvs update -dP
 
  +
* It does this by making a webservice call to a WeBWorK site via the XML_RPC protocol requesting that the contents be rendered as a WeBWorK PG question.
  +
* The script will work with most modern editors to allow you to check a WeBWorK question from within an editor such as BBedit, emacs, or gedit with a single command key. This allows you to use all of the features of your favorite editor while creating new WeBWorK questions and to store the file containing the question in a directory on your desktop machine.
  +
* For minor corrections of WeBWorK questions already in a homework set it is still quicker to use the PG editor in WeBWorK itself.
  +
* For those using Firefox the plug-in [https://addons.mozilla.org/en-US/firefox/addon/4125/ "It's all Text"] allows you to edit TEXT AREA regions of an HTML form in your favorite editor. I often do this when making extensive changes to a WeBWorK question already in a homework set.
  +
* See [[Client_Editor]] for more details on configuration, use and the internal technical details.
   
etc.
 
  +
=== New and changed contexts ===
   
3. Merge changes from global.conf.dist, database.conf.dist, and
 
  +
* Almost all of the Context and Parser files in pg/macros have been created or updated since release 2.4.7. This greatly increases the ease with which answers can be checked.
webwork.apache-config (if you are using Apache 1) or webwork.apache2-config (if
 
  +
*Details can be found on the [[Specialized_contexts]] page.
you are using Apache 2) into your configuration files. See below for list of changes.
 
   
  +
=== Additional changes to macro files ===
   
4. If you are using the National Problem Library, re-run bin/NPL-update to update
 
  +
* Status of LiveGraphics3D.pl
the database format to the latest version. (You may want to update
 
  +
* Moving common macros from NPL/macros/Union to pg (display table and list macros)
the library files from the cvs before you do this.)
 
  +
* Move AnswerFormatHelp.pl to pg/macros directory
   
5. No database changes occurred between 2.4.5 and 2.4.7, so running bin/wwdb_upgrade
 
  +
=== DEBUG and WARNING channels ===
is not necessary unless you are updating from a version of WeBWorK earlier than 2.4.1
 
   
</pre>
 
  +
There are two new channels for transmitting warning or debug information from inside a WeBWorK problem to the
* [[Changes in global.conf.dist from Release 2.4.5 to 2.4.7]]
 
  +
outside. These are just preliminary versions and the exact behavior may change over time. At the moment they behave
* [[Changes in webwork.apache-config.dist from Release 2.4.5 to 2.4.7]]
 
  +
in the same way and simply print their message at the end of the problem.
* [[Changes in database.conf.dist from Release 2.4.5 to 2.4.7]]
 
  +
DEBUG_MESSAGE("This is a message used while debugging a WeBWorK question -- for example it might show the value of $myVariable");
  +
WARNING_MESSAGE(" This message might be left permanently in a WeBWorK question to warn about some
  +
unexpected error -- e.g. division by zero ");
  +
The main reason for having two of them, is that one can do a quick search and replace to comment out the debug messages, changing <code>DEBUG_MESSAGE</code> to <code>#DEBUG_MESSAGE</code>, while leaving the <code>WARNING_MESSAGE()</code> constructs in place.
   
=== Upgrading from 2.4.1 ===
 
  +
You can still use the perl
   
<pre>
 
  +
warn "this is a warning message";
--------------------
 
   
1. Before beginning, back up your WeBWorK database and course directories.
 
  +
but it seems cleaner to have a separate channel for WeBWorK problem messages that doesn't have to conform to perl's rules for warn. In particular the
  +
<code>DEBUG_MESSAGE</code> and <code>WARNING_MESSAGE</code> constructs do not print to the apache error_log while perl's <code>warn</code> does and results in a lot of not
  +
very meaningful clutter for the system admin to look at.
   
2. Recommended: Update WeBWorK to the "tip" of the 2.4.x branch.
 
  +
== PG language enhancements ==
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
 
  +
=== Applets ===
cvs -q up -dP -rrel-2-4-patches
 
  +
*While applets have been included in WeBWorK questions for some time now, keeping the applets running smoothly in a multitude of browsers is a challenge.
   
cd /opt/webwork/pg
 
  +
* There has been steady progress in constructing an API that shields the WeBWorK author from messy details such as finding the precise url for the applet, verifying that the applet is properly loaded before commands are sent to it and so forth. No doubt more will need to be done as authors explore the rich user interface that can be developed by adding applets to WeBWorK questions (and to WeBWorK hints and solution sections).
cvs -q up -dP -rrel-2-4-patches
 
   
----------------------------------------------------------------
 
  +
*We currently have support for 4 types of applets: Java applets, Flash Applets, HTML5 applets and applets created with GeoGebra.
(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:
 
  +
*One striking use of applets is to ask a question which the student is to answer by
  +
[https://test.webwork.maa.org/webwork2/2010geogebra_at_ithaca/Graphic_input_applets/1/?login_practice_user=true drawing a curve] representing a function.
   
cd /opt/webwork/webwork2
 
  +
*An example of how to include an interactive GeoGebra applet into a WeBWorK question and set parameters in the GeoGebra applet from WeBWorK is now available in the Problem Techniques section of the documentation for Problem Authors: [http://webwork.maa.org/wiki/GeoGebraApplets GeoGebra Applets in WeBWorK]
cvs -q up -dP -rrel-2-4-5
 
   
  +
*Details and examples are in the [[:Category:Applets]] (requires updating for Geogebra and Canvas and graph inputs)
   
cd /opt/webwork/pg
 
  +
=== The PGML markdown language ===
cvs -q up -dP -rrel-2-4-5
 
   
This version will remain unchanged and will not include
 
  +
*These commands developed by Davide Cervone provide a "markdown" language for writing WeBWorK questions.
periodic updates for bug fixes.
 
  +
*They facilitate the layout of the question on the screen and provide a user interface that feels more like mathematics and less like computer code.
----------------------------------------------------------------
 
  +
*This makes it easier to enter and edit standard mathematics questions for those unfamiliar with computer programming languages.
  +
*To use PGML simply write the question inside <code> BEGIN_PGML / END_PGML </code> instead of the usual <code> BEGIN_TEXT / END_TEXT </code> tags.
   
3. Merge changes from global.conf.dist, database.conf.dist, and
 
  +
*To get started:
webwork.apache-config (if you are using Apache 1) or webwork.apache2-config (if
 
  +
**There is a [[Simplified_Entry_-_Davide_Cervone's_PGML_(Video) |video presentation]] by Davide of the features of PGML and
you are using Apache 2) into your configuration files. See below for list of changes.
 
  +
** a [[PGLabs]] WeBWorK "homework set" which allows you to try out these features as well as a
  +
** [https://courses.webwork.maa.org/webwork2/cervone_course/PGML-examples/?login_practice_user=true "Power point"] presentation (using WeBWorK) of the PGML features.
   
  +
* We do not yet have a full course of math problems written using PGML to serve as an example. (Volunteers?)
   
4. If you are using the National Problem Library, re-run bin/NPL-update to update
 
  +
== Technical ==
the database format to the latest version. (You may want to update
 
  +
*All occurrences of <code>psvnNumber</code> have been replaced by <code>psvn</code>. (This may affect some few problems that referred directly to <code>psvnNumber</code>.)
the library files from the cvs before you do this.)
 
  +
* 7/17/09 Allow instructor to print hardcopy for student by adding <code>effectivePermissionLevel</code> (level of user to whom question has been assigned) and <code>permissionLevel</code> (user viewing the assignment) to the PG environment.
   
5. No database changes occurred between 2.4.1 and 2.4.5, so running bin/wwdb_upgrade
 
  +
=== PG changes "under the hood" ===
is not necessary unless you are updating from a version of WeBWorK earlier than 2.4.1
 
   
</pre>
 
  +
There have been some major changes to the very basic PG code first written more than 10 years ago
* [[Changes in global.conf.dist from Release 2.4.1 to 2.4.5]]
 
  +
in perl 4 before objects became available in perl 5.
* [[Changes in webwork.apache-config.dist from Release 2.4.1 to 2.4.5]]
 
* [[Changes in database.conf.dist from Release 2.4.1 to 2.4.5]]
 
   
== File changes ==
 
  +
For the moment the changes involve rewriting some of the initial code to use perl objects instead
=== PG File changes ===
 
  +
of simulating objects by defining specialized namespaces. The new objects currently simulate the previous behavior
  +
but they also lay the foundation for future changes which will make the PG language more robust.
   
changed files
 
  +
The changes contemplated mostly involve code previously kept in the file <code> dangerousMacros</code> which govern
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Value/AnswerChecker.pm AnswerChecker.pm]
 
  +
how macro files are located and loaded and how auxiliary files: applets, PNG or GIF files, auxiliary HTMl files,
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Applet.pm Applet.pm] - part of new Applet API
 
  +
are kept track of. (The <code>alias()</code> command). The ways in which the answer blanks and the response evaluators
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/AppletObjects.pl AppletObjects.pl] - part of new Applet API
 
  +
are matched up will also be upgraded. This will involve changes to <code>pg/lib/WeBWorK/PG/Translator.pm</code>
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/compoundProblem.pl compoundProblem.pl] - still under construction
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/contextPiecewiseFunction.pl contextPiecewiseFunction.pl]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/contextString.pl contextString.pl ]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/dangerousMacros.pl dangerousMacros.pl] (replaces . by _ in set names to avoid Latex graphics problems)
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Value/Formula.pm Formula.pm] --bug fixes
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Parser/pm Function.pm] --bug fixes
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Value/Matrix.pm Matrix.pm] --bug fixes
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Parser.pm Parser.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/parserRadioButtons.pl parserRadioButtons.pl] - bug fixes
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/PGbasicmacros.pl PGbasicmacros.pl ] --Hints always print for instructors
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/PGgraphmacros.pl PGgraphmacros.pl] -- Efficiency improvements
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/WeBWorK/PG/Translator.pm Translator.pm ] -- improve error reporting
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/Value/WeBWorK.pm WeBWorK.pm] -Added a routine to trap errors in a function call.
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/lib/WWPlot.pm WWPlot.pm] (access to gd's dashed lines and thickness options added to lineTo command
 
 
new files
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/contextFraction.pl contextFraction.pl]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/contextOrdering.pl contextOrdering.pl] -New Context for handling ordered lists of letters like "D > A = C > B".
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/problemPanic.pl problemPanic.pl]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/pg/macros/source.pl source.pl] - used to display a "Problem source" button on the page -- useful mainly for demonstrating WW
 
   
=== WeBWorK File changes ===
 
  +
==== Potential changes needed to adjust to the new structure of PG ====
  +
  +
So far there is only one.
  +
*Use ANS_NUM_TO_NAME(1) macro instead of calling AnSwEr1 directly (the label automatically assigned to answer blanks can change -- it is dangerous over the long term to assume that the label format is fixed.).
  +
  +
Following this practice will also make the question compatible with Gateway quizzes.
  +
  +
==== New files added ====
  +
* These are the files where the new objects are defined. Their names are mostly of concern to site administrators who need to make adjustments in <code>global.conf</code>
  +
* The modules PGcore, PGalias, PGresource PGloadfiles PGanswergroup, PGresponsegroup have been added to the WeBWorK code base.
  +
  +
Those macros or questions which made extensive use of "internal" macros in PG.pl or
  +
dangerousMacros.pl may still find those capabilities available through the $PG object placed in the
  +
the PG environment of each WeBWorK question. (see comments in the new modules above.)
  +
  +
The macros in <code>pg/macros</code> and those stored in the NationalProblemLibrary
  +
have already been modified to reflect these changes. The graders in PGgrader.pl have
  +
also been updated so that they don't make hidden assumptions about the labels automatically
  +
generated for answer blanks.
  +
  +
= For site administrators =
  +
  +
== We have switched to using SVN instead of CVS for this and all future updates ==
  +
The Moodle module updates will remain in our CVS repository as long as Moodle keeps its code in a CVS repository. This allows a single cvs update to update both Moodle and the wwassign module.
  +
  +
It is pretty easy to switch over to the SVN updating mechanism. The instructions are at
  +
* [[History_of_WeBWorK_version_control|Subversion]] and
  +
* [[History_of_WeBWorK_version_control|Converting_a_CVS_checkout_to_SVN]]
  +
  +
== Changes between 2.4.7 and 2.4.9 ==
  +
  +
=== Changes in Configuration files ===
  +
  +
It is important to compare the <code>global.conf.dist</code> files with <code>global.conf</code>
  +
(and similarly <code>database.conf.dist</code> and <code>database.conf</code> and <code>webwork.apache2-conf.dist</code>
  +
and <code>webwork.apache2-conf</code> ). The differences that you recognize as being made to
  +
accommodate local settings (e.g. location of standard unix tools, or preferences on how webwork
  +
behaves) should be preserved in <code>global.conf</code>. New lines appearing in <code>global.conf.dist</code> should probably
  +
be transferred over. This is especially true of new permission lines and of new module lines
  +
  +
Here are some of the significant sections of <code>global.conf</code> that have been changed. (This also gives a good
  +
overview of what has changed since rel-2-4-7. ) You
  +
can get full report of all changes by using the SVN diff facility and comparing the current
  +
version with the version from June 2009 when rel-2-4-7 was released.
  +
  +
http://http://webwork.maa.org/viewvc/system/trunk/webwork2/conf/global.conf.dist?r1=6441&r2=6073
  +
  +
# Control of WeBWorK's email feedback system is enhanced. It is possible to redirect the email to be sent to a url for posting. It is also possible to replace the email form itself with an external url. (Constructed for use by MathNerds)
  +
# All urls refering to webwork.rochester.edu machines have been changed to webwork.maa.org machines.
  +
# Controls for MathJax (the new upgraded jsMath) have been added in several sections. You can allow the user to chose between jsMath, MathJax and images when viewing equations.
  +
# The timezone is initialized to America/New_York by default instead of to blank.
  +
# The moodle authen configuration has been removed -- it is no longer used in moodle/webwork installations
  +
# There are additional configuration options when using LDAP directly with WeBWorK. (thanks to Mark Hamrick and Jason Aubrey).
  +
# "report_bugs" permission defaults to ta now rather than to student.
  +
# "download_hardcopy_view_errors" has been added and set to "professor".
  +
# The paths to many macro libraries in the NationalProblemLibrary have been added by default. This will lead to fewer surprises when a question written at another school appears not to work because it can't find the appropriate macros.
  +
# More URLS have been added to the search paths for applets, including geogebra.
  +
# The default positions of the CAPA libraries have been changed.
  +
# Added the capability to define problemDefaults for max_attempts and value on a course basis from the web using the Course Configuration page or site wide using global.conf.
  +
# Controls for the reducedScoringPeriod have been added. (Less credit if the student hands homework in late.)
  +
# Can specify defaultDisplayMatrixStyle in ansEvalDefaults.
  +
# IMPORTANT. The "List" module's name has been changed to "ChoiceList" to avoid confusion with the MathObjects "List" object. List is called by Math, Multiple and several other modules but is seldom called directly except in macro files. The macrofiles in the NPL (especially Union) have been modified to accommodate this change. This change will break questions that called List directly but that seems to be a rare occurence.
  +
# The modules PGcore, PGalias, PGresource PGloadfiles PGanswergroup, PGresponsegroup, Tie::IxHash have been added. This is the beginning of a major upgrade to the internals of the PG language. It will not affect most users, but it may affect questions or macros that use the lowest level internal functions designed for matching answer blanks with answer evaluators. The macros in the NPL have been modified to accommodate these changes.
  +
# Added the module CanvasApplet which implements HTML5 techniques for inputting a graph.
  +
# Added -d flag to lwp-request to reduce overhead when checking urls with checkurl
  +
  +
=== Changes in site administration operations ===
  +
  +
We continue to make incremental changes to increase the power of administering WeBWorK from the web instead of from the command line.
  +
The archive and unarchiving process has been made more robust. The integrity of the database structure is checked before archiving and when unarchiving a course.
  +
# The automatic integrity checking of each course when the admin homepage loads has been discontinued. The integrity is now checked only when you choose the "Upgrade Course" tab. This speeds up loading of the admin site when there are many courses on the site.
  +
# You will need to upgrade each active course when upgrading from 2.4.7 to 2.4.9 since the reducedScoringPeriod feature has added extra fields to the database.
  +
# The Upgrade Course allows one to select multiple courses for upgrading. The course's integrity -- the agreement between the courses data structure in the database and the datastructure defined in database.conf -- is analyzed as well as the existence and permissions set for the various directories in the course. Simple and safe fixes can then be performed by clicking the upgrade course button. More complicated fixes must still be performed from the command line since a bad fix is usually worse than no fix at all.
  +
# Multiple courses can be selected for archiving. Each one is screened and approved individually but the list of courses to work on is selected at the start. There is a known bug in the process which stops work on the remaining list of archive courses if one declines to archive one of them.
  +
# An instructor can archive their own course from the File Manager page. This allows them to back up courses and save them for a later semester. The integrity of the course is automatically checked and updated if necessary (and possible). There is no opportunity to decide not to update. Only administrators with command line access can unarchive a course.
  +
# The Upgrade Course facility means that the command line module DBupgrade.pm is no longer used for upgrades. It might be needed if one is sequentially updating a release that is more than 3 years old.
  +
# It is possible to access the integrity subroutines from the command line and to build custom command line scripts which batch process the archiving, upgrading and unarchiving of courses. -- for details see the forum and the wiki -- for descriptions of how this has been done at individual sites. These scripts usually need to be modified for use at a new site, but they provide a starting point.
  +
  +
Other:
  +
# Removed the possibility of selecting moodle_sql which is now obsolete. Only one schema: sql_single is currently being used.
  +
  +
== LDAP features ==
  +
  +
== Gotchya's ==
  +
* WebworkWebservice/WebworkSOAP configuration -- there is one URL that is not yet configured automatically. In the file <code>lib/WebworkSOAP/WSDL.pm</code> the RPC_URL constant needs to be changed from "localhost" to the url for the WeBWorK site.
  +
  +
* If you edit a student from the classlist page then their status may be reset to guest (the lowest -5) because the student status of 0 is incorrectly read as blank. The correct workaround for this "feature" depends on which version of CGI.pm is being used. The changes are around line 1514 of UserList.pm. The changes work for 3.42 but the original line on 1514 works with CGI 3.49 and the changed line does not. This is recognized as a problem by CGI.pm maintainers and we don't yet have code that will work with both versions of CGI.pm
  +
1514 default => $default,
  +
is changed to
  +
1514 -default => [$default], # force default of 0 to be a selector value (instead of
  +
1515 # being considered as a null -- now works with CGI 3.42
  +
  +
* There is a bug in the way mysql flags work. Changes may need to be made for the version used on your server. (The change is in Schema/NewSQL/Std.pm) and involves the flags: --defaults-extra-file and --defaults-file which are used to retrieve temporarily cached credentials for accessing mysql.)
  +
  +
* There is a bug in Safe.pm version 2.27 which makes it incompatible with WeBWorK. The symptom is that any action involving a MathObject, such as answering a WeBWorK question -- will send the child process serving that request into an infinite loop. Versions of Safe.pm before 2.23 appear to work fine. Safe.pm version 2.29 (the most recent as of this writing) works for most problems but will throw errors on specific WeBWorK problems - particularly ones using graphics.
  +
  +
* A file labeled WWSafe.pm which is Safe.pm version 2.16 is included with this distribution. At the moment the lines <code>use Safe;</code> have been changed to <code>use WWSafe;</code> in these files
  +
pg/lib/WeBWorK/PG/Translator.pm,
  +
webwork2/lib/WeBWorK/CourseEnvironment.pm,
  +
webwork2/lib/WebworkWebservice/LibraryActions.pm,
  +
webwork2/lib/WebworkWebservice/MathTranslators.pm,
  +
webwork2/lib/WebworkWebservice/RenderProblem.pm,
  +
webwork2/lib/WWSafe.pm
  +
  +
* (Thanks to Zig Fiedorowicz and Geoff Goehle for research into this problem. Other references: http://webwork.maa.org/moodle/mod/forum/discuss.php?d=2292 and http://search.cpan.org/~rgarcia/Safe-2.29/.) <code>Safe.pm</code> is used by WeBWorK to provide a clean namespace for each new problem and to prevent the accidental use of perl commands by webwork question authors that could harm the unix environment. In general it is not considered by the perl monks as a sufficient barrier against determined hacking attempts however it has worked well for us over the last 14 years.
  +
  +
= Technical Bug fixes =
  +
  +
* 8/29/09 fixed bug in hardcopy preventing printing when no set was selected.
  +
* 9/24/09 fixed bug in CourseIntegrityCheck that confused msql tables of math101 and math101_fall09
  +
* 9/30/2009 First of changes working around bugs in CGI.pm that handle student permissions badly -- in pop up menus because they have permission level 0. This might require tweaking depending on the copy of CGI.pm used on your machine.
  +
* 1/23/2010 second attempt to fix the CGI bug.
  +
* 12/16/2009 Fixed major security hole -- only files below templates directory should be accessible from the homework set detail page (described in ProblemSetDetail.pm ).
  +
* 11/4/09 fixed bug in useBaseTenLog
  +
* 1/11/2010 Fix bug that gave error message when problem had not been assigned to any user.
  +
* 1/11/2010 Give more reasonable warning message if timezone is not correctly defined.
  +
* 5/13/2010 fixed mysqldump bug that affects archiving. (changes in Schema/NewSQL/Std.pm) - work around for non-documented behavior of --defaults-file and --defaults-extra-file flags in calling mysql from the command line. This may need to be adjusted on different servers.
  +
* 5/14/2010 fixed typo in num_sort
  +
* 5/18/2010 insure that hardcopy error files can be read by the instructor from the web.
  +
* 6/8/2010 NPL update fix (from Gavin)
  +
* 7/20/ update findAppletCodebase (in PGalias.pm)
  +
* 7/21/2010 bugfix to ww_applet_support.js
  +
  +
  +
  +
[[Release_notes_for_WeBWorK_2.4.7]] and previously.
   
changed files
 
  +
=Error Messages=
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/GatewayQuiz.pm GatewayQuiz.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Hardcopy.pm Hardcopy.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Login.pm Login.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Problem.pm Problem.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/ProblemSet.pm ProblemSet.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/ProblemSets.pm ProblemSets.pm ]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/DB/Schema.pm Schema.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/FileManager.pm FileManager.pm ]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/Index.pm Index.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/PGProblemEditor.pm PGProblemEditor.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/ProblemSetDetail.pm ProblemSetDetail.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/SetMaker.pm SetMaker.pm ]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/Stats.pm Stats.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/StudentProgress.pm StudentProgress.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator/Instructor/UserDetail.pm UserDetail.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WebworkSOAP.pm WebworkSOAP.pm]
 
math/system.template
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/DB/Schema/NewSQL/Std.pm Std.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/DB/Record/UserSetLocations.pm UserSetLocations.pm]
 
ur/system.template
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Utils/CourseManagement.pm CourseManagement.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Utils/DBUpgrade.pm DBUpgrade.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Utils/Tasks.pm Tasks.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Authz.pm Authz.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Constants.pm Constants.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/ContentGenerator.pm ContentGenerator.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/DB.pm DB.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/PG.pm PG.pm]
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/URLPath.pm URLPath.pm]
 
minor changes
 
helpFiles/InstructorPGProblemEditor.html
 
helpFiles/InstructorUserList.html
 
helpFiles/Units.html
 
setOrientation/parserOrientation.pl
 
setOrientation/prob06.pg
 
setOrientation/prob10.pg
 
jsMath changes
 
easy/load.js
 
extensions/AMSmath.js
 
extensions/autobold.js
 
extensions/bbox.js
 
extensions/HTML.js
 
jsMath/jsMath.js
 
uncompressed/jsMath.js
 
plugins/autoload.js
 
plugins/smallFonts.js
 
plugins/spriteImageFonts.js
 
plugins/tex2math.js
 
 
new files
 
Base64.js
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/lib/WeBWorK/Utils/CourseIntegrityCheck.pm CourseIntegrityCheck.pm]
 
docs/UsingParser.pod
 
eqn-number.js
 
Installing-WeBWorK.xml
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/bin/integrity_check.pl integrity_check.pl]
 
math2.css
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/htdocs/show-source.cgi show-source.cgi]
 
union.css
 
[http://cvs.webwork.rochester.edu/viewcvs.cgi/webwork2/htdocs/js/ww_applet_support.js ww_applet_support.js ] -- part of new applet API
 
   
== Upgrading from old versions of WeBWorK ==
 
  +
*
  +
DBD::mysql::st execute failed: Unknown column 'merge1.enable_reduced_scoring'
  +
in 'field list' at /opt/webwork/webwork2/lib/WeBWorK/DB/Schema/NewSQL/Std.pm line 814.
  +
This means the courses created with previous versions of WW need to be upgraded. This is done from admin "course". See items 1. and 2. at
  +
[[Release_notes_for_WeBWorK_2.4.9#Changes_in_site_administration_operations]] above.
  +
*
   
[[Release notes for WeBWorK 2.4.5]]
 
  +
= Upgrade Instructions =
   
  +
See [[Upgrading_WeBWorK]]
   
 
[[Category:Release Notes]]
 
[[Category:Release Notes]]
  +
[[Category:Installation]]

Latest revision as of 18:45, 16 June 2021

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

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

Details
-------



Release date: 2010 December 1
SVN tag: rel-2-4-9 
SVN url/branch: http://svn.webwork.maa.org/system/trunk  module
Modules:    webwork2   pg


 IMPORTANT!! Be sure to inspect changes in the configuration files when upgrading to this release.

For Students

New features 2.4.9

Tool tips for previewing answers

  • The "preview answers" and "correct answers" fields which respond to student entries are now typeset. Hovering over the fields will bring up a tooltip with the entry in it's original unformatted form. The tooltip contents can be copied and pasted back into answer blanks if desired.
  • This feature uses the open source tooltips javaScript suite written by Walter Zorn. The code is stored in the file webwork2/htdocs/js/wz_tooltip.js.
  • This makes the "Entered" field redundant since it's content is identical to the tooltip which comes up when hovering over the "preview answers" field. It's likely that we'll remove the "Entered" field at some later date unless there is good reason to keep it.

Hardcopy changes

  • Added separate checkbox for printing answers entered by students for any hardcopy (including quizzes). The print correct answer checkbox remains as well. The "print student answers" box is checked by default.
  • 7/17/09 Allow instructor to print hardcopy for student by adding effectivePermissionLevel (level of user to whom question has been assigned) and permissionLevel (user viewing the assignment) to the PG environment.

MathJax option

  • MathJax (a successor to jsMath) can now be selected as a means of displaying the mathematics equations.
  • See MathJax for more details.

For Course Instructors

New features added to 2.4.9

Changes to course administration

  • Added buttons (javaScript) to select all or unselect all checkboxes on the classlist and homework set editor pages

Extensions to "Email the instructor"

  • The standard behavior of the "Email the instructor" button remains the same. Pressing the button brings up a form which the student fills out and submits. The contents is emailed to the appropriate instructors determined by the settings made in Course Configuration. Other settings such determining the email target for a given section are set in global.conf.
  • If $courseURLs{feedbackURL} is not empty then the form filled out by the student is submitted to that URL for processing. For example this could be used to submit the email for posting to a joint Moodle wiki where the message could be viewed and replied to by the entire class.
  • If $courseURLs{feedbackFormURL} is not empty then the button calls up the form supplied by that URL. For example this could be used to call up the welcome form for a tutoring site (The video session MathNerds.com_(Video) describes the interaction of WeBWorK and the free online tutoring service MathNerds ).

While these preferences can be set on a course by course basis it is probably best if the changes are made to course.conf by someone with command line access (e.g. the site administrator) in case something goes wrong. There is no safety net (from the web) when modifying course.conf.

Extended and unified naming conventions

  • Set names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and commas(.), colons (:), and slashes(/).
  • User names can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), and at signs(@). This allows the use of most email addresses as login user_id's. For safety the at sign, comma and period are converted to underbars when labeling on-the-fly graphs.
  • Problem_id's can contain only numbers.
  • IP's (used in proctored gateway quizzes) can contain alphanumeric characters, hyphens(-), underbars(_), periods(.), commas(.), colons (:), and slashes(/).
  • FileManager will allow commas in directory names.
  • Periods in set names are automatically converted to _ when printing hardcopy to avoid incompatibility with TeX. Still it is probably wise to limit set names characters to letters, numbers and underbars to avoid conflicts with auxiliary tools such as TeX, and mySQL.
  • Image names can contain underbars and still act peacefully with TeX (at least most of the time :-) ).
Technical note:
In conjunction with this unified naming convention a centralized macro in DB.pm, check_user_id, is called to make sure that
user names conform to the standards above.  This is also done when uploading classlists.  It is
expected that this will eliminate a previous bug which allowed student ID's with non-English characters
to corrupt the database resulting in non-deletable users with "diamond" characters in their user names.


see Naming_conventions for further updates.

User Interface Changes

  • HINTS and SOLUTIONS now are always shown to instructors -- this makes it easier to proof read all parts of a WeBWorK question including the solutions and instructions sections.
  • There is now a cleaner syntax for the hints and solution sections: BEGIN_HINT / END_HINT and BEGIN_SOLUTION / END_SOLUTION.
BEGIN_HINT is translated into TEXT(HINT(EV3P(<<'END_HINT'))); which is unwieldy to type directly. 
BEGIN_SOLUTION has a similar translation.

NPL additions

We have added libraries of questions donated by these institutions to the NationalProblemLibrary:

  • FortLewis -- from Paul Pearson at Fort Lewis College in Durango, CO
  • LoyolaChicago -- Loyola University in Chicago
  • Michigan (questions drawn from the Gleason, Hughes- Hallet, et. al. text) questions written by Gavin LaRose at U. of Michigan
  • NationalProblemLibrary questions have been upgraded with many bug fixes and improvements. (thanks to Spyro Roubos)
  • Physics problems are now available -- adapted by the Frank Wolfs (at University of Rochester) and his students from the CAPA physics problem collection. These can be downloaded from the rochester section of the svn repository but they are not yet part of the NationalProblemLibrary. (tagging remains to be done.)

Model Course Examples

We are collecting examples of questions from the NationalProblemLibrary which are appropriate to courses typically taught at colleges and universities in the US. Here is our first collection for 1st semester calculus.

  • This first model calculus problem collection was taken from a first semester "Engineering calculus" course taught at the University of Rochester in 2007 using Stewart's Calculus text book.
  • This collection also indicates the interaction of Moodle and WeBWorK. An outline for the course with chapters from Stewart is listed in the week by week syllabus page of Moodle. Each week has a link to the corresponding homework set in WeBWorK.
  • You can log in using the guest login button.

Encouraging best practices in coding WeBWorK problems.

  • The most important aspect of this collection is that the questions were rewritten to use MathObjects where ever possible and the questions represent the current "best practices" for writing new WeBWorK questions (as of 2010).
  • You can view the code for each question using the "Show Problem Source" button.
  • This model calculus problem collection (use guest login button) and
  • This wiki's Problem Techniques Category provide good resources for authors just beginning to write WeBWorK questions as well as for authors with more experience.
  • Another useful reference is the PGLabs page where one can try out snippets of PG code without creating an entire problem.

Moodle wwassignment/ WebworkSOAP changes

The WeBWorK/Moodle_bridge(Video) describes using Moodle and WeBWorK together.

mod/wwassignment php files changed in Moodle

  • 9/20/2009 correctly calculate point problems for grades rather than just the number of correct answers.
  • 9/20/2009 only administrators can edit a wwlink block to connect to a webwork site or course. (Instructors are not given permission to do this.)
  • 10/1/2009 Modify upgrade_dirty_sets() subroutine so that only wwassignment modules that have been touched since the last cron job are updated. Before this all grades in all courses (even archived courses) were updated causing unnecessary load on the server.
  • 10/03/2009 Refresh calendar events for the course (part of upgrade_dirty_sets)
  • 9/27/2010 Added a line that prevents errors when one of the moodle courses is no longer available.- The grade transfer process is skipped in this case.
  • 9/27/2010 make modifications that allow gateway quizzes to be initiated from Moodle.
  • 9/27/2010 Added to the grade_sets routine so that gateway quizzes can also have their grades returned to Moodle (first added 9/27/2010 in branches/gage_dev)


Gotchya's

  • A new method of storing data for past answers has been implemented with this version of WeBWorK. Past answers entered into courses created with a previous version of WeBWorK here will be lost once a new answer is entered. There will be a warning message the first time this is done. It will read something like:
* problem fetching answers -- possibly left over from base64 days. Not to worry -- press "Preview" or "Submit"  
and this will go away permanently for this  question. Storable binary ....

This will only be noticeable to instructors viewing old courses or to students who are viewing problems from an old course which they answered using a previous version of WeBWorK. This warning message goes away as soon as the question is answered once using the new system.

For WeBWorK question authors

Best practices examples

Where to find advice on best practices for coding WeBWorK problems.

  • The most important aspect of the model calculus problem collection (login as guest) described above is that the questions were rewritten to use MathObjects where ever possible and the questions represent the current "best practices" for writing new WeBWorK questions (as of 2010).
  • You can view the code for each question using the "Show Problem Source" button.
  • This model calculus problem collection and
  • This wiki's Problem Techniques Category provide good resources for authors just beginning to write WeBWorK questions and for authors with more experience.
  • Another useful reference is the PGLabs page where one can try out snippets of PG code without creating an entire problem.

New Help Files for students

This new feature makes it easy to provide answer formatting information and other help for students in a consistent manner.

  • Example: \{ AnswerFormatHelp("formulas") \} $PAR
  • The helpFiles currently available are
angle,  decimal,  exponent,  equation,  formula,  fraction,  
inequalit,  interval,  log,  limit,  number,  point,  syntax,  unit,  vector

Thanks to Paul Pearson for the helpFile macros.

Details:

 #  Usage
 #
 #  DOCUMENT();
 #  loadMacros("PGstandard.pl","AnswerFormatHelp.pl",);
 #  TEXT(beginproblem());
 #  BEGIN_TEXT
 #  \{ AnswerFormatHelp("formulas") \} $PAR
 #  \{ AnswerFormatHelp("equations","help entering equations") \} $PAR
 #  \{ AnswerFormatHelp("formulas","help (formulas)","http://webwork.someschool.edu/dir/subdir/") \}
 #  END_TEXT
 #  ENDDOCUMENT();
 #
 #  First example: use defaults.
 #
 #  Second example: use customized text displayed to the student
 #  as the html link.
 #
 #  Third example: additionally points to a particular URL where 
 #  html help files are located. The URL must end with a forward slash.
 #
 #  The third method is not recommended, as a universal, site-wide,
 #  or course-wide solution obtained by modifying the value of
 #  $helpdir in NPL/macros/FortLewis/AnswerFormatHelp.pl is preferable to setting the
 #  URL in every individual PG file manually.

The default location for help files is in the directory webwork2/htdocs/helpFiles/.

Client editor features

There is now support for authoring and editing WeBWorK questions on your local computer using your favorite editor. Once you have written the question you can send it to a WeBWorK site for conversion into HTML. The html is returned to your computer where it is displayed in your browser.

  • The script ...webwork/clients/renderProblem.pl will render a WeBWorK problem submitted from the command line.
  • It does this by making a webservice call to a WeBWorK site via the XML_RPC protocol requesting that the contents be rendered as a WeBWorK PG question.
  • The script will work with most modern editors to allow you to check a WeBWorK question from within an editor such as BBedit, emacs, or gedit with a single command key. This allows you to use all of the features of your favorite editor while creating new WeBWorK questions and to store the file containing the question in a directory on your desktop machine.
  • For minor corrections of WeBWorK questions already in a homework set it is still quicker to use the PG editor in WeBWorK itself.
  • For those using Firefox the plug-in "It's all Text" allows you to edit TEXT AREA regions of an HTML form in your favorite editor. I often do this when making extensive changes to a WeBWorK question already in a homework set.
  • See Client_Editor for more details on configuration, use and the internal technical details.

New and changed contexts

  • Almost all of the Context and Parser files in pg/macros have been created or updated since release 2.4.7. This greatly increases the ease with which answers can be checked.
  • Details can be found on the Specialized_contexts page.

Additional changes to macro files

  • Status of LiveGraphics3D.pl
  • Moving common macros from NPL/macros/Union to pg (display table and list macros)
  • Move AnswerFormatHelp.pl to pg/macros directory

DEBUG and WARNING channels

There are two new channels for transmitting warning or debug information from inside a WeBWorK problem to the outside. These are just preliminary versions and the exact behavior may change over time. At the moment they behave in the same way and simply print their message at the end of the problem.

 DEBUG_MESSAGE("This is a message used while debugging a WeBWorK question -- for example it might show the value of $myVariable");
 WARNING_MESSAGE(" This message might be left permanently in a WeBWorK question to warn about some 
                                         unexpected error -- e.g. division by zero ");

The main reason for having two of them, is that one can do a quick search and replace to comment out the debug messages, changing DEBUG_MESSAGE to #DEBUG_MESSAGE, while leaving the WARNING_MESSAGE() constructs in place.

You can still use the perl

warn "this is a warning message";

but it seems cleaner to have a separate channel for WeBWorK problem messages that doesn't have to conform to perl's rules for warn. In particular the DEBUG_MESSAGE and WARNING_MESSAGE constructs do not print to the apache error_log while perl's warn does and results in a lot of not very meaningful clutter for the system admin to look at.

PG language enhancements

Applets

  • While applets have been included in WeBWorK questions for some time now, keeping the applets running smoothly in a multitude of browsers is a challenge.
  • There has been steady progress in constructing an API that shields the WeBWorK author from messy details such as finding the precise url for the applet, verifying that the applet is properly loaded before commands are sent to it and so forth. No doubt more will need to be done as authors explore the rich user interface that can be developed by adding applets to WeBWorK questions (and to WeBWorK hints and solution sections).
  • We currently have support for 4 types of applets: Java applets, Flash Applets, HTML5 applets and applets created with GeoGebra.
  • One striking use of applets is to ask a question which the student is to answer by

drawing a curve representing a function.

  • An example of how to include an interactive GeoGebra applet into a WeBWorK question and set parameters in the GeoGebra applet from WeBWorK is now available in the Problem Techniques section of the documentation for Problem Authors: GeoGebra Applets in WeBWorK
  • Details and examples are in the Category:Applets (requires updating for Geogebra and Canvas and graph inputs)

The PGML markdown language

  • These commands developed by Davide Cervone provide a "markdown" language for writing WeBWorK questions.
  • They facilitate the layout of the question on the screen and provide a user interface that feels more like mathematics and less like computer code.
  • This makes it easier to enter and edit standard mathematics questions for those unfamiliar with computer programming languages.
  • To use PGML simply write the question inside BEGIN_PGML / END_PGML instead of the usual BEGIN_TEXT / END_TEXT tags.
  • To get started:
    • There is a video presentation by Davide of the features of PGML and
    • a PGLabs WeBWorK "homework set" which allows you to try out these features as well as a
    • "Power point" presentation (using WeBWorK) of the PGML features.
  • We do not yet have a full course of math problems written using PGML to serve as an example. (Volunteers?)

Technical

  • All occurrences of psvnNumber have been replaced by psvn. (This may affect some few problems that referred directly to psvnNumber.)
  • 7/17/09 Allow instructor to print hardcopy for student by adding effectivePermissionLevel (level of user to whom question has been assigned) and permissionLevel (user viewing the assignment) to the PG environment.

PG changes "under the hood"

There have been some major changes to the very basic PG code first written more than 10 years ago in perl 4 before objects became available in perl 5.

For the moment the changes involve rewriting some of the initial code to use perl objects instead of simulating objects by defining specialized namespaces. The new objects currently simulate the previous behavior but they also lay the foundation for future changes which will make the PG language more robust.

The changes contemplated mostly involve code previously kept in the file dangerousMacros which govern how macro files are located and loaded and how auxiliary files: applets, PNG or GIF files, auxiliary HTMl files, are kept track of. (The alias() command). The ways in which the answer blanks and the response evaluators are matched up will also be upgraded. This will involve changes to pg/lib/WeBWorK/PG/Translator.pm

Potential changes needed to adjust to the new structure of PG

So far there is only one.

  • Use ANS_NUM_TO_NAME(1) macro instead of calling AnSwEr1 directly (the label automatically assigned to answer blanks can change -- it is dangerous over the long term to assume that the label format is fixed.).

Following this practice will also make the question compatible with Gateway quizzes.

New files added

  • These are the files where the new objects are defined. Their names are mostly of concern to site administrators who need to make adjustments in global.conf
  • The modules PGcore, PGalias, PGresource PGloadfiles PGanswergroup, PGresponsegroup have been added to the WeBWorK code base.
Those macros or questions which made extensive use of "internal" macros in PG.pl or
dangerousMacros.pl may still find those capabilities available through the $PG object placed in the
the PG environment of each WeBWorK question. (see comments in the new modules above.)
The macros in pg/macros and those stored in the NationalProblemLibrary 
have already been modified to reflect these changes.  The graders in PGgrader.pl have
also been updated so that they don't make hidden assumptions about the labels automatically
generated for answer blanks.

For site administrators

We have switched to using SVN instead of CVS for this and all future updates

The Moodle module updates will remain in our CVS repository as long as Moodle keeps its code in a CVS repository. This allows a single cvs update to update both Moodle and the wwassign module.

It is pretty easy to switch over to the SVN updating mechanism. The instructions are at

Changes between 2.4.7 and 2.4.9

Changes in Configuration files

It is important to compare the global.conf.dist files with global.conf (and similarly database.conf.dist and database.conf and webwork.apache2-conf.dist and webwork.apache2-conf ). The differences that you recognize as being made to accommodate local settings (e.g. location of standard unix tools, or preferences on how webwork behaves) should be preserved in global.conf. New lines appearing in global.conf.dist should probably be transferred over. This is especially true of new permission lines and of new module lines

Here are some of the significant sections of global.conf that have been changed. (This also gives a good overview of what has changed since rel-2-4-7. ) You can get full report of all changes by using the SVN diff facility and comparing the current version with the version from June 2009 when rel-2-4-7 was released.

http://http://webwork.maa.org/viewvc/system/trunk/webwork2/conf/global.conf.dist?r1=6441&r2=6073

  1. Control of WeBWorK's email feedback system is enhanced. It is possible to redirect the email to be sent to a url for posting. It is also possible to replace the email form itself with an external url. (Constructed for use by MathNerds)
  2. All urls refering to webwork.rochester.edu machines have been changed to webwork.maa.org machines.
  3. Controls for MathJax (the new upgraded jsMath) have been added in several sections. You can allow the user to chose between jsMath, MathJax and images when viewing equations.
  4. The timezone is initialized to America/New_York by default instead of to blank.
  5. The moodle authen configuration has been removed -- it is no longer used in moodle/webwork installations
  6. There are additional configuration options when using LDAP directly with WeBWorK. (thanks to Mark Hamrick and Jason Aubrey).
  7. "report_bugs" permission defaults to ta now rather than to student.
  8. "download_hardcopy_view_errors" has been added and set to "professor".
  9. The paths to many macro libraries in the NationalProblemLibrary have been added by default. This will lead to fewer surprises when a question written at another school appears not to work because it can't find the appropriate macros.
  10. More URLS have been added to the search paths for applets, including geogebra.
  11. The default positions of the CAPA libraries have been changed.
  12. Added the capability to define problemDefaults for max_attempts and value on a course basis from the web using the Course Configuration page or site wide using global.conf.
  13. Controls for the reducedScoringPeriod have been added. (Less credit if the student hands homework in late.)
  14. Can specify defaultDisplayMatrixStyle in ansEvalDefaults.
  15. IMPORTANT. The "List" module's name has been changed to "ChoiceList" to avoid confusion with the MathObjects "List" object. List is called by Math, Multiple and several other modules but is seldom called directly except in macro files. The macrofiles in the NPL (especially Union) have been modified to accommodate this change. This change will break questions that called List directly but that seems to be a rare occurence.
  16. The modules PGcore, PGalias, PGresource PGloadfiles PGanswergroup, PGresponsegroup, Tie::IxHash have been added. This is the beginning of a major upgrade to the internals of the PG language. It will not affect most users, but it may affect questions or macros that use the lowest level internal functions designed for matching answer blanks with answer evaluators. The macros in the NPL have been modified to accommodate these changes.
  17. Added the module CanvasApplet which implements HTML5 techniques for inputting a graph.
  18. Added -d flag to lwp-request to reduce overhead when checking urls with checkurl

Changes in site administration operations

We continue to make incremental changes to increase the power of administering WeBWorK from the web instead of from the command line. The archive and unarchiving process has been made more robust. The integrity of the database structure is checked before archiving and when unarchiving a course.

  1. The automatic integrity checking of each course when the admin homepage loads has been discontinued. The integrity is now checked only when you choose the "Upgrade Course" tab. This speeds up loading of the admin site when there are many courses on the site.
  2. You will need to upgrade each active course when upgrading from 2.4.7 to 2.4.9 since the reducedScoringPeriod feature has added extra fields to the database.
  3. The Upgrade Course allows one to select multiple courses for upgrading. The course's integrity -- the agreement between the courses data structure in the database and the datastructure defined in database.conf -- is analyzed as well as the existence and permissions set for the various directories in the course. Simple and safe fixes can then be performed by clicking the upgrade course button. More complicated fixes must still be performed from the command line since a bad fix is usually worse than no fix at all.
  4. Multiple courses can be selected for archiving. Each one is screened and approved individually but the list of courses to work on is selected at the start. There is a known bug in the process which stops work on the remaining list of archive courses if one declines to archive one of them.
  5. An instructor can archive their own course from the File Manager page. This allows them to back up courses and save them for a later semester. The integrity of the course is automatically checked and updated if necessary (and possible). There is no opportunity to decide not to update. Only administrators with command line access can unarchive a course.
  6. The Upgrade Course facility means that the command line module DBupgrade.pm is no longer used for upgrades. It might be needed if one is sequentially updating a release that is more than 3 years old.
  7. It is possible to access the integrity subroutines from the command line and to build custom command line scripts which batch process the archiving, upgrading and unarchiving of courses. -- for details see the forum and the wiki -- for descriptions of how this has been done at individual sites. These scripts usually need to be modified for use at a new site, but they provide a starting point.

Other:

  1. Removed the possibility of selecting moodle_sql which is now obsolete. Only one schema: sql_single is currently being used.

LDAP features

Gotchya's

  • WebworkWebservice/WebworkSOAP configuration -- there is one URL that is not yet configured automatically. In the file lib/WebworkSOAP/WSDL.pm the RPC_URL constant needs to be changed from "localhost" to the url for the WeBWorK site.
  • If you edit a student from the classlist page then their status may be reset to guest (the lowest -5) because the student status of 0 is incorrectly read as blank. The correct workaround for this "feature" depends on which version of CGI.pm is being used. The changes are around line 1514 of UserList.pm. The changes work for 3.42 but the original line on 1514 works with CGI 3.49 and the changed line does not. This is recognized as a problem by CGI.pm maintainers and we don't yet have code that will work with both versions of CGI.pm
1514				default => $default,	
  is changed to
1514				-default => [$default], # force default of 0 to be a selector value (instead of 
1515				                        # being considered as a null -- now works with CGI 3.42
  • There is a bug in the way mysql flags work. Changes may need to be made for the version used on your server. (The change is in Schema/NewSQL/Std.pm) and involves the flags: --defaults-extra-file and --defaults-file which are used to retrieve temporarily cached credentials for accessing mysql.)
  • There is a bug in Safe.pm version 2.27 which makes it incompatible with WeBWorK. The symptom is that any action involving a MathObject, such as answering a WeBWorK question -- will send the child process serving that request into an infinite loop. Versions of Safe.pm before 2.23 appear to work fine. Safe.pm version 2.29 (the most recent as of this writing) works for most problems but will throw errors on specific WeBWorK problems - particularly ones using graphics.
  • A file labeled WWSafe.pm which is Safe.pm version 2.16 is included with this distribution. At the moment the lines use Safe; have been changed to use WWSafe; in these files
pg/lib/WeBWorK/PG/Translator.pm, 
webwork2/lib/WeBWorK/CourseEnvironment.pm, 
webwork2/lib/WebworkWebservice/LibraryActions.pm,  
webwork2/lib/WebworkWebservice/MathTranslators.pm, 
webwork2/lib/WebworkWebservice/RenderProblem.pm,
webwork2/lib/WWSafe.pm  
  • (Thanks to Zig Fiedorowicz and Geoff Goehle for research into this problem. Other references: http://webwork.maa.org/moodle/mod/forum/discuss.php?d=2292 and http://search.cpan.org/~rgarcia/Safe-2.29/.) Safe.pm is used by WeBWorK to provide a clean namespace for each new problem and to prevent the accidental use of perl commands by webwork question authors that could harm the unix environment. In general it is not considered by the perl monks as a sufficient barrier against determined hacking attempts however it has worked well for us over the last 14 years.

Technical Bug fixes

  • 8/29/09 fixed bug in hardcopy preventing printing when no set was selected.
  • 9/24/09 fixed bug in CourseIntegrityCheck that confused msql tables of math101 and math101_fall09
  • 9/30/2009 First of changes working around bugs in CGI.pm that handle student permissions badly -- in pop up menus because they have permission level 0. This might require tweaking depending on the copy of CGI.pm used on your machine.
  • 1/23/2010 second attempt to fix the CGI bug.
  • 12/16/2009 Fixed major security hole -- only files below templates directory should be accessible from the homework set detail page (described in ProblemSetDetail.pm ).
  • 11/4/09 fixed bug in useBaseTenLog
  • 1/11/2010 Fix bug that gave error message when problem had not been assigned to any user.
  • 1/11/2010 Give more reasonable warning message if timezone is not correctly defined.
  • 5/13/2010 fixed mysqldump bug that affects archiving. (changes in Schema/NewSQL/Std.pm) - work around for non-documented behavior of --defaults-file and --defaults-extra-file flags in calling mysql from the command line. This may need to be adjusted on different servers.
  • 5/14/2010 fixed typo in num_sort
  • 5/18/2010 insure that hardcopy error files can be read by the instructor from the web.
  • 6/8/2010 NPL update fix (from Gavin)
  • 7/20/ update findAppletCodebase (in PGalias.pm)
  • 7/21/2010 bugfix to ww_applet_support.js


Release_notes_for_WeBWorK_2.4.7 and previously.

Error Messages

DBD::mysql::st execute failed: Unknown column 'merge1.enable_reduced_scoring' 
in 'field list' at  /opt/webwork/webwork2/lib/WeBWorK/DB/Schema/NewSQL/Std.pm line 814.

This means the courses created with previous versions of WW need to be upgraded. This is done from admin "course". See items 1. and 2. at Release_notes_for_WeBWorK_2.4.9#Changes_in_site_administration_operations above.

Upgrade Instructions

See Upgrading_WeBWorK