Index: openacs-4/packages/acs-core-docs/www/cvs-guidelines.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-guidelines.adp,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/acs-core-docs/www/cvs-guidelines.adp 25 Apr 2018 08:38:27 -0000 1.5
+++ openacs-4/packages/acs-core-docs/www/cvs-guidelines.adp 3 Sep 2024 15:37:31 -0000 1.6
@@ -1,23 +1,29 @@
- ($Id: cvs.xml,v
-1.8 2018/03/27 11:18:00 hectorr Exp $) By Joel Aufrecht with input from Jeff Davis, Branimir Dolicki,
+ CVS Guidelines All OpenACS code is available anonymously. To get code
anonymously, use the parameter If you are an OpenACS developer, you should check out code so
@@ -42,8 +48,8 @@
cvs command. To avoid this, set up ssh certificate authentication
for your OpenACS account. (More information) You may want to set some more default actions for CVS usage. To
do so, create the file
+with the contents:
Administrator Note: These are the steps to grant CVS commit
rights to a user: Create the user's account. On cvs.openacs.org: Create the user's account. On cvs.openacs.org: Grant cvs access to the user account. On any machine, in a
-temporary directory: Add an avail line of the form: Add an avail line of the form: If you are actively developing a non-core package, you should
work from the latest core release branch. Currently this is
oacs-5-9. This ensures that you are working on top of a stable
OpenACS core, but still allows you to commit feature changes to
-non-core packages. To check out all packages, If you work in the directories created with this command, all of
+non-core packages. To check out all packages, If you work in the directories created with this command, all of
your cvs updates and commits will be confined to the oacs-5-9
branch. Your work will be merged back to HEAD for you with each
release. Because the entire openacs-4 directory is large, you may want to
use only acs-core plus some specific modules. To do this, check out
-core first: Then add modules as needed: ... where Then add modules as needed: ... where packagename is the name of the package
+you want. Visit the Package Inventory
+and Package maintainers and status for a list of available
packages and their current state. If you are actively developing packages in the OpenACS Core,
work from the HEAD branch. HEAD is used for active development of
the next version of core OpenACS. It may be very buggy; it may not
even install correctly. Do not use this branch for development of
non-core features unless your work depends on some of the HEAD core
work. To check out HEAD, omit the To check out HEAD for development, which requires an OpenACS
-developer account: To check out HEAD anonymously:-d:pserver:anonymous\@cvs.openacs.org:/cvsroot
immediately after cvs
in a cvs
command to check out or export code.~/.cvsrc
-with the contents:cvs -z6
-cvs -q
cvs -z6
+cvs -q
-z6
speeds up cvs access
over the network quite a bit by enabling compressed connection by
default. -q
suppresses some
@@ -52,22 +58,21 @@
sudo bash
-/usr/sbin/useradd -c "
+Real Name
" -G cvs -p passwd
username
-/usr/sbin/usermod -G cvs,username
username
-sudo bash
+adduser --add_extra_groups cvs --gecos "Real Name" --shell /bin/bash username
+
cvs -d :ext:cvs.openacs.org:/cvsroot co CVSROOT
+temporary directory:
cvs -d :ext:cvs.openacs.org:/cvsroot co CVSROOT
cd CVSROOT
-emacs avail
avail|
username
|openacs-4cvs commit -m "added commit on X for username" avail
+emacs availavail|username|openacs-4
cvs commit -m "added commit on X for username" avail
cvs -d :ext:cvs.openacs.org:/cvsroot co -r oacs-5-9 openacs-4
cvs -d :ext:cvs.openacs.org:/cvsroot co -r oacs-5-9 openacs-4
cvs -d:ext:cvs.openacs.org:/cvsroot -r oacs-5-9 checkout acs-core
cd /var/lib/aolserver/
service0
/packages
-cvs up -d packagename
-packagename
-is the name of the package you want. Visit the Package
-Inventory and Package maintainers and status for a list of available
+core first:cvs -d:ext:cvs.openacs.org:/cvsroot -r oacs-5-9 checkout acs-core
cd /var/lib/aolserver/service0/packages
+cvs up -d packagename
+
-r
tag.cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core
cvs -d:pserver:anonymous\@cvs.openacs.org:/cvsroot checkout acs-core
+developer account:
cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core
To check out HEAD anonymously:
cvs -d:pserver:anonymous\@cvs.openacs.org:/cvsroot checkout acs-core
.LRN consists of a given version OpenACS core, plus a set of
packages. These are collectively packages together to form a
distribution of .LRN. F .LRN 2.0.0 sits on top of OpenACS 5.0.0.
.LRN also uses an OpenACS install.xml file during installation;
this file is distributed within the dotlrn package and must be
moved. To get a development checkout of .LRN in the subdirectory
-dotlrn
:
cvs -d :pserver:anonymous\@cvs.openacs.org:/cvsroot checkout -r oacs-5-9 acs-core
+dotlrn
:cvs -d :pserver:anonymous\@cvs.openacs.org:/cvsroot checkout -r oacs-5-9 acs-core
mv openacs-4 dotlrn
cd dotlrn/packages
cvs -d :pserver:anonymous\@cvs.openacs.org:/cvsroot checkout -r oacs-5-9 dotlrn-all
-mv dotlrn/install.xml ..
+mv dotlrn/install.xml ..
Once you have a checkout you can use some commands to track what @@ -127,7 +135,7 @@
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
@@ -162,49 +170,55 @@
module of the same name.
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-
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: x
-y
-z
-finalopenacs-5-0-4-final
.
-dotlrn-
tags mark final
-releases of .LRN. These tags apply only to .LRN packages. Example:
-x
-y
-z
-finaldotlrn-2-0-1-final
+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
-
tags apply to
-releases of individual packages. For example, packagename
-x
-y
-z
-finalcalendar-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.
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-
tags point to the
-most recent released version of OpenACS x
-y
-compatX
.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-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 +
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 @@ -229,7 +243,7 @@ your system. This takes the place of steps 1 and 2 in the section called “Installation Option 2: Install from tarball”. Continue setting up the site as described there.
Fix bugs and add features.
Commit that file (or files):
cvs commit -m "what I did and why" filename
Because this occurs in your personal checkout and not an +
Commit that file (or files):
cvs commit -m "what I did and why" filename
Because this occurs in your personal checkout and not an anonymous one, this commit automagically moves back upstream to the Mother Ship repository at cvs.openacs.org. The names of the changed files, and your comments, are sent to a mailing list for OpenACS @@ -243,18 +257,18 @@ approval and to get a module alias created.
Check out acs-core on the HEAD branch. (Weird things happen if -you add files to a branch but not to HEAD):
cd /tmp
-cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core
Copy your package directory from your working directory to this -directory. Make sure not to copy any CVS directories.
cp -r /var/lib/aolserver/service0
/packages/newpackage
/tmp/openacs-4/packages
Import the package into the cvs.openacs.org cvs repository:
cd /tmp/openacs-4/packages/newpackage
-cvs import -m "Initial import of newpackage
" openacs-4/packages/newpackage myname
newpackage-0-1d
-
+you add files to a branch but not to HEAD):cd /tmp
+cvs -d:ext:cvs.openacs.org:/cvsroot checkout acs-core
Copy your package directory from your working directory to this +directory. Make sure not to copy any CVS directories.
cp -r /var/lib/aolserver/service0/packages/newpackage /tmp/openacs-4/packages
Import the package into the cvs.openacs.org cvs repository:
cd /tmp/openacs-4/packages/newpackage
+cvs import -m "Initial import of newpackage" openacs-4/packages/newpackage mynamenewpackage-0-1d
+
Add the new package to the modules file. (An administrator has -to do this step.) On any machine, in a temporary directory:
cvs -d :ext:cvs.openacs.org:/cvsroot co CVSROOT
+to do this step.) On any machine, in a temporary directory:cvs -d :ext:cvs.openacs.org:/cvsroot co CVSROOT
cd CVSROOT
-emacs modules
Add a line of the form:
-photo-album-portlet
openacs-4/packages/photo-album-portlet
-
Commit the change:
cvs commit -m "added alias for package newpackage
" modules
This should print something like:
cvs commit: Examining .
+emacs modules
Add a line of the form:
+photo-album-portlet openacs-4/packages/photo-album-portlet
+
Commit the change:
cvs commit -m "added alias for package newpackage" modules
This should print something like:
cvs commit: Examining .
**** Access allowed: Personal Karma exceeds Environmental Karma.
Checking in modules;
@@ -267,8 +281,8 @@
Although you should add your package on HEAD, you should do
package development on the latest release branch that your code is
compatible with. So, after completing the import, you may want to
-branch your package:
cd /var/lib/aolserver/service0
/packages/newpackage
-cvs tag -b oacs-5-1
+branch your package:cd /var/lib/aolserver/service0/packages/newpackage
+cvs tag -b oacs-5-1
See the section called
“How to package and release an OpenACS Package”
@@ -280,8 +294,7 @@
un-necessary. If you are working on a contrib
package, you should move it to
/packages
. This must be done by
an OpenACS administrator. On cvs.openacs.org:
-
-cp -r /cvsroot/openacs-4/contrib/packages/package0
/cvsroot/openacs-4/packages
Update the modules file as described above.
Remove the directory from cvs in the old location using
+
cp -r /cvsroot/openacs-4/contrib/packages/package0 /cvsroot/openacs-4/packages
Update the modules file as described above.
Remove the directory from cvs in the old location using
cvs rm
. One approach
for file in `find | grep -v CVS`; do
rm $file; cvs remove $file; done
@@ -301,7 +314,7 @@
HEAD, not to release branches.
For core packages, bug fixes should be committed on the current
release branch whenever applicable.
-
For non-core packages, developers should work on a checkout of
-the release branch of the lastest release. For example, if OpenACS
+the release branch of the latest release. For example, if OpenACS
5.1.0 is released, developers should work on the oacs-5-1 branch.
When oacs-5-2 is branched, developers should continue working on
oacs-5-1 until OpenACS 5.2.0 is actually released.
Reason: First, this ensures that
@@ -345,7 +358,7 @@
-
When to TIP
-
-
A TIP is a Techical Improvement Proposal ( more information ). A proposed change must be
+
A TIP is a Technical Improvement Proposal ( more information ). A proposed change must be
approved by TIP if:
It changes the core data model, or
It will change the behavior of any core package in a way that
affects existing code (typically, by changing public API), or
It is a non-backwards-compatible change to any core or standard
@@ -398,7 +411,8 @@
Informal guidelines which may be obsolete in places and should
be reviewed:
Before committing to cvs you must submit a bug report and patch
to the OpenACS bug
@@ -410,7 +424,7 @@
Also, such changes should have a discussion in the forums to allow
for feedback from the whole community.
If you are changing the data model you *must* provide an upgrade
script and bump up the version number of the package.
Consider any upgradability ramifications of your change. Avoid
-changing the contract and behaviour of Tcl procedures. If you want
+changing the contract and behavior of Tcl procedures. If you want
to build a new and clean API consider deprecating the old proc and
making it invoke the new one.
Never rush to commit something. Before committing double check
with cvs diff what exactly you are committing.
Always accompany a commit with a brief but informative comment.