8

My particular question is "how to contribute to LuaTeX?", but in general I am wondering if questions of this kind are deemed on-topic on the main site or not?

Example of the question I want to ask:

How can I contribute to LuaTeX?

The official repository of LuaTeX seems to be located on a private GitLab site, here. It doesn't appear to allow contributions, not even in the form of defect reports or similar.

While this is unconventional for a FLOSS project -- and per its license it is one -- and I appreciate and comprehend the remarks from the FAQ I was wondering about these items in particular:

  1. Several of the points mentioned around the topic of contributions and even user feedback appear out of date (both sockets and UTF-8 no longer seem to be a concern; ancient versions seem to be referenced; trunk ist referenced instead of the master default branch).
  2. Having specific plans and a specific design doesn't generally preclude outside contributions. The only thing it does is to provide a boundary within which contributions should (?) be welcome.
  3. Small team of decision-makers doesn't preclude outside contributors or contributions. I've even heard of instances where FLOSS projects gained new core team members by taking in contributions and promoting regular high-quality contributors.

Considering that the upstream project -- as per their own statements -- doesn't seem to be inclined to take any outside contributions, is there any way to contribute at all?

In particular I imagine the TeXlive project could be willing to maintain patches rebased against the upstream (just a guess with lots of wishful thinking).

Thank you!

PS: I know how voting works on meta sites, so I suggest upvotes if you think it's on-topic and downvotes otherwise -- for those not writing their own answer.

PPS: in the event that this is considered off-topic, I would very much appreciate -- in comments and answers -- suggestions of where to turn with such requests.

2
  • 2
    I don't have an opinion on where to ask these questions, but: luatex is as far as I know frozen (no new functionality, supposed to be stable). There is the luatex-dev mailing list for bug reports and similar. Maybe that is how the developers prefer to communicate? It is nice that you want to help, maybe asking on the luatex-dev list if there is anything to help with is the best thing to do?
    – mickep
    Commented May 9, 2023 at 9:13
  • 3
    @mickep LuaTeX claims to be frozen since TL2019, but this isn't quite true. If you look through the TeX Live Guide, LuaTeX has added a few minor features every year. Just in TL2023 (released 3 months ago) it added a new primitive. Nothing major will be added, but they still seem to be willing to add small new features if they think that it's important enough. Commented May 9, 2023 at 9:46

2 Answers 2

8

I don't think there's a hard line here, because the exact 'How to I contribute to X' question will depend on X.

If we take an arbitrary (La)TeX package, then it might well be developed by one person who has no public code setup at all, and 'email the author' would be the only answer, and really could only be posted by the package author. So a question about such a package would be off-topic by virtue of being impossible to answer by 'the community'.

On the other hand, asking about the structures that apply to a more complex project like LuaTeX, with the context you suggest you'd include in your model, I think would be on-topic. Here, there are several aspects that many people could comment on.

So I think this is one of those 'don't ask if you can ask, just ask' situations: if it turns out that the question doesn't have the right scope, you'll find out, but not until you ask it.

3
  • 5
    On the specifics of LuaTeX, the FAQ date from about 2006/7, so the situation is not quite as described: that was when things were very much developmental. LuaTeX is largely 'done', but changes can and are made: you are likely looking for the LuaTeX dev mailing list. (Like much of the TeX ecosystem, LuaTeX development discussion is still much more active on mailing lists than e.g. GitHub issues.)
    – Joseph Wright Mod
    Commented May 8, 2023 at 21:27
  • 1
    Also, almost all engine development (other than LuaMetaTeX) is done by patching in TeX Live then back-port to wherever the 'main' repo is, if such a thing exists.
    – Joseph Wright Mod
    Commented May 8, 2023 at 21:30
  • BTW, I see that luatex.org/roadmap.html has a pretty clear statement at the end about the status - perhaps you are looking to contribute to LuaMetaTeX?
    – Joseph Wright Mod
    Commented May 9, 2023 at 7:33
5

This question (both this one on Meta and the blockquoted one for main) seem on topic to me. The answer that I'll write below is certainly off-topic for Meta though.

The official repository of LuaTeX seems to be located on a private GitLab site, here.

Yes, the main "upstream" repo is indeed https://gitlab.lisn.upsaclay.fr/texlive/luatex. Throughout the year, commits/updates are made to this repo. However, sometimes changes are made directly to https://tug.org/svn/texlive/trunk/Build/source/. Occasionally, the GitLab repo pulls in the changes from the TL repo, then once a year (ish) the TL repo pulls in the changes from the GitLab repo.

It doesn't appear to allow contributions, not even in the form of defect reports or similar.

The GitLab site doesn't allow any contributions directly, but the LuaTeX team still accepts them.

and I appreciate and comprehend the remarks from the FAQ

Most of luatex.org is pretty old, so I wouldn't take anything there too literally.

The story here is a little complicated, but here's a short version. LuaTeX started when NTS was going to be the next big thing, but NTS ultimately failed because there was more discussion than actual coding. This was a big problem since computers had changed a lot since 1982, but the only major new engine was pdfTeX, and TeX couldn't afford to stagnate if it wanted to survive.

Also, LuaTeX was originally developed only for ConTeXt. So at the start, LuaTeX gained whatever features that it needed for it to work with ConTeXt. Pretty much every previous TeX engine had near-perfect backwards compatibility with Knuth's original TeX, but LuaTeX intentionally had a few minor backwards incompatibilities. These incompatibilities are to this day controversial.

These days, things are much different. At the start, LuaTeX would change radically from year-to-year; now, there haven't been any major changes for about 5 years. At the start, LuaTeX was entirely driven by ConTeXt's needs; now, the most recent update broke ConTeXt to fix bugs with LaTeX and Plain.

1. Several of the points mentioned around the topic of contributions and even user feedback appear out of date (both sockets and UTF-8 no longer seem to be a concern; ancient versions seem to be referenced; trunk ist referenced instead of the master default branch).

Correct, this is all ancient.

2. Having specific plans and a specific design doesn't generally preclude outside contributions. The only thing it does is to provide a boundary within which contributions should (?) be welcome.

3. Small team of decision-makers doesn't preclude outside contributors or contributions. I've even heard of instances where FLOSS projects gained new core team members by taking in contributions and promoting regular high-quality contributors.

This was written back when LuaTeX was only for ConTeXt, and to this day ConTeXt has very different wants/needs compared to the other TeX engines. Generally speaking, some of the loudest users in the TeX community want nothing to ever change, but this conflicts with ConTeXt's goal of continuous improvement.

Outside contributions are definitely welcome in LuaTeX; I made a first-time contribution (bug fix) two weeks ago. And if you look through the changelogs, LuaTeX still adds new features every year or so.

Considering that the upstream project -- as per their own statements -- doesn't seem to be inclined to take any outside contributions,

Yeah, I agree that this page makes them look semi-hostile to outsiders. But the LuaTeX team (Hans and Luigi these days mainly) are actually quite friendly. Keep in mind that there are also some language/cultural issues here too.

is there any way to contribute at all?

Send a patch (in an attachment, not inline) or a bug report to [email protected] (current archive is stale, use this one instead). If it's something simple/obvious, Luigi will usually merge/fix it in about a day (although it won't end up in a binary until the next annual TL release).

If it's a feature request or something more complicated, then it will probably take some more time. Generally speaking, LuaTeX doesn't like to add new features anymore, but anything simple or important has decent odds at being accepted.

Patches generally aren't needed for bug reports, but they'll help a lot for a feature request.

In particular I imagine the TeXlive project could be willing to maintain patches rebased against the upstream

TL never patches upstream projects (except for things like web2c, kpathsea, pdftex, etc. where TL itself is the upstream). But if you did manage to get a patch into TL, it would eventually get pulled back into the main LuaTeX repo.

[added by me] How do you build/install LuaTeX from source?

$ git clone --depth 1 //gitlab.lisn.upsaclay.fr/texlive/luatex.git
$ cd luatex
$ ./build.sh --parallel --luahb
# cp build/texk/web2c/luatex build/texk/web2c/luahbtex "$(kpsewhich --var-value=SELFAUTOLOC)"
# fmtutil-sys --byengine luahbtex
# fmtutil-sys --byengine luatex
5
  • 1
    'TL never patches upstream projects (with a few rare exceptions)': well, I guess it depends, but that's how changes to pdfTeX/XeTeX/(u)pTeX get made ;)
    – Joseph Wright Mod
    Commented May 9, 2023 at 8:21
  • @JosephWright True. I've edited the answer with better wording. Thanks! Commented May 9, 2023 at 8:26
  • @MaxChernoff thanks for the insights. Admittedly I should by now post this on the main site and you should probably post your answer there. I'll see to it in the evening. Joseph Wright suggested tug.org/mailman/listinfo/lualatex-dev, would that also be okay for patches? Commented May 9, 2023 at 10:27
  • 1
    @MaxChernoff posted it just now ... question is the same as the quoted one here, word by word. tex.stackexchange.com/q/685185/3925 Commented May 9, 2023 at 10:32
  • 2
    This same answer is now posted on the main site. Commented May 9, 2023 at 23:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .