Forum OpenACS Development: OpenACS 5.9 and ]project-open[

Posted by Frank Bergmann on

We (the ]po[ core team) are preparing the release of ]project-open[ V5.0 for the next few months. In this release we would like to move to OpenACS 5.8 or 5.9 for PG 9.x compatibility. There are several issues and points at the moment.

- Including ]project-open[ as an "OpenACS Installable Package":
Gustaf asked us some month ago if that's feasible. I like the idea, and we've already worked through half the upgrade scripts of ]po[ "core" and integrated them into the <package>-create.sql scripts. My question now: Would the OpenACS core team want to include the ]po[ packages in the installable package list? How does this work in practical terms? Can you provide use with access to some place where we can upload the packages? We've got nearly 150 packages, maybe there is a bulk upload option?

- Patches to OpenACS:
We had to perform some 3-5 (don't remember exactly anymore) minor patches to OpenACS in the past because of errors. Including ]po[ as an "OpenACS Installable Package" won't work if we don't find a solution for this. Is there still a chance to get these changes in OpenACS 5.9? Or in the next updated version? The problem is that we'd need to test with OpenACS 5.9 to check if these issues persist.

- Upgrading from OpenACS 5.7 to 5.9:
We're trying at the moment, but there seem to be errors. I can't judge whether they are important or not. Did you test the upgrade from 5.7 already?

- AMS required iin OpenACS 5.9?
/packages/acs-content-repository/sql/postgresql/upgrade/upgrade-5.9.0d3-5.9.0d4.sql says that some function needs ams_object_revisions. I guess there is a missing dependency. But is AMS really a precondition for the CR?

If we don't get this sorted out we'll probably have to release the current release state as ]po[ 4.1 still with PG 8.4 and OpenACs 5.7...

Concerning the main functionality in ]po[ V5.0: We'll include a "Gantt Editor" similar to Microsoft Project etc. written in Sencha ExtJS (HTML5 JavaScript) and a few other Sencha functionality. Checkout -> Ben Bigboss -> "Special Machine (2012-16-03)" for example.


Posted by Frank Bergmann on
Error installing ITU Code:

Loading data model /web/projop/packages/ref-itu/sql/postgresql/ref-itu-create.sql...
Failed to install Reference Data - ITU Code, version 0.1d. The following error was generated:
psql:../common/ref-itu-data.sql:316: ERROR: missing FROM-clause entry for table "acs_object_id_seq"
LINE 1: insert into itu_codes values (acs_object_id_seq.nextval,'0',...

Posted by Frank Bergmann on
That's a cyclic dependency - I can't update CR with out AMS, but I can't install AMS without an updated core, is that correct?
Posted by Frank Bergmann on

I'm going to add other issues found during ]po[ / OpenACS 5.9 integration in this thread, I hope this is OK. I'm not sure if these issues are bugs, extensions or "training issues" (things I didn't get...).

There are a number of variables ($prev_url, $user_id, $error_file, $error_url) that don't seem to be available in our installation. Maybe I just don't get the new mechanism.

However, in ]po[ we use our own custom page-error page which includes a "Report this error" functionality that posts a bug including stack-trace and package versions directly into our "intranet-helpdesk" ticket tracker.

=> Would it be possible to add a parameter to OpenACS that defines the page-error location, so that we can have our own page and don't need to customize OpenACS?

Here is the error message:

can't read "prev_url": no such variable
while executing
"set return_url $prev_url"
("uplevel" body line 19)
invoked from within
"uplevel {
# /packages/acs-tcl/lib/page-error.tcl

ERROR: column "title" specified more than once:

projop=# create or replace view cc_users as
projop-# select o.*, pa.*, pe.*, u.*, mr.member_state, mr.rel_id
projop-# from acs_objects o, parties pa, persons pe, users u, group_member_map m, membership_rels mr
projop-# where o.object_id = pa.party_id
projop-# and pa.party_id = pe.person_id
projop-# and pe.person_id = u.user_id
projop-# and u.user_id = m.member_id
projop-# and m.group_id = acs__magic_object_id('registered_users')
projop-# and m.rel_id = mr.rel_id
projop-# and m.container_id = m.group_id
projop-# and m.rel_type = 'membership_rel';
ERROR: column "title" specified more than once

The ]po[ REST API uses PUT and DELETE (mor or less...) according to the specs. However, request-processor-procs prohibits registering these procs.

=> Please add PUT and DELETE to the list of accepted HTTP verbs.

i guess, you mean the check in ad_register_proc? this is something, that can go into oacs-5-9.
Posted by Gustaf Neumann on
- patches to OpenACS are always welcome, although for 5.9.0 it is quite late. but there will be a 5.9.1 anyway.
- The best way to upgrade from 5.7.0 to 5.9.0 should go via 5.8.0, applying [1] and [2].
- AMS is not required by OpenACS 5.9.*. When the mentioned upgrade script, or actually content_type__refresh_view() is failing, this means that the acs-object hierarchy is broken. There was a similar case with etp [3], maybe one needs a similar fix for ams. The right way to upgrade with etp is to upgrade to the recent version of etp in oacs-5-8, then the 5-9 upgrade will work.
- ITU Code: the error says that the postgres sql-commands are not compatible with the pg 9 version. Do you need this package, or do you have just laying it around for historical reasons?
- ams and itu-ref do not belong to the 90 packages i am trying to maintain.
- concerning page-error.tcl: this include file is called from the request-processor passing the context variables in. Do you use a modified request-processor? Or are you calling the include from different places? Then please provide the appropriate context as shown in the request-processor procs. This include file is actually a good example, where a include-contract (new feature in oacs-5-9) should be used to make the variable expectations of the include-file clear.

hope this adresses most issues.


Posted by Frank Bergmann on

- Patches: Ok, we're on the oacs-5-9 branch anyway, so I understand that we'll get your PUT and DELETE patches in ad_register_proc?

- ITU Code: I needed to install this package as a dependency. I don't remember exactly which package, I believe AMS... Glad to remove the package 😊

- page-error.tcl: The variables in page-error are one subject, we can deal with this. However, we need a customized version of page-error in order to deal with our ]po[ error reporting system. => Could you create a parameter similar to LoginTemplate, so that we can use a different page-error.tcl without having to customize OpenACS?

Btw., I've got ]po[ now running with OpenACS 5.9. We're going to do some testing and probably come up with some more issues.


10: Dropping AMS (response to 1)
Posted by Frank Bergmann on

These are a few lines that I had to add manually in order to remove rests of a previous ams installation. I understand they don't correspond to the current ams-create.sql script, but maybe the upgrade scripts weren't that perfect in the past...

drop view ams_list_attribute_map;
drop view ams_lists;
drop sequence ams_list_attribute_sort_order_seq;
drop sequence ams_option_map_id_seq;
drop sequence ams_options_seq;


Posted by Frank Bergmann on
There is a wrong variable in ds_link:
can't read "ds_urlrequest": no such variable
Posted by Frank Bergmann on

]po[ uses a number of additional templates for forms and lists in specific contexts, so there is little alternative to using special templates in acs-templating.

In order to avoid customizing here we'd need to be able to set a different directory for templating resources. Any idea on how to do this?


Concerning page-error.tcl and templating: With OpenACS 5.9, everything included via <include> can be customized in the theme package (configurable via /admin/configure) without extra parameters. On we have e.g.


The ResourceDir is set via the theme package, and can be checked/temporarily altered in the parameters of the subsite.

Hi Gustaf,

just wanted to have a glance on the openacs-bootstrap3-theme.
Is it possible that it hasn't been made available yet in CVS?

> cvs server: cannot find module `openacs-bootstrap3-theme' - ignored

Thanks for looking into this.


Dear Klaus,

we have not released the theme yet. It needs some cleanup to be useful for everybody. In particular, it has to be demangled from some relicts from ancient times on the site, like e.g. etp, It is just a matter of time and priorities until it has a state to be released to the public.


Thanks Gustaf - let me know if I can be of any help in this process.