Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/contributing-code.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/cvs-resources.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.33.2.5 -r1.33.2.6 --- openacs-4/packages/acs-core-docs/www/index.html 1 Nov 2004 23:39:46 -0000 1.33.2.5 +++ openacs-4/packages/acs-core-docs/www/index.html 3 Nov 2004 16:37:48 -0000 1.33.2.6 @@ -1,3 +1,3 @@ -OpenACS Core Documentation

OpenACS Core Documentation


Table of Contents

I. OpenACS For Everyone
1. High level information: What is OpenACS?
Overview
OpenACS Release Notes
II. Administrator's Guide
2. Installation Overview
Basic Steps
Prerequisite Software
3. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 4
Install OpenACS 5.1.2
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading 4.5 or higher to 4.6.3
Upgrading OpenACS 4.6.3 to 5.0
Upgrading 5.0.0 to 5.0.x or 5.1.x
Upgrading the OpenACS files
Upgrading Platform components
6. Production Environments
Starting and Stopping an OpenACS instance.
AOLserver keepalive with inittab
Running multiple services on one machine
High Availability/High Performance Configurations
Staged Deployment for Production Networks
Installing SSL Support for an OpenACS service
Set up Log Analysis Reports
External uptime validation
Diagnosing Performance Problems
7. Database Management
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
Install PAM Radius for use as external authentication
Install LDAP for use as external authentication
Install AOLserver 3.3oacs1
C. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
III. For OpenACS Package Developers
9. Development Tutorial
Creating an Application Package
Setting Up Database Objects
Creating Web Pages
Debugging and Automated Testing
10. Advanced Topics
Write the Requirements and Design Specs
Add the new package to CVS
Adding Comments
Admin Pages
Categories
Profile your code
Prepare the package for distribution.
Notifications
Hierarchical data
Using .vuh files for pretty urls
Laying out a page with CSS instead of tables
Sending HTML email from your application
Basic Caching
Scheduled Procedures
Future Topics
11. Development Reference
OpenACS Packages
OpenACS Data Models and the Object System
The Request Processor
The OpenACS Database Access API
Using Templates in OpenACS
Groups, Context, Permissions
Writing OpenACS Application Pages
Parties in OpenACS
OpenACS Permissions Tediously Explained
Object Identity
Programming with AOLserver
Using HTML Forms
12. Engineering Standards
OpenACS Style Guide
+OpenACS Core Documentation

OpenACS Core Documentation


Table of Contents

I. OpenACS For Everyone
1. High level information: What is OpenACS?
Overview
OpenACS Release Notes
II. Administrator's Guide
2. Installation Overview
Basic Steps
Prerequisite Software
3. Complete Installation
Install a Unix-like system and supporting software
Install Oracle 8.1.7
Install PostgreSQL
Install AOLserver 4
Install OpenACS 5.1.2
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a new OpenACS Site
How Do I?
5. Upgrading
Overview
Upgrading 4.5 or higher to 4.6.3
Upgrading OpenACS 4.6.3 to 5.0
Upgrading 5.0.0 to 5.0.x or 5.1.x
Upgrading the OpenACS files
Upgrading Platform components
6. Production Environments
Starting and Stopping an OpenACS instance.
AOLserver keepalive with inittab
Running multiple services on one machine
High Availability/High Performance Configurations
Staged Deployment for Production Networks
Installing SSL Support for an OpenACS service
Set up Log Analysis Reports
External uptime validation
Diagnosing Performance Problems
7. Database Management
Running a PostgreSQL database on another server
Deleting a tablespace
Vacuum Postgres nightly
8. Backup and Recovery
Backup Strategy
Manual backup and recovery
Automated Backup
Using CVS for backup-recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
Install PHP for use in AOLserver
Install Squirrelmail for use as a webmail system for OpenACS
Install PAM Radius for use as external authentication
Install LDAP for use as external authentication
Install AOLserver 3.3oacs1
C. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
III. For OpenACS Package Developers
9. Development Tutorial
Creating an Application Package
Setting Up Database Objects
Creating Web Pages
Debugging and Automated Testing
10. Advanced Topics
Write the Requirements and Design Specs
Add the new package to CVS
Adding Comments
Admin Pages
Categories
Profile your code
Prepare the package for distribution.
Notifications
Hierarchical data
Using .vuh files for pretty urls
Laying out a page with CSS instead of tables
Sending HTML email from your application
Basic Caching
Scheduled Procedures
Future Topics
11. Development Reference
OpenACS Packages
OpenACS Data Models and the Object System
The Request Processor
The OpenACS Database Access API
Using Templates in OpenACS
Groups, Context, Permissions
Writing OpenACS Application Pages
Parties in OpenACS
OpenACS Permissions Tediously Explained
Object Identity
Programming with AOLserver
Using HTML Forms
12. Engineering Standards
OpenACS Style Guide
Release Version Numbering
Constraint naming standard
ACS File Naming and Formatting Standards
PL/SQL Standards
Variables
Automated Testing
13. CVS Guidelines -
Release Version Numbering
Constraint naming standard
ACS File Naming and Formatting Standards
PL/SQL Standards
Variables
Automated Testing
13. Documentation Standards
OpenACS Documentation Guide
Using PSGML mode in Emacs
Using nXML mode in Emacs
Detailed Design Documentation Template
System/Application Requirements Template
14. Internationalization
Internationalization and Localization Overview
How Internationalization/Localization works in OpenACS
How to Internationalize a Package
Design Notes
Translator's Guide
D. Using CVS with an OpenACS Site
IV. For OpenACS Platform Developers
15. Kernel Documentation
Overview
Object Model Requirements
Object Model Design
Permissions Requirements
Permissions Design
Groups Requirements
Groups Design
Subsites Requirements
Subsites Design Document
Package Manager Requirements
Package Manager Design
Database Access API
OpenACS Internationalization Requirements
Security Requirements
Security Design
Security Notes
Request Processor Requirements
Request Processor Design
Documenting Tcl Files: Page Contracts and Libraries
Bootstrapping OpenACS
External Authentication Requirements
16. Releasing OpenACS
OpenACS Core and .LRN
How to Update the OpenACS.org repository
How to package and release an OpenACS Package
How to Update the translations
Index

List of Figures

4.1. Site Templates
4.2. Granting Permissions
4.3. Granting Permissions in 5.0
5.1. Upgrading with the APM
5.2. Upgrading a local CVS repository
6.1. Multiple-server configuration
6.2. Simple A/B Deployment - Step 1
6.3. Simple A/B Deployment - Step 2
6.4. Simple A/B Deployment - Step 3
6.5. Complex A/B Deployment - Step 1
6.6. Complex A/B Deployment - Step 2
6.7. Complex A/B Deployment - Step 3
6.8. Query Analysis example
8.1. Backup and Recovery Strategy
9.1. Assumptions in this section
9.2. Tutorial Data Model
9.3. The Database Creation Script
9.4. Database Deletion Script
9.5. Page Map
10.1. Upgrading a local CVS repository
11.1. Server file layout diagram
11.2. Package file layout diagram

List of Tables

2.1. Default directories for a standard install
2.2. Version Compatibility Matrix
5.1. Assumptions in this section
6.1. How it Works
11.1. Package files
11.2. Context Hierarchy Example
11.3. acs_objects example data
14.1. Internationalization and Localization Overview

List of Examples

12.1. Getting datetime from the database ANSI-style
View comments on this page at openacs.org
+
Using CVS with OpenACS
OpenACS CVS Concepts
Contributing code back to OpenACS
Additional Resources for CVS
14. Documentation Standards
OpenACS Documentation Guide
Using PSGML mode in Emacs
Using nXML mode in Emacs
Detailed Design Documentation Template
System/Application Requirements Template
15. Internationalization
Internationalization and Localization Overview
How Internationalization/Localization works in OpenACS
How to Internationalize a Package
Design Notes
Translator's Guide
D. Using CVS with an OpenACS Site
IV. For OpenACS Platform Developers
16. Kernel Documentation
Overview
Object Model Requirements
Object Model Design
Permissions Requirements
Permissions Design
Groups Requirements
Groups Design
Subsites Requirements
Subsites Design Document
Package Manager Requirements
Package Manager Design
Database Access API
OpenACS Internationalization Requirements
Security Requirements
Security Design
Security Notes
Request Processor Requirements
Request Processor Design
Documenting Tcl Files: Page Contracts and Libraries
Bootstrapping OpenACS
External Authentication Requirements
17. Releasing OpenACS
OpenACS Core and .LRN
How to Update the OpenACS.org repository
How to package and release an OpenACS Package
How to Update the translations
Index

List of Figures

4.1. Site Templates
4.2. Granting Permissions
4.3. Granting Permissions in 5.0
5.1. Upgrading with the APM
5.2. Upgrading a local CVS repository
6.1. Multiple-server configuration
6.2. Simple A/B Deployment - Step 1
6.3. Simple A/B Deployment - Step 2
6.4. Simple A/B Deployment - Step 3
6.5. Complex A/B Deployment - Step 1
6.6. Complex A/B Deployment - Step 2
6.7. Complex A/B Deployment - Step 3
6.8. Query Analysis example
8.1. Backup and Recovery Strategy
9.1. Assumptions in this section
9.2. Tutorial Data Model
9.3. The Database Creation Script
9.4. Database Deletion Script
9.5. Page Map
10.1. Upgrading a local CVS repository
11.1. Server file layout diagram
11.2. Package file layout diagram

List of Tables

2.1. Default directories for a standard install
2.2. Version Compatibility Matrix
5.1. Assumptions in this section
6.1. How it Works
11.1. Package files
11.2. Context Hierarchy Example
11.3. acs_objects example data
15.1. Internationalization and Localization Overview

List of Examples

12.1. Getting datetime from the database ANSI-style
View comments on this page at openacs.org
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/openacs-cvs-concepts.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.1 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/using-cvs-with-openacs.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/xml/index.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/index.xml,v diff -u -r1.28.2.2 -r1.28.2.3 --- openacs-4/packages/acs-core-docs/www/xml/index.xml 1 Nov 2004 23:40:29 -0000 1.28.2.2 +++ openacs-4/packages/acs-core-docs/www/xml/index.xml 3 Nov 2004 16:37:49 -0000 1.28.2.3 @@ -253,9 +253,6 @@ Section missing - - Section missing - Section missing @@ -276,6 +273,10 @@ + + Section missing + + Documentation Standards Index: openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml 1 Nov 2004 23:40:31 -0000 1.1.2.1 +++ openacs-4/packages/acs-core-docs/www/xml/engineering-standards/cvs.xml 3 Nov 2004 16:37:48 -0000 1.1.2.2 @@ -1,10 +1,10 @@ - %myvars; ]> - + CVS Guidelines @@ -13,123 +13,9 @@ By Joel Aufrecht with input from Jeff Davis, Branimir Dolicki, and Jade Rubick. - - - OpenACS CVS Concepts - - Modules - - All OpenACS code resides within a single CVS module, openacs-4. (The openacs-4 directory contains code for all versions of OpenACS 4 and later, and .LRN 1 and later.) Checking out this module retrieves all openacs code of any type. For convenience, subsets of openacs-4 are repackaged as smaller modules. - - - acs-core contains only critical common - packages. It does not have any user applications, such as forums, - bug-tracker, calendar, or ecommerce. These can be added at - any time. - - The complete list of core packages is: -acs-admin -acs-api-browser -acs-authentication -acs-automated-testing -acs-bootstrap-installer -acs-content-repository -acs-core-docs -acs-kernel -acs-lang -acs-mail -acs-messaging -acs-reference -acs-service-contract -acs-subsite -acs-tcl -acs-templating -ref-timezones search - - - dotlrn-all contains the packages required, in combination with acs-core, to run the .LRN system. - - - - project-manager-all contains the packages required, in combination with acs-core, to run the project-manager package. - - - - Each OpenACS package (i.e., directory in openacs-4/packages/) is also aliased as a module of the same name. - - - - - - - Tags and Branches - - - Tags and Branches look similar in commands, but behave differently. A tag is a fixed point on a branch. Check out - a tag to get a specific version of OpenACS. Check out a branch to - get the most current code for that major-minor version (e.g., 5.0.x - or 5.1.x). You can only commit to a branch, not a tag, so check out - a branch if you will be working on the code. - - - openacs-x-y-z-final - tags mark final releases of OpenACS. This tag is applied to the acs-core files for an OpenACS core release, and to the latest released versions of all other packages at the time of release. Example: openacs-5-0-4-final. - - - - dotlrn-x-y-z-final - tags mark final releases of .LRN. These tags apply only to .LRN packages. Example: dotlrn-2-0-1-final - - - - packagename-x-y-z-final - tags apply to releases of individual packages. For example, calendar-2-0-0-final is a tag that will retrieve only the files in the calendar 2.0.0 release. It applies only to the - calendar package. All non-core, non-dotlrn packages should have a - tag of this style, based on the package name. Many packages have - not been re-released since the new naming convention was adopted - and so don't have a tag of this type. - - - - - openacs-x-y-compat tags point to the most recent released version of OpenACS X.Y. - It is similar to openacs-x-y-z-compat, except that it will - always get the most recent dot-release of Core and the - most recent compatible, released version of all other - packages. All of the other tag styles should be static, - but -compat tags may change over time. If you want version - 5.0.4 exactly, use the openacs-5-0-4-final tag. If you want the best newest released code in the 5.0.x release series and you want to upgrade within 5.0.x later, use the compat tag. - - - For example, if you check out the entire tree with -r - openacs-5-0-compat, you might get version 5.0.4 of each OpenACS - core package, version 2.0.1 of calendar, version 2.0.3 of each .LRN - package, etc. If you update the checkout two months later, you - might get version 5.0.5 of all OpenACS core packages and version - 2.1 of calendar. - - - - oacs-x-y is a branch, , not a tag. All core packages in the 5.0 release series (5.0.0, 5.0.1, 5.0.2, etc) are also on the oacs-5-0 branch. Similarly, OpenACS core packages for 5.1.0 are on the oacs-5-1 branch. - These branches are used for two purposes. OpenACS - Core packages on these branches are being tidied up for - release. Only bug fixes, not new features, should be - added to core packages on release branches. For all other - packages, release branches are the recommended location - for development. For example, if you are working on - calendar, which is compatible with openacs 5.0 but not - 5.1, work on the oacs-5-0 branch. - - - HEAD is a branch used - for development of core packages. - - - - - + Using CVS with OpenACS - + Getting Started All OpenACS code is available anonymously. To get code @@ -207,9 +93,9 @@ into your ~/.ssh/config file, then you can use -d :ext:cvs-server:/cvsroot instead of -d :ext:openacs.org:/cvsroot. You can then change the definition of cvs-server by changing one file instead of editing hundreds of CVSROOT/Repository files. - + - + Checkout for Package Development If you are actively developing a non-core package, you should work from the latest core release branch. Currently this @@ -235,9 +121,9 @@ for a list of available packages and their current state. - + - + Checkout for Core Development If you are actively developing packages in the OpenACS Core, work from the HEAD branch. HEAD is used for active @@ -251,9 +137,9 @@ cvs -d:ext:openacs.org:/cvsroot checkout acs-core To check out HEAD anonymously: cvs -d:pserver:anonymous@openacs.org:/cvsroot checkout acs-core - + - + Checkout .LRN .LRN consists of a given version openacs core, plus a set of @@ -269,17 +155,132 @@ cd dotlrn/packages cvs -d :pserver:anonymous@openacs.org:/cvsroot checkout -r &releasebranch; dotlrn-all mv dotlrn/install.xml .. - - - + + Working with CVS Once you have a checkout you can use some commands to track what has changed since you checked out your copy. cvs -n update does not change any files, but reports which changes have been updated or locally modified, or are not present in CVS. To update your files, use cvs update. This will merge changes from the repository with your local files. It has no effect on the openacs.org repository. - - + + + + + OpenACS CVS Concepts + + Modules + + All OpenACS code resides within a single CVS module, openacs-4. (The openacs-4 directory contains code for all versions of OpenACS 4 and later, and .LRN 1 and later.) Checking out this module retrieves all openacs code of any type. For convenience, subsets of openacs-4 are repackaged as smaller modules. + + + acs-core contains only critical common + packages. It does not have any user applications, such as forums, + bug-tracker, calendar, or ecommerce. These can be added at + any time. + + The complete list of core packages is: +acs-admin +acs-api-browser +acs-authentication +acs-automated-testing +acs-bootstrap-installer +acs-content-repository +acs-core-docs +acs-kernel +acs-lang +acs-mail +acs-messaging +acs-reference +acs-service-contract +acs-subsite +acs-tcl +acs-templating +ref-timezones search + + + dotlrn-all contains the packages required, in combination with acs-core, to run the .LRN system. + + + + project-manager-all contains the packages required, in combination with acs-core, to run the project-manager package. + + + + Each OpenACS package (i.e., directory in openacs-4/packages/) is also aliased as a module of the same name. + + + + + + + Tags and Branches + + + Tags and Branches look similar in commands, but behave differently. A tag is a fixed point on a branch. Check out + a tag to get a specific version of OpenACS. Check out a branch to + get the most current code for that major-minor version (e.g., 5.0.x + or 5.1.x). You can only commit to a branch, not a tag, so check out + a branch if you will be working on the code. + + + openacs-x-y-z-final + tags mark final releases of OpenACS. This tag is applied to the acs-core files for an OpenACS core release, and to the latest released versions of all other packages at the time of release. Example: openacs-5-0-4-final. + + + + dotlrn-x-y-z-final + tags mark final releases of .LRN. These tags apply only to .LRN packages. Example: dotlrn-2-0-1-final + + + + packagename-x-y-z-final + tags apply to releases of individual packages. For example, calendar-2-0-0-final is a tag that will retrieve only the files in the calendar 2.0.0 release. It applies only to the + calendar package. All non-core, non-dotlrn packages should have a + tag of this style, based on the package name. Many packages have + not been re-released since the new naming convention was adopted + and so don't have a tag of this type. + + + + + openacs-x-y-compat tags point to the most recent released version of OpenACS X.Y. + It is similar to openacs-x-y-z-compat, except that it will + always get the most recent dot-release of Core and the + most recent compatible, released version of all other + packages. All of the other tag styles should be static, + but -compat tags may change over time. If you want version + 5.0.4 exactly, use the openacs-5-0-4-final tag. If you want the best newest released code in the 5.0.x release series and you want to upgrade within 5.0.x later, use the compat tag. + + + For example, if you check out the entire tree with -r + openacs-5-0-compat, you might get version 5.0.4 of each OpenACS + core package, version 2.0.1 of calendar, version 2.0.3 of each .LRN + package, etc. If you update the checkout two months later, you + might get version 5.0.5 of all OpenACS core packages and version + 2.1 of calendar. + + + + oacs-x-y is a branch, , not a tag. All core packages in the 5.0 release series (5.0.0, 5.0.1, 5.0.2, etc) are also on the oacs-5-0 branch. Similarly, OpenACS core packages for 5.1.0 are on the oacs-5-1 branch. + These branches are used for two purposes. OpenACS + Core packages on these branches are being tidied up for + release. Only bug fixes, not new features, should be + added to core packages on release branches. For all other + packages, release branches are the recommended location + for development. For example, if you are working on + calendar, which is compatible with openacs 5.0 but not + 5.1, work on the oacs-5-0 branch. + + + HEAD is a branch used + for development of core packages. + + + + + + Contributing code back to OpenACS There are three main ways to contribute code to OpenACS: @@ -346,12 +347,15 @@ done cvs commit: Rebuilding administrative file database + + See + - + Rules for Committing Code to the OpenACS.org repository @@ -576,7 +580,7 @@ - + Reasons @@ -619,9 +623,9 @@ needed, and provides a common ancestor between the fork and the OpenACS code so that patches can be generated. - - - + + + Informal Guidelines @@ -739,13 +743,14 @@ - - - Additional Resources - - - - The + + + + Additional Resources for CVS + + + + The OpenACS cvs web and @@ -772,13 +777,43 @@ - - - + + + + cvs manual + + + + + adding files/dirs with cvs + + + + + file locking etc. with cvs + + + + + Piskorski's cvs refs + + + + + backup with cvs + + + + + merging 2 file heirarchies with cvs + + + + ($Id$) - +