Version 3 of A Sample Tcl Package File (for use in a repository)

Updated 2006-03-16 20:09:34 by escargo

If Tcl had a CPAN-like repository system, what would a package file look like? What data would you need to describe the contents of a package for download? I came up with this basic idea based on combinations of other standards already available. What else does it need? I realize that others have already gone at this, but I don't think there has ever been any kind of group consensus as to what this thing should really include. How much data is too much? Remember: KISS (Keep it Simple, Stupid).

 Package:   sample
 Name:      Sample Extension
 Summary:   A sample package that does nothing really.
 Version:   1.0
 Author:    Damon Courtney
 Packager:  Damon Courtney
 Copyright: GPL

 Created: 10/10/2001
 Updated: 10/20/2002

 Categories:

 Sources:
 http://www.sample.org/sample.zip

 Provides:
 sample-1.0
 sample::parser-1.0

 Requires:
 tclxml-1.0
 tdom-1.0

 Exports:
 sample::init
 sample::doit
 sample::main

 Platforms:
 Windows-x86
 Linux-x86
 source
 tcl

 Description:
 .This is a description.
 .
 .Some more stuff here.
 .
 .Ending line.

 Files:
 LICENSE         SIZE    CHECKSUM
 sample.tcl      SIZE    CHECKSUM
 sample.txt      SIZE    CHECKSUM

Most of these are pretty obvious, but I'll explain a few anyway.

Provides: Specifies the Tcl packages provided by this package.

Requires: Specifies the Tcl packages that this package depends on.

 Package names are defined as suggested by TIP #189: Tcl Modules.

Exports: A list of Tcl-level commands that are provided by the packages.

Platforms: A list of binary platforms as well as "source" if the source code to compile is also included, and "tcl" if the package has Tcl-only source. A tcl-only package would only specify "tcl" as its available platforms.

I open the floor up for discussion.


See also:


Category Deployment | Category Discussion | Category Repository