|
XOOPS Module Development CVS Instructions
CVS is the Concurrent Versions System, the dominant open-source network-transparent version control system. The XOOPS project uses CVS servers provided by SourceForge, and the Module development team uses an area within the overall XOOPS CVS repository. In order to use CVS correctly you must follow the XOOPS project specific instructions here, in addition to the more general SourceForge instructions.
Getting Started
There are a few things you need to get started
A SourceForge account An account here, in the XOOPS development site Authorization to use CVS A CVS client
SourceForge Account
Go to the SourceForge User Registration Page if you don't already have a SourceForge account.
XOOPS Development Site Account
Get an account on this site with the Register for the Module Development Forge form.
Create a project
If you want to start a new project, fill out the Start a New Project form to create a new project.
Authorization to use CVS
Fill in the Apply for Project CVS services form+. When you application is processed, your SourceForge account will be granted access to commit to your project. This includes adding your SourceForge account to the XOOPS project and giving you "karma" to commit to your project within the XOOPS repository.
+ This form requires that you be logged in to view it.
CVS Client
You can use the command-line CVS or any number of GUI front-ends. We recommend TortoiseCVS as a fast, simple, well supported tool. WinCVS is a more powerful client with macro capabilities (and I believe similarly well supported). The instructions below assume you're using TortoiseCVS as the client.
Using CVS with XOOPS Module Developement
Instruction for using CVS with XOOPS Module projects are included below:
- XOOPS Module layout
- Settings to access SourceForge CVS Servers
- Checking out an existing module
- Checking out an empty existing module
- Adding a new module
XOOPS Module layout
The XOOPS project has the following top level modules:
documents
- XOOPS documentation
modules
- All the xoops modules are kept within this CVS module.
Important: All module names are lower case. All XOOPS modules are to be set up within the this modules directory. Any misplaced files will be removed (we will try to warn you first).
x2-languages
- XOOPS 2.x translations.
xoops1
- XOOPS 1.x files
xoops2
- XOOPS 2.x files
Module settings to access SourceForge CVS Servers
SourceForge CVS servers require SSH to be used for developer access. TortoiseCVS will prompt you for this connection information when you perform an operation that requires it. Use the following values when prompted:
| CVSROOT | {Automatically calculated from the following values} |
| Protocol | Secure Shell (:ext:) |
| Server | xoops.cvs.sourceforge.net |
| Repository folder | /cvsroot/xoops |
| User name | {Your SourceForge username} |
Module
modules/your_module_name
You can also use the command line CVSNT client (it is bundled with TortoiseCVS, or available as a seperate download) and use it's built-in putty client so it can use SSH directly:
| CVSROOT | :ssh:username@xoops.cvs.sourceforge.net:/cvsroot/xoops or :ext:username@xoops.cvs.sourceforge.net:/cvsroot/xoops |
Checking out an existing module
Within a directory on your local filesystem, right-click and choose CVS Checkout... Fill in the Checkout Module as described above.
Variation: Checking out an empty existing module
By default, TortoiseCVS prunes empty directories after the checkout. If a module is empty, they it'll be deleted immediately after it is checked out. Go to CVS > Preferences > Policy and uncheck the "Prune empty folders" checkbox.
Variation: Checking out on a branch
On the Revision tab, click "Choose branch or tag", click Update list and select the tag from the list.
Variation: Checking out XOOPS core or other modules
You can use these same settings to check out any number of modules or the XOOPS core files, but you will only be able to commit to the modules you have specifically been granted. Change the Module setting to xoops2 for the core or modules to checkout all the modules.
Adding a new module
Normally when you request a new project, the module will already be created for you. In that case, see "Variation: Checking out an empty existing module" above. In the case when you need to create the module yourself, follow these steps
- Right-click the directory containing your module
- Fill in the Module information as above
- Important: Change the Module name from the directory name to modules/your_module_folder
Using public key authentication
With normal password authentication, you have to enter your SourceForge password with every CVS operation. However, if you use public key authentication you can avoid that.
- First, read the SourceForge cautions and instructions when using public keys.
- Next, follow the clear instructions on the TortoiseCVS website. Be sure to use an SSH version 2 key it is more secure than version 1 (it has been compromised).
- For command line client (assuming you are using an SSH version 2 key)
- Set the CVSROOT :ssh;ver=2:username@xoops.cvs.sourceforge.net:/cvsroot/xoops.
- Load your private key into pageant (the Putty agent).
Using CVS Nightly Script
If you would like nightly exports created from your current CVS files, see the CvsNightly page.
CVS Teminology
CVS naturally has it's own terminology. Some terms from CVS are mentioned here for reference. Consult the resources section for more information.
- Avail file
- The avail file exists within the XOOPS CVSROOT directory in the repository. It lists the modules that developers are allowed to commit to.
- CVSROOT
- In CVS terms, CVSROOT can mean a concatenation of the location information for the repository, or a special directory within the repostiory. A CVSROOT for Joe User (username "juser") using the ext protocol to contact xoops.cvs.sourceforge.net server with the repository root located at /cvsroot/xoops would look like this: ":ext:juser@xoops.cvs.sourceforge.net:/cvsroot/xoops".
- Karma
- Authorization to commit. The mechanism to grant or deny authorization to commit to modules within the XOOPS repository reports if you have enough Karma to perform the commit action.
- Module
- A CVS module is a directory within the repository. This obviously not the same as a XOOPS module. Note that there is a modules module within the XOOPS repository. :)
- Protocol
- A method to transport the CVS commands and data between the client and server. "pserver" is widely available but insecure. "ext" allows you to use an external program to set up the communication channel, typically SSH or RSH. SourceForge CVS servers require pserver for all anonymous read-only access and SSH for developer access.
CVS Resources
The following resources can help you better understand CVS, how it works, and how to use it with SourceForge:
- The SourceForge.net: CVS (Version Control for Source Code) provide detailed instruction on how to use CVS with SourceForge repositories.
- A nice introduction to CVS and Open Source Development: http://cvsbook.red-bean.com. Not all chapters are developer-related, chapter 2 gives a good overview.
- See TortoiseCVS Support for help with Tortoise operations.
- A quick introduction to command line CVS (by Gentoo Linux) http://www.gentoo.org/doc/en/cvs-tutorial.xml.
- Don't forget about the XOOPS Module Developer CVS discussion forum!

![[Main Page]](/modules/mediawiki/images/mediawiki.png)





