Bounty program for improvements to Tcl and certain Tcl packages.

Adding a new TIP

Adding a TIP is not hard, but there are a few steps involved. The process will become even simpler as the system matures.


TIPs are maintained in a fossil source code repository. The following steps are required to set up an environment to create and edit TIPs.

  1. Download fossil if you do not already have it set up on your system. It is distributed as a single file executable so installation consists of simply placing it in some suitable directory in your PATH environment variable.

  2. Create a user account on the TIP repository if you do not have one already. You can create one yourself, but the administrator needs to assign you commit privileges.

  3. Clone the repository into a suitable directory. For example,

    cd ~/repos
    fossil clone tips.fossil
  4. Checkout the TIP sources into your working directory with the fossil open command.

    cd ~/tips
    fossil open ~/repos/tips.fossil

The text of all the TIPs is in the tip subdirectory and formatted using the Markdown language.

Adding the new TIP

To add a new TIP,

  1. Create a file in the tip subdirectory. Choose a name of the format, for example The TIP numbering is currently not enforced by the system, so pick the next unused number based on the current TIPs.

  2. TIP 2 specifies guidelines for writing a TIP. Write up the text, using Markdown mark-up (plenty of examples are available - pay attention to the header as described below). NOTE: if you already have the TIP text written in the old TIP format, you can use the tip2md.tcl script in the scripts subdirectory to convert it to Markdown.

  3. To preview the TIP before checking in, you can use the fossil ui command to start a local fossil server and then go to http://localhost:8080/doc/ckout/tip/ where NNN is your TIP number.

  4. Add the file to the fossil repository

    fossil add
  5. Then, in the subdirectory scripts, run the mkhtmlindex.tcl script, as this updates the Home page.

  6. Submit the changes via fossil.

    fossil commit -m "Added TIP NNN"

TIP Header

The index script requires a special format for meta-data in the TIP header. For example:

# TIP 0: Tcl Core Team Basic Rules
    State:          Final
    Type:           Process
    Vote:           Done

The meta-data is terminated by ------ and indented with tabs (for nicer display in fossil).

See TIP 3 for a detailed specification of the header format and meaning of each header field.