An Experimental CTAN Upload Process

An Experimental CTAN Upload Process

An experimental CTAN upload process Jim Hefferon ftpmaint (at) tug dot ctan dot org Abstract Some experimental software may improve the way in which packages are handled at the Comprehensive TEX Archive Network (CTAN). 1 Now the author, some percentage of the authors do not CTAN is run at three different sites, one in Germany, do a good job. But at CTAN the maintainers see one in Britain, and one in the US. Any adding, delet- that packages meet some standards. So a current ing, or moving of files happens at one of these three. strength of CTAN is that it is a wide-mouthed fun- A custom program, written by Rainer Sch¨opf,en- nel, catching a range of submissions and narrowing sures that a change at one is quickly reflected at the them to a more uniform offering. other two, within fifteen minutes. The more than However, no doubt the process could be better. one hundred other CTAN mirrors go at a different Here are a few concerns that we have heard. pace, usually syncing nightly. 1. Authors cannot conveniently edit the metadata. New or updated material reaches us in three 2. There are delays of various kinds. One exam- ways. Usually it sent by an author via a web form. ple is that package metadata often gets into the Besides that, some authors send it via FTP, and database only after the files are in the archive, some packages are automatically mirrored in from so there is a period where the description does other sites. The author-sent cases could be either not match the package. Another example is new packages or updates, while the automatic case that the web pages for the archive at http:// only applies to updates. I will focus on the web www.ctan.org/tex-archive are usually regen- uploads. erated nightly, so information about new mate- In the present system, a web upload triggers rials is not current. an email to the CTAN maintainers mailing list. The 3. To be a core maintainer a person needs to run a maintainer at the site receiving the material sees the server and there are people who could help with email and handles the upload. This means unpack- the archive but who oughtn't administer a sys- ing the .zip or .tar.gz bundle in which the files tem that is exposed to the Internet (including were sent and examining the resulting files to check me). details such as license and placement. It may mean 4. The package gets installed by the maintainer writing to the author or to the other maintainers, for whose site happened to receive the upload, so if instance to ask the author for documentation. After that person is unavailable then there is a wait. that, the maintainer runs Rainer's program to put the material into the archive and trigger the mirror- 5. Many of the steps are done by hand, which can ing by the other core sites, and so ultimately by the lead to errors. additional mirrors. 6. At the time that a package is put in the archive Placing a package's files into the archive does and announced, it should be convenient for end not end its processing. Information about the pack- users to install. age such as description and license | the package's 2 Developments metadata | needs to go into the Catalogue; this is done by Robin Fairbairns. Finally, distributions Users groups, notably Dante, have sponsored very such as MiKTEX and TEX Live repackage the ma- helpful discussions of CTAN issues. In response, I terial to meet the TEX Directory Standard (TDS) have been working on software that is now being and deliver it in this convenient form to typical end deployed and tested. The upload process described users. here still faces a fair number of hurdles. But some The process above has some advantages. In par- people have expressed interest and it is in an ad- ticular, at an archive such as SourceForge where re- vanced enough state that the outline below may help sponsibility for how a package is offered lies with these folks to get a rough understanding of what it does. TUGboat, Volume 29, No. 1 | XVII European TEX Conference, 2007 133 Jim Hefferon If you are not keen on CTAN internals then 4. One of the editors sees the notification and logs probably the feature that is the most interesting into a web site listing the pool. They have a to you is also the most experimental. The TEX peek to see if the material is something that Live team has a script to bring most packages from they could handle right now and if so then they the CTAN tree over to the standard TEX Directory claim responsibility for it. Structure layout, that is, over to a format that could 5. This editor examines, possibly edits, and then be dropped by an end user into their existing in- approves the metadata left by the contributor. stallation. The process described here wraps that (Requiring that metadata be approved reassures script to make the TDS-ready material available as authors that people they don't know cannot a hpackage idi.tds.zip bundle at the time that the change the package's description.) package is put into the main CTAN archive. This is The editor can read, add, delete, or rename a regular ZIP file and users can unzip it right into files. For instance, they can delete a .svn file their distribution tree, without much need for in- that was accidentally included in the upload. structions. (This does not integrate with any pack- This page warns the editor if there are some age manager but it does allow users to easily place problems. One example is that a warning will material that they want.) appear if the metadata says a README file exists To describe the process I will walk through the but there is not one in the uploaded file tree. steps that a typical package would take to get from Another example is that a warning appears if author to archive. an install will leave soft links dangling in the archive. 1. The author puts the package into a .zip or 6. The author may have included in the upload .tar.gz bundle. They visit CTAN's upload web address and first select whether the upload is a their own hpackage idi.tds.zip file. If so, the new package or an update of an existing pack- editor can see its contents and compare with age. what TEX Live now has for this package, if any- They then see the main upload form. Prob- thing. ably they fill out the simple version that asks The editor can also push a button to make a only for name, license, and description. But new .tds.zip bundle, using TEX Live's script. more adventurous authors can get a form to If the package is suitable for TEX Live (which specify more obscure attributes, such as the in most cases means only that it satisfies the package home page. license restrictions) then it can be placed in the If this is an update of an existing package local Subversion sandbox for later commitment then when the form appears it already has the to the TEX Live repository. In either case, if metadata that is now in the database and the the TEX Live script does not succeed then the author just makes any changes. The author page makes that obvious. is asked separately for additional information 7. The editor then pushes a button to install the such as any handling instructions (in the cur- material. rent system, the description and handling infor- That puts the source files to the archive, say mation goes in the same input box). at /macros/latex/contrib/hpackage idi. In- stallation is done using the metadata so the 2. The system accepts the uploaded package and database and the archive tree are consistent re- metadata. It places the metadata in the data- garding the location, whether a .zip file ex- base, in a pool of not-yet-processed uploads. It ists of the directory contents, etc. Files are sends an email to a list of people who can edit placed with Rainer's program, ensuring that and install uploads, called here \editors". these web-based installations are consistent with 3. The contributor's uploaded bundle is unpacked command-line installations. to a file tree by a program that runs period- The installation system also tends the data- ically. (This does not happen as part of ac- base: it updates the metadata and the search- cepting the upload because the author's bundle able documentation. must be unpacked in a secure way, in a chroot If there is a TDS bundle then the system jail.) puts it at a place related to where the source This program does a few things beyond un- files went, such as /install/macros/latex/ packing such as resolving text file line endings contrib/<package id>.tds.zip. issues. When it finishes, it sends a notice to the 8. The installation routine sends an email to the email list of upload editors. editors list, telling people that the upload has 134 TUGboat, Volume 29, No. 1 | XVII European TEX Conference, 2007 An experimental CTAN upload process been handled, and for possible forwarding to 3 To do the CTAN announcement mailing list. Not every feature of the experimental system is de- 9. If a .tds.zip bundle was queued in the local scribed above; for instance, there is a way for au- TEX Live Subversion sandbox then the system thors to send changes to the metadata alone.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    3 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us