The indefatigable Taco Hoekwater has released a new project called “TLContrib”, which is an orthogonal package hosting site for TeX Live installations. It does not mirror TeX Live, but consists of a place to distribute material that is otherwise unsuitable for the main TeX Live tree: namely, non-free material, binary updates, and pre-release updates. For example:

  • Non-free material: cowfont (pdf link)
  • Binary updates: LuaTeX, MetaPost
  • Pre-releases: siunitx, fontspec

TLContrib is ready to be used by any users of TeX Live 2010; no extra software needs to be installed nor extra configuration performed.

Joseph Wright has already commented on this new repository and has taken advantage of TLContrib for providing testing releases for siunitx. I’m currently experimenting with the same idea for fontspec.

While users until now have been able to grab pre-release versions of siunitx and fontspec from Bitbucket and Github, the nice thing about using TLContrib is that you can use standard TeX Live tools to do the updates.

TLContrib as a user

Here’s how it’s all done as a user. First define an alias to make things easier to remember; put this into your .bash_profile or equivalent:

alias tlc="tlmgr --repository"

You can now view what is available in the TLContrib repository with standard tlmgr commands such as

tlc list

to see what is currently available for installation. Packages can be updated to their pre-release versions by typing, say,

tlc update siunitx

and if an update performed in this way ‘goes bad’ and you’d like to revert to the official release, execute

tlmgr install fontspec --reinstall

and things will be back to normal.

TLContrib as a package author

As a package author, what I really like about TLContrib is the automated upload process—it’s a very friction-free way to push out quick updates to users. It works by only accepting the very rigid directory structure via which the package is installed into a texmf directory on installation. No human verification of the package contents is performed, so updates are very fast (a delay of at most one hour).

(Updates can even be slurped in from an online SVN repository, but I’m not sure how that would typically work for a LaTeX package that would typically not be kept in a texmf directory structure for development.)

In contrast, material submitted to CTAN must be manually processed for addition to TeX Live so that real humans can check to verify correctness and consistency of installation, and to ensure that the material is legally allowed to be included in the distribution, which is free in a very strict sense. It will be great to be able to iterate package development quickly, when necessary, through TLContrib while sending stable releases to CTAN and TeX Live.