OpenACS Release Notes

Release 5.9.2

The release of OpenACS 5.9.1 contains the 88 packages of the
oacs-5-9 branch. These packages include the OpenACS core packages,
the major application packages (e.g. most the ones used on
OpenACS.org), and DotLRN 2.9.1.

Reduced generation of dead tuples by combining multiple DML
statements to one (reduces costs of checkpoint cleanups in
PostgreSQL)

Permission queries:

Improved performance

Support PACKAGE.FUNCTION notation for PostgreSQL to allow calls
permission queries exactly the same way as in Oracle (e.g.
"acs_permission.permission_p()"). This helps to reduce
the number of postgres specific .xql files.

Use real enumeration types rather than check constraints (done
for storage_type text/file/lob)

CR hygienics (reduce cr bloat)

Provided means to avoid insert/update/delete operations in the
search queue:

OpenACS adds for every new revision often multiple entries to
the search_queue, without providing any means to prevent this. This
requires for busy sites very short intervals between queue sweeps
(otherwise too many entries pile up). Another consequence is that
this behavior keeps the PostgreSQL auto-vacuum daemons permanently
active. Many of these operations are useless in cases where the
content repository is used for content that should not be provided
via search. The changed behavior should honors a publish-date set
to the future, since it will not add any content with future
publish dates to the search-queue.

Reduced number of insert cr_child_rels operations, just when
needed:

cr_child_rels provide only little benefit (allow one to use roles in
a child-rel), but the common operation is a well available in
cr_items via the parent_id. cr_child_rels do not help for recursive
queries either. One option would be to add an additional argument
for content_item__new to omit child-rel creation (default is old
behavior) and adapt the other cases.

Fixed links from host-node mapped subsite pages to swa-functions
(must be always on main subsite)

Made "util_current_directory" aware of
host-node-mapped subsites

Added ability to pass "-cookie_domain" to make it
possible to use the same cookie for different domains

Fixed result of affected commands
"util_current_location", "ad_return_url",
"ad_get_login_url" and "ad_get_logout_url" for
HTTP and HTTPS, when UseHostnameDomainforReg is 0 or 1.

Improved UI for host-node maps when a large number of site nodes
exists

Reform of acs-rels

Made acs-rels configurable to give the developer the option to
specify, whether these are composable or not (default fully
backward compatible). This is required to control transitivity in
rel-segments

The code changes are based on a patch provided by Michael
Steigmann. For details, see:

Release 5.9.0

The release of OpenACS 5.9.0 contains the 78 packages of the
oacs-5-9 branch. These packages include the OpenACS core packages,
the major application packages (e.g. most the ones used on
OpenACS.org), and DotLRN 2.9.0.

Added timeout and configurable secrets for signed url parameters
to export_vars/page_contracts. This can be used to secure sensitive
operations such as granting permissions since a link can be set to
timeout after e.g. 60 seconds; after that, the link is invalid. A
secret (password) can be set in section ns/server/$server/acs
parameter "parametersecret". For example, one can use now
"user_id:sign(max_age=60)" in export_vars to let the
exported variable expire after 60 seconds.

Misc:

Added ability to show ns_log statements of current request to
developer support output when developer support is activated
(controlled via package parameter
"TclTraceLogServerities" in the acs-tcl package
parameters)

Added ability to save data sent by ns_return in files on the
file system. This can be used to validate HTML content also for
password protected pages (controlled via package parameter
"TclTraceSaveNsReturn" in the acs-tcl package
parameters)

New API function "ad_log" having the same interface as
ns_log, but which logs the calling information (like URL and
call-stack) to ease tracking of errors.

Use per-thread caching to reduce number of mutex lock operations
and lock contention on various caches (util-memoize, xo_site_nodes,
xotcl_object_types) and nsvs (e.g ds_properties)

Release 5.8.1

The release contains the 78 packages of the oacs-5-8 branch.
These packages contain the OpenACS core packages, major application
packages (e.g. most the ones used on OpenACS.org), and DotLRN.

All packages have the following properties:

SQL:

All packages are PostgreSQL 9.1+ compatible (tested with
PostgreSQL 9.3)

All SQL files with stored procedures use the recommended $$
quoting

All SQL-functions have regular function arguments instead of the
old-style aliases

The function_args() (query-able meta-data) are completed and
fixed

Incompatible functions (e.g. for sequences) are replaced.

Tcl:

All packages were brought up Tcl 8.5, including the actual Tcl
idioms where appropriate (e.g. using the safer expand operator,
range indices, dict, lassign, etc.)

The code was updated to prefer byte-compiled functions instead
of legacy functions from ancient Tcl versions.

The code works with NaviServer and AOLserver.

API:

All packages are free from calls to deprecated code (157
functions are marked as deprecated and will be moved into an
"outdated" package in the 5.9 or 6.0 release)

General overhaul of package management

Install-from-local and install-from-repository can be used to
install the provided packages based on a acs-core installation.
This means that also DotLRN can be installed from repository or
from local into an existing OpenACS instance.

Install-from-repository offers filtering functions, allows one to
install optionally from head-channel (for packages not in the base
channel of the installed instance). Install-from-repository works
more like an app-store, showing as well vendor information

Package developers can upload .apm packages via workflow for
review by core members and for inclusion to the repository. The
option is integrated with package management, the link is offered
for local packages. We hope to attract additional vendors
(universities, companies) to make their packages available on this
path.

Release 5.8.0

Compatibility with PostgreSQL 9.2: The new version installs
without any need for special parameter settings in new PostgreSQL
versions. This makes it easier to use e.g. shared or packaged
PostgreSQL installations.

Release 5.6.0

Added new package dependency type, "embeds". This is a
variant of the "extends" package dependency type added in
OpenACS 5.5.0. It allows one to write embeddable packages, with
scripts made visible in client packages using URLs which include
the embedded package's package key. An example embeddable
package might be a rewritten "attachments" package. The
current implementation requires a global instance be mounted, and
client packages generate urls to that global instance. Among other
things, this leads to the user navigating to the top-level subsite,
losing any subsite theming that might be associated with a
community. Using "embeds", a rewritten package would run
in the client package's context, maintaining theming and
automatically associating attachments with the client package.

Added global package parameters - parameters can now have scope
"local" or "global", with "local"
being the default..

Fixes for ns_proxy handling

Significant speedup for large sites

Optional support for selenium remote control
(acs-automated-tests)

New administration UI to manage mime types and extension map

Added acs-mail-lite package params for rollout support

Support for 3-chars language codes in acs-lang

Added OOXML mime types in acs-content-repository

Release 5.5.0

PostgreSQL 8.3 is now fully supported, including the use of the
built-in standard version of tsearch2.

TinyMCE has been upgraded to 3.2.4.1 with language pack
support.

acs-mail-lite now correctly implements rollout support.

Added new package dependency type, "extends".
Implements a weak form of package inheritance (parameters and,
optionally, templates). Multiple inheritance is supported. For
instance, the non-core "layout-managed-subsite" extends
the "acs-subsite" and "layout-manager"
packages, resulting in a package that combines the semantics of
both.

Added new package attribute "implements-subsite-p"
(default "f"). If true, this package may be mounted as a
subsite and is expected to implement subsite semantics. Typically
used by packages which extend acs-subsite.

Added new package attribute "inherit-templates-p"
(default "t"). If true, the package inherits templates
defined in the packages it extends. This means that the package
only needs to specify templates where the UI of an extended package
is modified or extended. This greatly reduces the need to fork base
packages when one needs to customize it. Rather than modify the
package directly, use "extends" rather than
"requires" then rewrite those templates you need to
customize.

Added a simple mechanism for defining subsite themes, removing
the hard-wired choices implemented in earlier versions of OpenACS.
The default theme has been moved into a new package,
"openacs-default-theme". Simplifies the customization of
the look and feel of OpenACS sites and subsites.

The install xml facility has been enhanced to allow the calling
of arbitrary Tcl procedures and includes various other enhancements
written by Xarg. Packages can extend the facility, too. As an
example of what can be done, the configuration of .LRN communities
could be moved from a set of interacting parameters to a cleaner
XML description of how to build classes and clubs, etc.

Notifications now calls lang::util::localize on the message
subject and body before sending the message out, using the
recipient locale if set, the site-wide one if not. This will cause
message keys (entered as <span>#</span>....# strings) to be
replaced with the language text for the chosen locale.

Release 5.4.2

This is a minor bugfix release.

Site node caching was removed as doesn't work correctly

Critical issues with search on oracle were fixed

More html strict work etc

Release 5.4.1

This is a minor bugfix release.

Release 5.4.0

New Templating API added to add scripts, css, etc to the HTML
HEAD and BODY sections of the generated HTML document. Please see
/packages/acs-templating/tcl/head-procs.tcl or visit the
template::head procs in the API browser for details.

Templates have been modified to comply with HTML strict

The Search package's results page has been improved

TinyMCE WYSIWYG support has been added, RTE and HTMLArea support
dropped

acs-mail-lite's send has been cleaned up to properly encode
content, to handle file attachments, etc. "complex-send"
will disappear from acs-core in a future release.

The ChangeLogs include an annotated list of changes (???) since the last release and in the entire
5.9 release sequence ???.

Release 5.3.1

Bug fixes.

New TIPs implemented.

All Core Automated Tests for Postgres pass.

New Site and Blank master templates and CSS compatible with the
.LRN Zen work. Compatibility master templates are provided for
existing sites.

The ChangeLogs include an annotated list of changes (???) since the last release and in the entire
5.9 release sequence ???.

Release 5.3.0

Bug fixes.

New TIPs implemented.

All Core Automated Tests for Postgres pass.

Release 5.2.0

Bug fixes.

New TIPs implemented.

This release does not include new translations.

Release 5.1.4

Bug fixes.

The missing CR Tcl API has been filled in, thanks to Rocael and
his team and Dave Bauer.

This release does not include new translations.

Release 5.1.3

Bug fixes, primarily for .LRN compatibility in support of
upcoming .LRN 2.1.0 releases. This release does not include new translations since
5.1.2.

Release 5.1.2

Translations synchronized with the translation server. Basque
and Catalan added.

Release 5.1.1

This is the first release using the newest adjustment to the
versioning convention. The OpenACS 5.1.1 tag will apply to OpenACS
core as well as to the most recent released version of every
package, including .LRN.

Translations synchronized with the translation server.

Bug 1519 fixed. This involved renaming all
catalog files for ch_ZH, TH_TH, AR_EG, AR_LB, ms_my, RO_RO, FA_IR,
and HR_HR. If you work with any of those locales, you should do a
full catalog export and then import (via /acs-lang/admin) after
upgrading acs-lang. (And, of course, make a backup of both the
files and database before upgrading.)

Other bug fixes since 5.1.0: 1785, 1793, and over a dozen additional bug fixes.

Release 5.0.1

All work on the translation server from 7 Nov 2003 to 7 Feb 2004
is now included in catalogs.

One new function in acs-tcl, util::age_pretty

Complete Change list since 5.0.0 in Changelog

Many documentation updates and doc bug fixes

Release 5.0.0

This is OpenACS 5.0.0. This version contains no known security,
data loss, or crashing bugs, nor any bugs judged release blockers.
This version has received manual testing. It has passed current
automated testing, which is not comprehensive. This release
contains work done on the translation server
http://translate.openacs.org through 7 Nov 2003.

After installation, the full documentation set can be found by
visiting http://yourserver/doc.

New features in this release:

Internationalization support. A message catalog to store
translated text, localization of dates, number formatting, timezone
conversion, etc. Allows you to serve your users in their
language.

External authentication. Integrate with outside user databases
through e.g. LDAP, RADIUS, Kerberos, MS Active Directory. Imports
user information through IMS Enterprise 1.1 format. Easily extended
to support other authentication, password management, account
creation, and account import mechanisms. This includes improvements
to the basic cookie handling, so logins can be expired without the
user's identity being completely lost. You can set login to
expire after a certain period (e.g. 8 hours, then password must be
refreshed), or you can have all issues login cookies expired at
once, e.g. if you have left a permanent login cookie on a public
machine somewhere.

User interface enhancements. All pages, including site-wide and
subsite admin pages, will be templated, so they can be styled using
master template and site-wide stylesheets. We have a new
default-master template, which includes links to administration,
your workspace, and login/logout, and is rendered using CSS. And
there's a new community template
(/packages/acs-subsite/www/group-master), which provides useful
navigation to the applications and administrative UI in a subsite.
In addition, there's new, simpler UI for managing members of a
subsite, instantiating and mounting applications, setting
permissions, parameters, etc. Site-wide admin as also seen the
addition of a new simpler software install UI to replace the APM
for non-developer users, and improved access to parameters,
internationalization, automated testing, service contracts, etc.
The list builder has been added for easily generating templated
tables and lists, with features such as filtering, sorting, actions
on multiple rows with checkboxes, etc. Most of all, it's fast
to use, and results in consistently-looking, consistently-behaving,
templated tables.

Automated testing. The automated testing framework has been
improved significantly, and there are automated tests for a number
of packages.

Security enhancements. HTML quoting now happens in the
templating system, greatly minimizing the chance that users can
sneak malicious HTML into the pages of other users.

Oracle 9i support.

Who's online feature.

Spell checking.

Potential incompatibilities:

With the release of OpenACS 5, PostgreSQL 7.2 is no longer
supported. Upgrades are supported from OpenACS 4.6.3 under Oracle
or PostgreSQL 7.3.

The undocumented special handling of ~ and +variable+ in
formtemplates, found in packages/acs-templating/resources/*, has been
removed in favor of using <noparse> and \@variable\@ (the
standard templating mechanisms). Locally provided formtemplate
styles still using these mechanisms will break.

Serving backup files and files from the CVS directories is
turned off by default via the acs-kernel parameter ExcludedFiles in
section request-processor (The variable provides a string match
glob list of files and is defaulted to "*/CVS/* *~")