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

From: Stuart Raeburn <[email-masked]>
Date: Sat, 24 Sep 2016 19:43:25 -0400

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

New Version 2.11.2 Released

Update of 2.11.1 installations to 2.11.2 is highly recommended.

Although this is primarily a bug fix release, authors will see some
interface changes when using the editors in Authoring Space, because
a number of improvements have been included for both the "XML Editor"
and the "Colorful" Editor.

Changes from 2.11.1

Student Interface
  - Math Previewer is available for all textboxes in formularesponse items with
    multiple answers.
  - If the "buttonshide" parameter is set for a composite page to hide the
    icons on the right side of the standard course inline menu, icons are also
    hidden for each resource in the page.
  - Display of the pop-up reaction editor window for reactionresponse items is
    supported where the resources are published "public".
  - Course contents shows both due date and reservation status for items with
    access controlled by slots, if there is a due date, and status is open.
  - "Computer's answer now shown above" message moved to left of award-related
    message.
  - IP-based access control for portfolio files added to existing "conditional"
    access types used to grant read access to others besides the owner.
  - For resources already checked into a slot (now past its end time), unique
    time period use in used slot is taken into account when displaying
    reservable (future) slots.
  - Time limits can now be used for composite pages.
  - Countdown timer is included in a composite page if all items with time left
    have the same amount of time remaining.
  - Folders with "hiddenresource" parameter set at folder level now hidden in
    students' view of Course Contents.
  - When using "Forgot Password?" if a domain for a different institution than
    the server belongs to is selected there will be a redirect to the user's
    home server.
  - Improvements in display of log-in page and roles/courses page for mobile
    devices with small viewports.
  - For mobile devices, autocapitalization and auto-correct are disabled for
    input fields for username and e-mail address in "Forgot password?" form.

Course Management
  - Course's quota usage is displayed in the file upload section in Course
    Editor.
  - Time component of date parameters will be unchanged when cloning includes
    a date shift which causes the date to switch from daylight savings to
    standard time (or vice versa).
  - A progress indicator is displayed during enrollment of multiple students
    by file upload.
  - Blocking of user actions during an exam can include internally
    authenticated users changing a password via preferences or via
    "Forgot password?".
  - The parameter setting pop-up display for time limit settings is improved by
    disabling line wrapping.
  - Inclusion of an anchor in the URL for an external resource is now
    supported.
  - A warning is displayed when removing resource(s) uploaded directly to a
    course (includes "blank web page") via a pop-up (which is used to confirm
    removal).
  - Automated Enrollment (with drops) for a course with multiple institutional
    sections supports setting of "failsafe" threshold value, for maximum number
    of drops permitted, if no enrollment retrieved for one institutional
    section.
  - Export of resources to IMS package can now include raw XML of resources for
    which Course Coordinator is co-author for the space to which resource
    belongs.
  - An error message is displayed when creating a slot from an uploaded slot
    definitions file, if the date/time format used is invalid.
  - Textbook/Template course requests include an additional content option:
    "select from colleagues' courses" (for which requester has rights to
    clone).
  - Courses created via "Request course" will automatically have the requester
    assigned as recipient of feedback from students on course content.

Authoring
  - XML Editor and Script blocks in "Colorful" Editor use CodeMirror to
    provide:
    (a) Line numbers
    (b) Indentation
    (c) Syntax highlighting
  - Deactivation/Reactivation of CodeMirror available in a User's Preferences
    for users with author/co-author role(s).
  - Drop down lists to insert problem templates and code snippets in XML
    Editor.
  - Scroll position saved when using "Save and Edit" or "Save and EditXML".
  - Menu bar containing "Discard Edits and View", and "Save and Edit" buttons
    etc. floats at top of window, when scrolling.
  - Colorful Editor can show/hide blocks during editing (state saved/restored).
  - Rich Text Editor (CKEditor) includes plug-ins for chemical formula
    formatting and mathematics formatting (TeX), accessed via new icons in
    Text Editor menu: Chemistry -- "ball and stick"; Math -- Sigma symbol.
  - Shortcuts for creation of empty problems, html files and directories
    when listing a directory.
  - Appropriate error message shown when displaying numericalresponse item
    in Authoring Space when invalid unit was included as an attribute.

Domain Coordination/Domain Settings
  - Choice of CAPTCHA mechanisms for public-facing helpdesk form includes:
    v.2 of Google reCAPTCHA ("I am not a robot" checkbox).
  - Domain Coordinator can upload custom HTML mark-up into the head block of
    the log-in page for different domains on a multi-domain server.
  - Domain configuration for user self-creation of an account with e-mail
    address as username can include Student/Employee ID as a user-supplied
    field.
  - Domain defaults for Automated Enrollment for courses with multiple
    institutional sections includes "failsafe" threshold value, for maximum
    number of drops permitted, if no enrollment retrieved for one institutional
    section.
  - Default lifetime (since last update) can be set for "temporary" MySQL
    tables containing student performance data (course's homeserver only) by
    course type, (can be overridden in a specific course via DC's "View or
    modify a course").
  - Domain configuration for LON-CAPA directory searches for user information
    for users in a domain: can disable for all, or disable only for other
    domains.
  - XML-based description of course attributes used for batch creation of
    courses can include "setcomment" tag, where a value of 1 sets recipient of
    feedback from students on course content to username:domain of  
course owner.

Printing
  - Privileged users can print folders for which "hidden" is checked.
  - The default paper type used for "letter" format is explicitly set (to a4).
  - Page with link to PDFs includes link back to the resource, and a link to
    change printing options.

Localization
  - Updates to German translations.

Documentation
  - Documentation on how the LON-CAPA spreadsheet can be used to provide
    an online gradebook with category-based grading.
  - Batch creation of courses documentation added to Domain Coordination
    manual.

Third-party modules
  - MathJax updated to 2.6.1
  - CKEditor (WYSIWYG HTML editor) updated to 4.4.7
  - Updates of jQuery to 1.11.3, and jQuery-ui to 1.11.4
  - Use of jsMath discontinued; MathJax is used instead in cases where jsMath
    use is indicated in a resource, in a user's preferences, or in course
    preferences.

Internals
  - Most localized messages used in Javascript blocks are now escaped to
    eliminate javascript run-time errors caused by single quotes in localized
    phrases.
  - Speed-up for course contents display by caching symb when resource object
    created.
  - Sanity checking to avoid ISE in the case where slot was reserved for a
    resource which is now hidden, or has been removed from the course.
  - Speed-up for "What's New" page for people with large number of messages
    in INBOX.
  - Speed-up when retrieving institutional data for multiple users when adding
    users via file upload.
  - Speed-up access to data cached in %remembered hash which persists for
    duration of request.
  - SVG file type added to 'Pictures' category used as a search filter.
  - Key length for lonKey.pem increased to 2048 bits.
  - Log file for each user records change history for user's authentication.
  - Internally authenticated users can use passwords of any length.
  - Textbook/Template course requests
    - Additional items can be sent to localenroll::crsreq_updates():
      _LC_coursedescription, _LC_coursestartdate, _LC_courseenddate.
    - Additional calls to lonnet::auto_crsreq_update() for new actions:
      (a) initializereview and (b) prereview used to support custom
      javascript in textbook request page, and custom onload action.
    - Additional keys supported in hashref populated in
      localenroll::crsreq_updates() to customize "textbook" course request
      page:
      - createdactions (set course settings, post-creation, e.g.,
        self-enrollment).
      - createdcustomized (suppress standard display of "Make another
        request etc.)
      - onload (actions to execute on page load).
      - validationjs (items to include in the form validation function).
      - javascript (additional javascript functions for use with textbook
        course request form).

Other bug fixes
  - Reinstate support for cloning of own course, where no cloning configuration
    was set in course's environment.db, when using course request form and
    course is created automatically.
  - Automated enrollment process now supports automated group membership
    changes.
  - Fields: "allowedsections" and "allowedusers" available for assignment
    to columns in uploaded slot list (csv file) now supported.
  - Eliminated "caching of id  ... failed" messages in lonnet.log when starting
    or restarting loncontrol.
  - Eliminated warnings in lonc_errors where SSL is in use and distro has
    IO::Socket::SSL rev. 1.79 or newer.
  - Eliminated duplication of "Trying to get resource data for ... " messages
    in lonnet.log for a specific user where con_lost result is from cache
    (memcache), with 10 minutes expiration.
  - Values user selects in hour dropdown lists for "Open after" and
    "Closed before" when using "Search by date" display of slots are now used.
  - Load-balancer status is cached for unconfigured domains.
  - Improved checking during ./UPDATE to determine if ntp daemon is running.
  - Where the author has published an index.html file in his/her Authoring
    Space, allow standard display of directory listing in /res/domain/user/
    (Apache 2.4).
  - Script used to generate SSL key and certificate signing request ensures
    lonKey.pem file has correct owner.
  - Eliminated javascript error when using "Select Community" link when cloning
    a course (as Domain Coordinator) using "Create a single community".

Supported Linux Distributions
  - Added Ubuntu 16.04 LTS, Fedora 22, 23, 24.

Specific enhancement requests/bugs addressed: (see http://bugs.loncapa.org)
4394, 5464, 5596, 5679, 5787, 6690, 6770, 6708, 6774, 6778, 6782, 6788, 6793,
6796, 6797, 6800, 6802, 6806, 6810, 6815, 6817, 6832.

Installation Notes:

To use this release you need to have version 1-25 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 10, 12, 14, or 16
Fedora Core 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 or 24, 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-25

(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-25.X
(where X is a distro identifier e.g., centos7.lc)

(ii) Ubuntu
sudo dpkg -l loncapa-prerequisites

should report
ii loncapa-prerequisites 1.25-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.2.tar.gz

and untar it

tar xzvf loncapa-2.11.2.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
service httpd stop

SuSE 12.X, 13.X, SLES12:
service apache2 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.2.
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, 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:
service httpd start

SuSE 12.X, 13.X, SLES12
service apache2 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