Subject: [LON-CAPA-dev] Draft of Release Notes for 2.11.1

From: Stuart Raeburn <[email-masked]>
Date: Fri, 13 Mar 2015 19:41:58 -0400

*** Draft of LON-CAPA 2.11.1 release notes ***

New Version 2.11.1 Released

This is primarily a bug fix release.
Update of 2.11.0 installations to 2.11.1 is recommended.

Changes from 2.11.0

Student Interface
  - Math previewer (javascript) is available by default for mathresponse
    and formularesponse, in place of DragMath.
  - JSME is used by default as the molecule editor in organicresponse.
  - By default, submit button(s) are temporarily disabled when a student
    presses "Submit Answer" or uses the "Enter" key to submit an answer.
  - Auto-completion is disabled for input textboxes used by students to
    enter answers.
  - Course session data (i.e., information about course content and
    hidden folders/URLs) is updated when Course Contents or Grades pages
    are displayed, or LON-CAPA navigation is used to move between resources,
    if there has been a change (and > 10 minutes elapsed since last check).
  - Text in student-viewable roster depends on type, i.e., Community/Course.

Course Management
  - Cut, copy or remove in Course Editor supported for items with double
    quote(s) in title.
  - Multiple cut/remove in Course Editor supported for uploaded files with
    no explicit title set in course.
  - No limit on number of items which can be cut/copied in Course Editor
    at one time.
  - Access to discussion and message records for a student by course
    personnel re-enabled for the case where the current LON-CAPA session
    hosted is on the course's homeserver.
  - Upload of Camtasia 8 files to the Supplemental Content area supported.
  - onchange() action replaced with onclick() in the pop-up window used
    for parameter setting with radio buttons (workaround for bug in IE11).
  - Single quotes and spaces in a resource URL are handled when using
    "Stored Links".

Communication
  - Display of critical messages includes link(s) to any attachment(s).
  - If "Send copy to permanent e-mail" was checked when sending a message
    the screen output will show if e-mail(s) was/were sent.

Grading/Statistics
  - With the "all submissions with details" option selected a "Hide" checkbox
    is shown for any transaction where solved status for a part changed from
    correct to incorrect where:
    (a) question type was not survey (anonymous or otherwise)
    (b) this was not bubblesheet grading
    (c) feedback on display of correctness to the student is enabled
    (d) there was no "reset status" between the submission of the correct and
        the incorrect.
     Checking the "Hide" checkbox and pushing the "Save & Next" will convert
     the transaction to hidden, so solved status changes from  
"incorrect" to "correct".
  - Overall problem statistics can be displayed for selected groups.

Authoring
   - Optionresponse can include limits on how many checkboxes should be
     checked in "checkbox" mode.
   - Display of an "automatic" prompt in option response T/F problems in
     "checkbox" mode can be suppressed.
   - &cas("R") for evaluations using R can handle expressions beginning
     with a digit.
   - &submission() in one problem can access submissions by the same student
     in a different problem.
   - Import of Camtasia files supports packaging of mp4 files used in
     Camtasia Studio version 8.4.2.
   - Support style of packaging of .js dependency used in Camtasia Studio
     8.4.2  *_player.html files.
   - In Authoring Space .css or .js file content is returned as-is, if file
     is a dependency of an .html or .swf file currently being displayed.

Domain Coordination/Domain Settings
   - Client IP change when load balancing -- option added to host on Load
     Balancer itself, after re-authentication.
   - Domain configuration accommodates inclusion of custom HTML mark-up in
     head block of log-in page.
   - For SSO users custom HTML mark-up can be included in head block of
     log-out page.
   - List of domain users reports correct status for expired Domain
     Coordinator roles.
   - Courses displayed in disk quota list are sortable by clicking on column
     headers.
   - Course/Community defaults can be set for use of JSME Molecule Editor
     and/or LON-CAPA Math Previewer as replacements for the JME Molecule
     Editor and DragMath.
   - Course/Community defaults for disabling submit button after student
     submission can be set (can override in specific course(s) via Domain
     Coordinator's "Modify course").

Printing
   - Printout generation for images in .svg format now supported.
   - Entities: &approx; &approxeq; &hbar; &planck; and &planckh; supported.
   - Message displayed if no resources to print tailored to printing context.
   - Leading/trailing white space removed from the name used to save CODEs
   - If your server rewrites requests from http to https using loncapa_rewrites
     you should add one more rule to your ssl.conf Apache config file to avoid
     errors when generating printouts which include the syllabus.

     RewriteCond %{REMOTE_ADDR} <Server IP>
     RewriteRule (.*) - [L]

     (replace <Server IP> with the actual IP address of the server -- see (8)
     in the installation notes below).

Localization
   - Updates to German translations.

Documentation
  - Documentation added for Shibboleth Authentication.

Third-party modules
  - Support added for JSmol (HTML5/javascript), and Jmol updated to
    14.2.12_2015.02.11.
  - JSME (2015-02-09 version) is an alternative to JME molecule editor.
  - DragMath.jar (version 0.7.9) manifest now has attributes for
    Application-Name, Permissions, and Codebase, and is signed with an
    updated InCommon code-signing cert.

Internals
  - Prevent recording of second submission where incorrect followed correct
    (caused by latency during processing of two different submissions made
    only a second or two apart).
  - Processing of output from R CAS accommodates "probability greater than,
    i.e., "Pr(>" and also null values.
  - Client IP change during session migration (i.e., switchserver) logged.
  - Charset is set to utf-8 in content header for pages generated from
    scripts in /cgi-bin/.
  - Due date checking in &check_status() supports time limits.
  - Random seed used to render problem is stored with submission for all
    response types.
  - If user's paste buffer lock file was not removed for some reason after
    using Course Editor, remove it automatically on user's next log-in.
  - Parsing of dns_checksums/X.Y.Z.tab files handles Ubuntu/Debian/SuSE
    apache config paths.
  - For a src or href remove any query string appended to the url before
    setting the value of the src in the allow tag.
  - allow tag not created if image data is included directly in <img> tag's
    src attribute using a "data URI".
  - Malformed urls no longer created when user reloads Course Contents
    after browser's session cookie has expired.

Other bug fixes
  - "Take Offline" script uses hostname instead of LON-CAPA hostID in meta
    refresh used to redirect users to another server, when server offline
    (e.g., for maintenance).
  - For resources with location-specific reservations, access end date is
    shown correctly on the Course Contents page, when accessed from outside
    the required IP range.
  - Avoid conflict between location.host and host used in absolute URL.

Supported Linux Distributions
  - Scientific Linux 7, SLES12, SuSE 13.2, Fedora 21 added.

Specific enhancement requests/bugs addressed: (see http://bugs.loncapa.org)
4729, 5674, 6476, 6597, 6671, 6675, 6685, 6704, 6723, 6726, 6728, 6731,
6732, 6733, 6740, 6743, 6746, 6747, 6748, 6749, 6752, 6755, 6757, 6765,
6767

Installation Notes:

To use this release you need to have version 1-23 of LONCAPA-prerequisites
installed.

To install this update:

1) You will need to be running CentOS 5, 6 or 7, RHEL (AS|ES) 4, 5, 6, or 7,
Scientific Linux 5, 6 or 7, SLES 9, 10, 11 or 12, Ubuntu LTS 8, 10, 12 or 14,
Fedora Core 13, 14, 15, 16, 17, 18, 19, 20 or 21, or SuSE 11.4, 12.1, 12.2,
12.3, 13.1 or 13.2. (Fedora Core 9, 10, 11 and 12, and SuSE 11.1, 11.2 & 11.3
should continue to work, but are deprecated).

You will need to be root to use the commands listed at steps 2 to 11 below.
On Ubuntu LTS servers either prepend sudo for each command, or use sudo -i.

2) Update LONCAPA-prerequisites to 1-23

(a) Fedora

yum update

(b) RedHat Enterprise 4

up2date -u LONCAPA-prerequisites

(c) Red Hat 5, 6 and 7/Centos 5, 6 and 7/Scientific Linux 5, 6 and 7

yum update

(d) SuSE/SLES

Use yast-> Installation Source to refresh the LON-CAPA repository
Use yast->Software Management->Search to update LONCAPA-prerequisites

(e) Ubuntu

sudo apt-get update
sudo apt-get upgrade

On all distributions, it is recommended that you check that you have
the correct version of LONCAPA-prerequisites installed before proceeding.

(i) CentOS/RHEL/Scientific Linux/Fedora/SLES/SuSE
rpm -q LONCAPA-prerequisites

should report:
LONCAPA-prerequisites-1-23.X
(where X is a distro identifier e.g., centos6.lc)

(ii) Ubuntu
sudo dpkg -l loncapa-prerequisites

should report
ii loncapa-prerequisites 1.23-X
(where X is a version number which depends on Ubuntu distro)

3) Download the new LON-CAPA tarball from
wget http://install.lon-capa.org/versions/loncapa-2.11.1.tar.gz

and untar it

tar xzvf loncapa-2.11.1.tar.gz

4) stop the LON-CAPA system services

/etc/init.d/loncontrol stop

5) stop the web server:

Fedora 16 (and older)/RHEL/Centos/Scientific Linux 6 (and older)
/etc/init.d/httpd stop

Fedora 17 (and newer), RHEL/CentOS 7, SuSE 12.X, 13.X, SLES12:
service httpd stop

SLES 9:
/etc/init.d/apache stop

SuSE 11.X, SLES 10, SLES 11, Ubuntu:
/etc/init.d/apache2 stop

6) Run the UPDATE script as root
(Note: new in 2.11 -- you will be asked to confirm that you wish to
remove files
installed by older versions of LON-CAPA which are no longer used by 2.11).

cd loncapa-2.11.1
su
./UPDATE

7) If you are updating a LON-CAPA library server from LON-CAPA version
2.10.1 or earlier, you will need to run a script to migrate Authoring
Spaces in domain(s) hosted on the server from their old locations in:
/home/ to their new locations in /home/httpd/html/priv

To do this use the command:

perl /home/httpd/perl/debug/move_construction_spaces.pl move

Note: You can perform a dry-run, which will show what would happen, but will
not actually move anything, by omitting the "move" argument.

8) If your Apache web server has been configured to use SSL, and you have
included rewrite rules to rewrite all requests to http://<yourserver>/
to https://<yourserver>/ you will need to modify your rewrite rule to
(a) allow internal HEAD requests to /cgi-bin/mimetex.cgi to be served
http://, in order to support vertical alignment of mimetex images
(one of the options for rendering Math content); (b) allow requests
for certain URLs (external resource, annotations, jsMath, and syllabus)
to be served http:// to accommodate the use of iframes which would
otherwise result in browser blocking of mixed active content.

Starting with LON-CAPA 2.10, a config file containing rewrite
rules -- loncapa_rewrite.conf -- is added to /etc/httpd/conf
(CentOS, Red Hat, Scientific Linux, Fedora) or /etc/apache2 (SuSE, SLES,
Ubuntu, Debian). By default, rewrites are set to off (using
RewriteEngine off).  If you already have you own rewrite rules in place
you should either transfer them to loncapa_rewrite.conf, after completing
the LON-CAPA update, or leave your existing file in place and comment out
the entries in loncapa_rewrite.conf. Otherwise, if you are using
SSL with Apache, and would like requests to http://<yourserver>/
to be rewritten to https://<yourserver>/, you should copy
rewrites/loncapa_rewrite_on.conf to loncapa_rewrite.conf to enable this.
The rules included in that config file do not rewrite internal
requests (i.e., from 127.0.0.1) to https://, so vertical alignment
of mimetex images is supported. In 2.11 there are also rules for the URLs
noted above, which exclude them from rewrites to https:// to avoid
issues with mixed active content.

Once you have the rules for ^/adm/wrapper/ext/(?!https:) and
^/public/.*/syllabus$ in place in loncapa_rewrite.conf you should also add
the following to your <VirtualHost _default_:443> </VirtualHost> block:

    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteCond %{HTTPS} =on
      RewriteRule ^/adm/wrapper/ext/(?!https:\/\/)
http://%{HTTP_HOST}%{REQUEST_URI} [R,L,NE]
      RewriteCond %{REMOTE_ADDR} 127.0.0.1
      RewriteRule (.*) - [L]
      RewriteCond %{REMOTE_ADDR} <Server IP>
      RewriteRule (.*) - [L]
      RewriteRule ^/public/.*/syllabus$
http://%{HTTP_HOST}%{REQUEST_URI} [R,L,NE]
    </IfModule>

replacing <Server IP> with the IP address of the server itself.

Note: this is only needed if you are using SSL (i.e., requests to
https://<yourserver>/ are supported) and you want to rewrite external
requests to http://<yourserver>/ to always use https://<yourserver>/

9) Note about /home/httpd/lib/perl/localenroll.pm
When you use UPDATE to update an existing LON-CAPA installation to a newer
version, the customizable localenroll.pm file is not overwritten.  This
is the file which must be customized to support integration of LON-CAPA
with institutional data sources (e.g., for automated update of course
rosters or user information). Whenever new routines are included in
localenroll.pm these will appear in localenroll-std.pm, which is updated
when a new LON-CAPA version is installed.

If you have previously customized localenroll.pm it is recommended that
you compare the contents of localenroll.pm and localenroll-std.pm after
an update to see if there are new subroutines (which exist as stubs in
localenroll-std.pm) which can be copied to your custom localenroll.pm,
and later customized, should you wish to use that functionality.

Recent changes are addition of new_course() in LON-CAPA 2.10 to support
access to institutional classlist data for a particular course,
based on co-ownership (previously only ownership was considered), and
in LON-CAPA 2.11 (a) addition of crsreq_updates() to support domain-specific
operations during course request processing; (b) a fourth arg in
allusers_info() -- $lc_users -- a reference to hash containing LON-CAPA
usernames,  suitable for institutions which only allow a server to retrieve
institutional user information when the user's username is included in the
query; (c) validate_instcode() can return a third value: the default credits
earned by students when completing the course corresponding to the supplied
institutional code; (d) validate_crsreq() takes an additional arg:
$custominfo -- an optional reference to a hash of custom form data.
The custom form data themselves will come from crsreq_updates().

10) restart the LON-CAPA system services
/etc/init.d/loncontrol start

11) restart the webserver:

Fedora (16 and older)/RHEL/Centos/Scientific Linux 6 (and older)
/etc/init.d/httpd start

Fedora 17 (and newer), RHEL/CentOS/Scientific Linux 7, SuSE 12.X, 13.X,
SLES12:
service httpd start

SLES 9:
/etc/init.d/apache start

SuSE 11.X, SLES 10,11, Ubuntu:
/etc/init.d/apache2 start

12) It is recommended that loncron is run
(as the www user) after installation/update is complete.

su www
/home/httpd/perl/loncron

This will write to files in /home/httpd/lonTabs used to
store information about LON-CAPA versions on other servers in
the cluster to which the server belongs.  It may take some
minutes to complete as the script will contact other servers
in the LON-CAPA network sequentially.

13) It is also recommended that you check disk usage for courses
and Authoring Spaces, as 2.11 introduces default quotas of 0.5 GB
for each course (content uploaded directly via Course Editor) and
the same for each author.

For courses, log-in as Domain Coordinator and use:
Main Menu -> Status of domain servers -> Display quotas and usage for
Course/Community Content.

For Authoring Spaces, log-in as Domain Coordinator and use:
Main Menu -> Create users or modify the roles and privileges of users
->  Manage Users, and select Author in the "Role" dropdown, then
press the "Display List of Users" button.

The 0.5 GB default quota for Authoring Spaces in domain can be replaced via:
Main Menu -> Set domain configuration -> Blogs, personal web pages,
webDAV/quotas, portfolios

The 0.5 GB default quota for Courses can be replaced via:
Main Menu -> Set domain configuration -> Course/Community defaults

Quotas for individual authors can be set via:
Main Menu -> Create users or modify the roles and privileges of users
-> Add/Modify a User

Quotas for individual courses can be set via:
Main Menu -> View or modify a course or community
then search/select the course and use:
"View/Modify quotas for group portfolio files, and for uploaded content".

----NOTES
1) Defects reports, and enhancements requests can be entered at
          http://bugs.lon-capa.org
2) Mailing lists can be joined and left at http://mail.lon-capa.org
3) Installation/update support is available from helpdesk at loncapa.org

Stuart Raeburn
LON-CAPA Academic Consortium