Difference between revisions of "Release notes for WeBWorK 2.14"

From WeBWorK_wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by 2 users not shown)
Line 12: Line 12:
 
Prerelease date: July 20, 2018 -- the advanced beta version of 2.14 is currently on github
 
Prerelease date: July 20, 2018 -- the advanced beta version of 2.14 is currently on github
   
Release date:
 
  +
Release date: December 30, 2018 -- 2.14 is merged into the master branch
   
 
Github repository: https://github.com/openwebwork
 
Github repository: https://github.com/openwebwork
Line 32: Line 32:
 
Once Docker is installed on your computer see the [https://github.com/openwebwork/webwork2/wiki/Docker-newbie-instructions instructions] on the [https://github.com/openwebwork/webwork2/wiki github webwork2 wiki] for installing WeBWorK with ALL of its supporting infrastructure. Once Docker is installed the rest of the installation is the same for all computers.
 
Once Docker is installed on your computer see the [https://github.com/openwebwork/webwork2/wiki/Docker-newbie-instructions instructions] on the [https://github.com/openwebwork/webwork2/wiki github webwork2 wiki] for installing WeBWorK with ALL of its supporting infrastructure. Once Docker is installed the rest of the installation is the same for all computers.
   
In addition the rel-2.14 release version of
+
In addition the 2.14 release version of
 
WeBWorK includes an automatic installation of an R-server
 
WeBWorK includes an automatic installation of an R-server
 
so that you can test statistics problems that use R.
 
so that you can test statistics problems that use R.
Line 52: Line 52:
 
[[Installation_Manual_for_2.13_on_Ubuntu_18.04]] as the most up-to-date. There are only slight differences between the instructions for the recent releases of WeBWorK and the directions are quite similar for the different flavors of unix. The directory names may sometimes be different but a google search can help clarify how to translate instructions from one OS to another.
 
[[Installation_Manual_for_2.13_on_Ubuntu_18.04]] as the most up-to-date. There are only slight differences between the instructions for the recent releases of WeBWorK and the directions are quite similar for the different flavors of unix. The directory names may sometimes be different but a google search can help clarify how to translate instructions from one OS to another.
   
Once you get to the section in the manual where the WeBWorK and PG software is being installed you can refer to the instructions below. Let's get started:
 
  +
Three quarters of the work of a fresh install is getting the supporting stack of applications: apache, perl, CPAN modules, tex, mysql and so forth installed. This is essentially the same for all versions of WeBWorK (except possibly for some extra CPAN modules) but the details may change slightly with upgrades to the unix operating system, apache, mysql and so forth. Changes in the underlying stack is beyond the scope of these release notes see the install manuals for guidance and remember that "google is your friend" for the latest changes.
  +
  +
Once you get to the section in the manual where the WeBWorK and PG software is to be installed you can refer to the instructions below. Let's get started:
   
 
== Upgrade Instructions ==
 
== Upgrade Instructions ==
Line 60: Line 62:
 
* develop
 
* develop
 
master
 
master
  +
> sudo git fetch # this will update your local links to the github.com/openwebwork/webwork2 repository
   
>sudo git branch -t rel2.14 origin/rel-2.14
 
  +
> sudo git checkout master
Branch rel2.13 set up to track remote branch master from origin.
 
  +
> sudo git branch -m master-save # rename your current copy of master to master-save for safety (-m stands for "move")
  +
> sudo git branch -t master origin/master # create a clean copy of master on your machine,
  +
# linked to the master branch on github.com/openwebwork/webwork2 (aka origin)
  +
> sudo git checkout master # switch to your new local master branch
   
>sudo git checkout rel2.14
 
 
error: You have local changes to 'lib/WeBWorK/ContentGenerator/Feedback.pm'; cannot switch branches.
 
error: You have local changes to 'lib/WeBWorK/ContentGenerator/Feedback.pm'; cannot switch branches.
 
#### this means that you have made local changes you might want to save.
 
#### this means that you have made local changes you might want to save.
 
Use `git stash` or `git add`, `git commit` or just move the file to a safe place outside the folder.
 
Use `git stash` or `git add`, `git commit` or just move the file to a safe place outside the folder.
   
>sudo git checkout -f rel2.14 # the `f` forces the change and overwrites the file if you didn't move it.
+
>sudo git checkout -f master # the `f` forces the change and overwrites the file if you didn't move it.
Switched to branch 'rel2.14'
+
Switched to branch 'master'
   
>sudo git pull
 
  +
.... long list of updated files
 
  +
> git branch # view current status
  +
* master
  +
master-save
  +
develop
  +
  +
  +
>sudo git pull # make sure things are updated
  +
.... list of updated files (could be long if updating an old version of master, otherwise it's short)
  +
  +
> less VERSION # this should tell you that the current version is now 2.14
   
 
</pre>
 
</pre>
Line 83: Line 97:
 
master
 
master
   
>sudo git branch -t rel2.14 origin/rel-2.14
 
  +
> sudo git fetch # this will update your local links to the github.com/openwebwork/pg repository
Branch rel2.14 set up to track remote branch master from origin.
 
  +
  +
> sudo git checkout master
  +
> sudo git branch -m master-save # rename your current copy of master to master-save for safety (-m stands for "move")
  +
> sudo git branch -t master origin/master # create a clean copy of master on your machine,
  +
# linked to the master branch on github.com/openwebwork/pg (aka origin)
  +
> sudo git checkout master # switch to your new local master branch
  +
  +
  +
  +
>sudo git checkout master
  +
Switched to branch 'master'
   
>sudo git checkout rel2.14
 
Switched to branch 'rel2.14'
 
   
  +
>sudo git pull # make sure things are updated
  +
.... list of updated files (could be long if updating an old version of master, otherwise it's short)
   
  +
> less VERSION # this should tell you that the current version is now 2.14
   
>sudo git pull
 
.... long list of updated files
 
   
 
</pre>
 
</pre>
  +
 
The <code>-t</code> flag has your branch "track" the version of master at the origin site. If there are updates
 
The <code>-t</code> flag has your branch "track" the version of master at the origin site. If there are updates
on github.com/webwork2 to the rel-2.14 branch a simple <code>sudo git pull</code> will update your local directory.
+
on github.com/openwebwork/webwork2 to the master branch a simple <code>sudo git pull</code> will update your local webwork2 directory.
  +
If you issue the "git pull" command from the /opt/pg directory you will update from the master branch of github.com/openwebwork/pg.
   
   
Line 156: Line 180:
 
perl upgrade_admin_db.pl
 
perl upgrade_admin_db.pl
 
</pre>
 
</pre>
Next, log into the admin course and upgrade the databases for all of your courses. ''Your server will not be functional until you perform this step.''
 
   
 
10) Download the latest version of the OPL. Note: If you have library statistics enabled this will also update your statistics tables.
 
10) Download the latest version of the OPL. Note: If you have library statistics enabled this will also update your statistics tables.
Line 175: Line 198:
 
If you are upgrading from release 2.12 or 2.13 you should not have to upgrade any course databases -- there have been no changes. If you are upgrading from an older version, or if you have courses which were created under older versions and not updated then you will need to upgrade the courses from the web.
 
If you are upgrading from release 2.12 or 2.13 you should not have to upgrade any course databases -- there have been no changes. If you are upgrading from an older version, or if you have courses which were created under older versions and not updated then you will need to upgrade the courses from the web.
   
1. Login in to the admin course <code>https://yourSite/webwork2/admin</code>.
+
* 1. Login in to the admin course <code>https://yourSite/webwork2/admin</code>.
2. Choose the "Upgrade Courses" tab.
+
* 2. Choose the "Upgrade Courses" tab.
3. Follow instructions, choosing which courses you want to upgrade.
+
* 3. Follow instructions, choosing which courses you want to upgrade.
4. There will be an intermediate report telling what changes will be made -- click "continue"
+
* 4. There will be an intermediate report telling what changes will be made -- click "continue"
5. There will be a final report on the changes successfully completed -- click "done"
+
* 5. There will be a final report on the changes successfully completed -- click "done"
   
 
== Basic tests ==
 
== Basic tests ==
Line 186: Line 209:
 
with the SMTP (the post office) which you have designated (in site.conf) to handle mail.
 
with the SMTP (the post office) which you have designated (in site.conf) to handle mail.
   
1. Create a new course <code>test_course</course> from the admin page
+
* 1. Create a new course <code>test_course</course> from the admin page
2. You should be listed in this new course as an <code>admin</code>
+
* 2. You should be listed in this new course as an <code>admin</code>
3. Add a student to the course
+
* 3. Add a student to the course
4. Login as the student and from the front page use the "email the instructor" button to send a feedback notice
+
* 4. Login as the student and from the front page use the "email the instructor" button to send a feedback notice
5. Check that you receive this feedback (at your admin email address in the course). Remember the subject starts with [WWfeedback] and you may be shunting
+
* 5. Check that you receive this feedback (at your admin email address in the course). Remember the subject starts with [WWfeedback] and you may be shunting such messages off to another mailbox.
such messages off to another mailbox.
+
* 6. Login as a professor or admin and from the email page send email to your self (and perhaps to the student you have added).
6. Login as a professor or admin and from the email page send email to your self (and perhaps to the student you have added).
+
* 7. Check that this mail comes through.
7. Check that this mail comes through.
 
 
   
 
== Features ==
 
== Features ==
Line 209: Line 232:
 
$a = NumberWithUnits("3 apples",{newUnit=>$newUnits});
 
$a = NumberWithUnits("3 apples",{newUnit=>$newUnits});
   
** See [https://github.com/openwebwork/pg/pull/268] for details. There is also a Units::add_unit() command that allows you to
+
** See [https://github.com/openwebwork/pg/pull/268 #268] for details. There is also a Units::add_unit() command that allows you to add units for all of the answer checkers in a problem. Would someone volunteer investigate this and write up a tutorial for the Problem Techniques page of the Authors section?
add units for all of the answer checkers in a problem. Would someone volunteer investigate this and write up a tutorial for the Problem Techniques page of the Authors section?
 
   
 
* Under-the-hood
 
* Under-the-hood
Line 228: Line 251:
 
** Class::Accessor (part of "Modern Perl" -- allows for easier coding of subroutines) #849
 
** Class::Accessor (part of "Modern Perl" -- allows for easier coding of subroutines) #849
 
** Plugged XSS exploit #848
 
** Plugged XSS exploit #848
** shoemeanother bug fixed #842
+
** showmeanother bug fixed #842
 
** clarified "reduced scoring messages" #842
 
** clarified "reduced scoring messages" #842
   

Latest revision as of 20:51, 29 December 2018

                                     WeBWorK                                    
                         Online Homework Delivery System                        
                                  Version 2.14                          

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

Details
-------

Prerelease date: July 20, 2018 -- the advanced beta version of 2.14 is currently on github

Release date: December 30, 2018 -- 2.14 is merged into the master branch

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

WeBWorK in a Box

It is now possible to set up a development version of WeBWorK on your laptop. It requires that you install an app called Docker. This app is available for Mac, Linux and Windows operating systems. See [1] and [2] for instructions and to download the free "Docker Community Edition". Docker can be run on a 2012 MacBook Pro with 8 Gb of RAM running High Sierra (macOS 10.13.6) without interfering with other apps. It should run fine on most modern laptops and desktop computers.

Having your own development version means that you can safely experiment with new versions of WeBWorK without affecting your production server that is being used by students.

Once Docker is installed on your computer see the instructions on the github webwork2 wiki for installing WeBWorK with ALL of its supporting infrastructure. Once Docker is installed the rest of the installation is the same for all computers.

In addition the 2.14 release version of WeBWorK includes an automatic installation of an R-server so that you can test statistics problems that use R.

If your laptop can run Docker you will have a "WeBWorK in a Box" available for experimentation (and you can help with testing and bug fixing! -- Please!!!)

Cautions

WARNING: It is likely that new modules will be required since the release 2.12. There are also changes to the configuration files which will need to be integrated into your existing configurations.

The process for upgrading to 2.14 is described below. This assumes that you have been using release 2.13 or some other recent release that you installed using git from the github.com repository. If your installation is earlier than 2.13 you should skim through the installation sections of earlier releases

If you are setting up WeBWorK for the very first time you will probably want help with directory structure, permissions (always a hassle) and installing infrastructure tools. If you are installing webwork on a fresh OS install such as Ubuntu or Debian, try using the ww_install script. [3] This will save you lots of time. As of this writing the install script does not include all the new CPAN modules and you will need to install them by hand as described below.

If you prefer to have more control and to install all of the modules by hand there is a collection of installation manuals of which I recommend Installation_Manual_for_2.13_on_Ubuntu_18.04 as the most up-to-date. There are only slight differences between the instructions for the recent releases of WeBWorK and the directions are quite similar for the different flavors of unix. The directory names may sometimes be different but a google search can help clarify how to translate instructions from one OS to another.

Three quarters of the work of a fresh install is getting the supporting stack of applications: apache, perl, CPAN modules, tex, mysql and so forth installed. This is essentially the same for all versions of WeBWorK (except possibly for some extra CPAN modules) but the details may change slightly with upgrades to the unix operating system, apache, mysql and so forth. Changes in the underlying stack is beyond the scope of these release notes see the install manuals for guidance and remember that "google is your friend" for the latest changes.

Once you get to the section in the manual where the WeBWorK and PG software is to be installed you can refer to the instructions below. Let's get started:

Upgrade Instructions

1) Go to /opt/webwork/webwork2

>git branch
* develop
  master
> sudo git fetch        # this will update your local links to the github.com/openwebwork/webwork2 repository

> sudo git checkout master
> sudo git branch -m master-save            # rename your current copy of master to master-save for safety (-m stands for "move")
> sudo git branch -t master origin/master   # create a clean copy of master on your machine, 
                                            # linked to the master branch on github.com/openwebwork/webwork2 (aka origin)
> sudo git checkout master                  # switch to your new local master branch

error: You have local changes to 'lib/WeBWorK/ContentGenerator/Feedback.pm'; cannot switch branches.
 #### this means that you have made local changes you might want to save.  
    Use `git stash` or `git add`, `git commit` or just move the file to a safe place outside the folder.

>sudo git checkout -f master                # the `f` forces the change and overwrites the file if you didn't move it.
Switched to branch 'master'


> git branch                               # view current status
* master
  master-save
  develop


>sudo git pull                            # make sure things are updated
 ....  list of updated files (could be long if updating an old version of master, otherwise it's short)

> less VERSION          # this should tell you that the current version is now 2.14

2) Now go to /opt/webwork/pg and run

>git branch
* develop
  master

> sudo git fetch                 # this will update your local links to the github.com/openwebwork/pg repository

> sudo git checkout master
> sudo git branch -m master-save            # rename your current copy of master to master-save for safety (-m stands for "move")
> sudo git branch -t master origin/master   # create a clean copy of master on your machine, 
                                            # linked to the master branch on github.com/openwebwork/pg (aka origin)
> sudo git checkout master                  # switch to your new local master branch



>sudo git checkout master
Switched to branch 'master'


>sudo git pull                            # make sure things are updated
 ....  list of updated files (could be long if updating an old version of master, otherwise it's short)

> less VERSION          # this should tell you that the current version is now 2.14


The -t flag has your branch "track" the version of master at the origin site. If there are updates on github.com/openwebwork/webwork2 to the master branch a simple sudo git pull will update your local webwork2 directory. If you issue the "git pull" command from the /opt/pg directory you will update from the master branch of github.com/openwebwork/pg.


3) Depending on your system there may be new perl modules which have been added since 2.12. Run check_modules.pl and look for missing modules. They may include:

  cd /opt/webwork/webwork2/bin
 ./check_modules.pl
   ** Digest::SHA not found in @INC
   ** Email::Sender not found in @INC
   ** Data::Dump not found in @INC
      cpan HTML::Scrubber found and loaded
   ** Statistics::R::IO not found in @INC   

In this case the first three modules are missing. You will need to install them with

   sudo cpan Digest::SHA
   sudo cpan Email::Sender
   sudo cpan Data::Dump
   sudo cpan Statistics:R::IO

and so forth.

You should also run

  cd /opt/webwork/webwork2/bin
 pdflatex check_latex.tex

and look for missing latex packages. They may include:

  • fullpage.sty
  • preview.sty

If you are missing fullpage it is in the texlive-latex-extra package in apt based distributions and texlive-preprint in yum/dnf distributions.


Configuration file update

If you are upgrading from a version 2.12 or any version earlier than 2.13 there are a number of configuration changes that you will have to make in your site.conf and localOverrides.conf and possibly course.conf files. See Configuration file update for 2.13 This is IMPORTANT because there were significant changes in the configuration files from release 2.12 to 2.13.

If you are updating from a working version of 2.13 there are no required changes, but there have been changes in localOverrides.conf.dist which you might like to incorporate into your current localOverrides.conf file.


Restart the apache server

8) Restart the webserver.

sudo apachectl restart

Upgrade the admin course, MathJax and the OPL

9) Run the upgrade admin database script. You will not be able to access your admin course until this is done, and you will need to do that to upgrade the course databases.

upgrade_admin_db.pl         #(if this doesn't work use)
perl upgrade_admin_db.pl 

10) Download the latest version of the OPL. Note: If you have library statistics enabled this will also update your statistics tables.

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

11) Download the latest version of MathJax.

cd /opt/webwork/MathJax
git pull

Upgrade course databases

If you are upgrading from release 2.12 or 2.13 you should not have to upgrade any course databases -- there have been no changes. If you are upgrading from an older version, or if you have courses which were created under older versions and not updated then you will need to upgrade the courses from the web.

  • 1. Login in to the admin course https://yourSite/webwork2/admin.
  • 2. Choose the "Upgrade Courses" tab.
  • 3. Follow instructions, choosing which courses you want to upgrade.
  • 4. There will be an intermediate report telling what changes will be made -- click "continue"
  • 5. There will be a final report on the changes successfully completed -- click "done"

Basic tests

Because the underlying mechanisms for sending email have changed it is important to run two tests to check that WeBWorK is still communicating with the SMTP (the post office) which you have designated (in site.conf) to handle mail.

  • 1. Create a new course test_course</course> from the admin page
  • 2. You should be listed in this new course as an admin
  • 3. Add a student to the course
  • 4. Login as the student and from the front page use the "email the instructor" button to send a feedback notice
  • 5. Check that you receive this feedback (at your admin email address in the course). Remember the subject starts with [WWfeedback] and you may be shunting such messages off to another mailbox.
  • 6. Login as a professor or admin and from the email page send email to your self (and perhaps to the student you have added).
  • 7. Check that this mail comes through.

Features

New Features in PG release 2.14

  • Geogebra applets work again -- fixed our implementation to match changes by geogebra.org javascript code: #354, #355
  • Sage applets work again: Modified sage.pl so that it works with new interface provided by SageMath. #329
  • SageCalculatorPad is now available: #329
  • PreTeXt support (mostly from Alex Jordan) -- #327, #352, #353,#360
  • Add custom latex (customLatex.pl) #326, #339
  • Add custom font options for on the fly graphs: #359
  • Allow true display math mode in PGML (\ [....\ ] in addition to \displaystyle) #358
  • New chemistry macros (contextReaction.pl) #334
  • New units -- (e.g. s, sec, second, seconds are all aliases for the short time unit. )
  • An old but under utilized feature. You can add new units for a specific problem
  $newUnits = ['apple',{name=>'apples',conversion=>{factor=>1,apple=>1}}];
  $a = NumberWithUnits("3 apples",{newUnit=>$newUnits});
    • See #268 for details. There is also a Units::add_unit() command that allows you to add units for all of the answer checkers in a problem. Would someone volunteer investigate this and write up a tutorial for the Problem Techniques page of the Authors section?
  • Under-the-hood
    • Better warning messages for authors
    • Enable persistent storage (store persistence data for applets in local persistent storage instead of hidden answer blanks) #324
    • Matrix handling improvements and bug fixes: (Value/Matrix.pm,) #330, #331 , #332, #333, #344, #347
    • PGML bug fixes and small feature requests, #320, #321, #322, #335, #341,#333, #348,#349,

New Features in WeBWorK2 release 2.14

  •  !! New Docker support for R "in a box" #853 (thanks Pan Luo and UBC)
  • Show number of currently "active" students on Statistics page: #823
  • LTI connection improvements, particularly for D2L #804, #813
  • iframe resizer javascript update. For embedding WW problems in HTML pages: #829
  • Under the hood
    • Allow double quote in OPL taxonomy #833, #834
    • PTX compatibility #807
    • Class::Accessor (part of "Modern Perl" -- allows for easier coding of subroutines) #849
    • Plugged XSS exploit #848
    • showmeanother bug fixed #842
    • clarified "reduced scoring messages" #842

references