# Patching really old CTAN packages

Related to the stackexchange question here. I don't have enough reputation to comment on that question.

Is there some sort of official way to submit patches for really old CTAN packages? Is LaTex programming much like any other programming in terms of engineering collaboration (pull requests on Git repo, peer-review, etc)? Or is it very much wild wild west?

How do I politely fork an unmaintained package?

Why are so many CTAN packages seemingly inactive? Is LaTeX very unpopular with the general population? Will XeTeX or LuaTex have bigger audience?

• I think most of the inactive packages are "replaced" by new ones, for example I'd use `tcolorbox` instead of `mdframed`. Mar 12, 2018 at 5:12
• @CarLaTeX Gosh, I'm using both. I'll migrate toward `tcolorbox` now. Thanks!
– user152148
Mar 12, 2018 at 6:19

If a package is unmaintained, CTAN will allow you provide an update, perhaps also taking over maintenance. What is important, though, is to show that this is the case. What CTAN are very keen to avoid is multiple people trying to change the same package.

It is worth noting is that a maintainer may decide not to change code: stability can trump bug fixes. This is particularly important for a widely-used package, as changes which break (i.e. alter) existing documents can be very problematic.

In general, LaTeX packages may be unchanged without being abandoned. A lot of stuff has been very stable for many years, and thus updates are not necessarily required. So simply being 'last updated 199X' doesn't make a package problematic.

To answer the many questions explicitly:

Is there some sort of official way to submit patches for really old CTAN packages?

See CTAN's “How can I take au­thor­ship of a pack­age?” (after reading “How can I sub­mit mod­i­fi­ca­tions to a pack­age?”:

When a pack­ages be­comes un­main­tained or the au­thor does not re­act then fur­ther steps should be dis­cussed with the CTAN team at ctan@ctan.org.

Is LaTex programming much like any other programming in terms of engineering collaboration (pull requests on Git repo, peer-review, etc)? Or is it very much wild wild west?

It varies. (I assume that by “LaTeX programming”, you're asking about LaTeX packages such as those that exist on CTAN.) Macro packages for TeX have been written since the late 1970s, so you can find all sorts of engineering practices. On the whole, it tends towards the single-author model rather than a team-of-authors model. Programmers today who wish to collaborate will of course likely use the best available modern methods of collaboration.

How do I politely fork an unmaintained package?

You don't. The TeX world places high importance on stable/reliable output (see “reproducible builds” that is just now starting to become a big deal in the mainstream programming world). If someone writes `\usepackage{foo}` in their document, and it works differently on different computers (or worse, things that previously worked stop working), it would be bad. (The earliest and strongest version of this is Knuth's wishes about the TeX program and things distributed with it like `plain.tex`; things are less strict in the LaTeX world, but the idea is still there.)

So what you can do, instead of creating a fork with the same name, is make a copy and give it a new name, if you think your changes are sufficiently substantial to justify the existence of two new packages, and if you and the maintainer of the existing package cannot find a satisfactory way to integrate them.

Why are so many CTAN packages seemingly inactive?

Typically, because the package already solves the problem the author intended to solve. Also, often, because the author has moved on to other things (example: someone writes LaTeX packages while working on their PhD thesis, and then leaves academia and never really uses LaTeX again). I think if you look around all the open-source repositories that have (or previously) existed for a while (GitHub, Google Code, SourceForge, etc.), you'll find a similar proportion of inactive projects: most code gets abandoned, as the authors move on. I don't think the proportion would be substantially different on CTAN.

Is LaTeX very unpopular with the general population? Will XeTeX or LuaTex have bigger audience?

LaTeX is a format, a [set of defined macros which allow a] syntax for the markup you type into your document. It remains the most popular one, among the tiny population of TeX users. XeTeX and LuaTeX are alternatives to the TeX engine most frequently used (pdfTeX); they are not alternatives to LaTeX. (In other words, even if you use XeTeX or LuaTeX, you need to type your document in some format, and LaTeX remains the most popular choice even with those engines.) Alternatives to LaTeX include ConTeXt, plain TeX, Markdown (with an appropriate pipeline for processing by a TeX engine), etc.

• "among the tiny population of TeX users... I hope someday, I will have time to combine Markdown and LaTeX (via Markdown-definiting macros). I find LaTeX a must-have for collaborative document writing that also provides a easy way to build consistent layout/presentation.
– user152148
Mar 13, 2018 at 2:43