What is AlphaTcl?
Most of Alpha's functionality is implemented in its collection of Tcl (Tool Command Language) extension scripts that create the various modes, menus, and other features. All of these scripts use the building blocks provided by the core commands of the binary applications to create the user interface. Because these script files are not embedded in the core application, it is much easier to change various aspects of this interface, or to create additional modes, menus, and features. All of these script files are known collectively as AlphaTcl.
What is a CVS?
CVS stands for Concurrent Versions System . It is a collection of files that includes not only the current version but all previous versions of each file in the set. CVS systems allow one to quickly identify the changes that have taken place between any two versions of any given file. A CVS also allows for multiple authors to work on a project simultaneously, 'checking out' the latest file versions from the central repository and 'checking in' their changes as necessary. For more information about the CVS concept, see [http://www.loria.fr/~molli/cvs/cvs-FAQ/cvsfaq2.html].
What is the AlphaTcl CVS?
AlphaTcl is stored in a CVS repository on SourceForge, browseable at [http://alphatcl.cvs.sourceforge.net/]. While public releases of Alpha8/X/tk always contain the most recent stable version of the AlphaTcl library, a dedicated group of volunteers is always at work enhancing these files to address various bugs or provide additional features requested in the listservs described in the AlphaTclMailingLists? page. The AlphaTcl CVS provides one method for any user to update their AlphaTcl library to the latest development versions, though many choose to wait until the next version of AlphaTcl has been declared 'stable' and released publicly.
A complete list of pre-compiled AlphaTcl updater archives is available at [http://alphatcl.sourceforge.net/updates/].
How do I update my AlphaTcl library from the CVS?
Before you can update your AlphaTcl library, you need to decide what level of stability you desire in your Alpha application. All of the file versions in the AlphaTcl CVS are given 'tags' which are broader classifications of the AlphaTcl version number. Any number of tags can be given to a particular file version -- most of these are only useful for AlphaTcl developers who want to check what the file looked like at some point in its development history.
Uh, What is a tag again exactly?
A Tag is a symbolic name, a synonym or alias for a particular revision number in a file. The CVS "tag" command places the same "Tag" on all files in a working directory, allowing you to retrieve those files by name in the future.
Okay, but what do tags mean for me when updating?
When you update via the CVS, you are updating all of your files to a given tag, and there are many tags given to the various files (for example, see the tags associated with different revisions of the AlphaBits.tcl file at [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/alphatcl/Tcl/SystemCode/AlphaBits.tcl]), but for updating purposes there are three tags which are important: STABLE, CURRENT, and HEAD .
The STABLE tag is given to the last version of the file which was part of the most recent stable release of AlphaTcl, generally included in the most recent public ('final') distribution of Alpha8/X/tk. In general, if you are only using STABLE versions of AlphaTcl there is no need to update via the CVS because new public final releases usually contain an updated core Alpha* application as well as STABLE versions of AlphaTcl, and you'll want to use download, install and use both of these updated components.
The CURRENT tag is given to the last version of the file which was part of the most recent public (though perhaps beta) release of AlphaTcl. Files in the AlphaTcl CVS are periodically tagged as CURRENT during the development cycle between public 'final' releases. CURRENT files have a higher degree of risk than STABLE files, but should not contain any known crashing or otherwise disabling bugs. They will, however, likely contain some known yet unresolved issues.
The HEAD tag is given to the most recent version of the file committed to the cvs. All files with the HEAD tag are part of the cutting (possibly bleeding) edge version of AlphaTcl. If you want to know how Alpha would perform if somebody decided to release a new version tomorrow, you should be using files with the HEAD tag. This is usually the version that AlphaTcl developers use as they continue to perform tests and updates. Many developers keep two copies of Alpha on their hard drive, the CURRENT version as well as the most recent HEAD version -- sometimes it is necessary to use the stable version to actually get some work done, because at times recent changes to the HEAD version has introduced bugs that make some task impossible.
So which tag should I update to?
You need to decide what level of risk you're willing to endure when you choose to update your AlphaTcl library. You might choose to keep two different distributions around so that you can periodically check in on what later versions of Alpha will look like, how the user interface has changed, and in this way provide feedback to the AlphaTcl developers on what works, what is annoying, what directions certain features should take. (If you choose to do this, see the notes concerning FAQ.MultipleVersionsOfAlphaOnYourLocalDrive.)
The actual process of updating your AlphaTcl library depends on which version of the application you are using, as well as your operating system (OS). No matter what OS you are using, you should always quit your Alpha application before attempting to update via the CVS. The following pages give specific instructions:
See also CVS Messages And What They Mean.
AlphaTcl developers with write-access can find more information on AlphaTcl CVS internals in the AlphaTcl CVS Modules States and Tags page.
An earlier version of this wiki page can be found in AlphaTcl CVS Old Version as an archive in case there was information there that was not properly transferred to any of the pages above.