Prev | Chapter 14. CVS Guidelines | Next

## 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.

Prev | Home | Next
Using CVS with OpenACS | Up | Contributing code back to OpenACS

View comments on this page at openacs.org