# Publishing a package update on CTAN?

This is one of the questions I get on and off, so I thought I'd post about it.

A couple of times, I've ended up with a situation where I need to modify code in a CTAN package proper - that is, I cannot just manage with a redefinition pattern like:

\let\old@COMMAND\current@COMMAND
\def\current@COMMAND{%
% pre-hook commands ...
\old@COMMAND
% ... post-hook commands ...
}


... in my main code. The changes may be just a couple of lines in a, say, 100's of lines of .sty code, adding a new command - so it is in the "feature request" category, rather than "bugfix"; and as such, calling that with a "new" package name, and publishing it as such, would not be justified, in my opinion.

Of course, I could always "publish" such an "update" to a package by posting it anywhere on the 'Net (from pastebin to here); but I was interested - what is the correct procedure if I'd want this update published on the CTAN package proper, and the author/current maintainer are not accessible at the moment (say, up to a month from initial query) to approve/disapprove of the update?

Some related info:

• How can I contribute to CTAN?

Having done that, take your files and bundle them up in a ZIP or TAR.BZ (or etc.) archive and upload it. There are two CTAN ‘mirrors’ to which you can upload your work: ...
The only difference between the two is that a different person (in a different timezone) will process the upload.

• Historical, stable version archive of packages

CTAN holds the current release of each package: the 'archive' in the name is more because it's a single source for 'everything' than meant to imply a record. (Remember that before CTAN collecting TeX sources meant trawling many different author-maintained sites.)

Maintaining a 'back catalogue' of material is down to each package author, and as a result many packages have limited or no publicly-available source repository. The nearest you can get is probably the TeX Live SVN, which gets updated each time a package is changed in TeX Live. ...

there are only archives of complete TeXLive versions: ftp://tug.org/historic/systems/texlive/ ...

I'm actually working on an archive of CTAN using automated Mercurial repositories for the last two weeks. The CTAN content is mirrored daily and each CTAN package (with exceptions) is committed to its own Mercurial repository.

This is currently online as http://ctanhg.scharrer-online.de/, but not 100% finished yet. Also, it might not handle large loads well. You can get each archived version as ZIP or Mercurial clone.

• You might know, you can download all packages from a mirror of CTAN. But CTAN itself is run by more or less three persons, who are serving there since many years. Without them, no CTAN.[1]

So if any reader of this question considers asking for more than the packages on CTAN, namely a bugzilla or whatever: We depend on people who contribute their work to maintain our infrastructure and even at the very heart of it there is a lack of people.

• What is the preferred way to contact a package author? - TeX - LaTeX Meta Stack Exchange

You should first check the package manual and its README file (both usually under http://www.ctan.org/pkg/) for an email address

Please note that virtually all package authors do write these in their spare time and might be busy with their day job, so you should give them 1-2 weeks to respond, then write them a second email.

Several package authors are also reading the comp.text.tex usenet group and people often post package related issues there. However, you still should CC the author using a private email as well. He/she might overlook the post otherwise. Also it is a little rude to post it in public but not contact the author directly as well.

This varies from package author to package author. If you can find a (working) e-mail address, then this is usually the best way.

So, in other words: if I naively packaged my changes in the original someoneelsespackage.zip and uploaded that to CTAN, then one of those poor souls volunteering to maintain CTAN would simply get a message, hopefully automatically identifying that such a package already exists but the originating email doesn't match, and so it will be refused outright - and thus I've managed to waste people's time for absolutely nothing. Then again, I could rename that to myversionofsomeoneelsespackage.zip - that may pass through the automated checks, and even the judgment of maintainers; but is it really worth increasing all the noise (with identical pdf .docs, etc) for what is essentially a two lines patch? This is the main dilemma I have, that motivates this question...

• while i'm thinking about a possible answer, i'd simply like to point out that, instead of "www.ctab.org" in your third xref, it should be "www.ctan.org". indeed, the ctan maintainers are very hard working and conscientious. remember also that packages posted to ctan also go into tex live (unless they're not freely licensed or have some other restriction, such as being significantly obsolete). so a change of only two or three lines, as you point out, is a disservice to a lot of people. – barbara beeton Jul 7 '14 at 19:29
• I do not want to diminish your efforts in "correcting/updating" an existing package or adding features to it, but do you really think it is necessary, to do it yourself, without asking the maintainer(s) (if there any...)? I would rather contacting the authors/maintainers and suggest a fix/feature request (or whatever you may call it) or if that you should not be possible, publish a new package of your own, stating that it is based on package 'x' and contains some fixes etc. (Mind the license(s)) and also in that case: ask the authors before. – user31729 Jul 7 '14 at 19:44
• If your main objective is to share an improvement and/or bug fix to an existing package, I would strongly encourage you to contact repeatedly the person (or persons) identified as the package's maintainer(s). Providing not only some diffs but an entire MWE that demonstrates what your code does will increase the likelihood of a response. If the package's maintainers don't respond within a reasonable amount of time -- say, within two to three weeks, not hours! -- you might post a note on this site or on comp.text.text to inquire if anyone knows what the maintenance status of that package is. – Mico Jul 7 '14 at 19:47
• There is a procedure for taking over (seemingly) orphaned packages, but -- reasonably so -- it takes some time after notifying CTAN people of your intention and after allowing for a reasonable amount of time for the current maintainer/developer to respond. Traditionally, comp.text.tex has seen some discussion about these sorts of matters. – jon Jul 7 '14 at 19:54
• if the named author/maintainer of a package doesn't respond to the address listed in the documentation, write to the ctan maintainers (ctan at dante.de) asking if they have a more current/reliable address. they often do have more information than is available in the public catalogue. – barbara beeton Jul 7 '14 at 19:59

If you want the enhancement to get to ctan more quickly just distribute a package of the form new-foo.sty that does \RequirePackage{foo} together with your two line patch. there is no need to duplicate the code of the original.