我如何为 LuaTeX 做出贡献?

我如何为 LuaTeX 做出贡献?

LuaTeX 的官方存储库似乎位于一个私人GitLab 网站,这里。它似乎不允许贡献,甚至不允许以缺陷报告或类似形式做出贡献。

虽然这对于 FLOSS 项目来说是不寻常的(根据其许可证,它确实如此),但我欣赏并理解常问问题我特别想知道这些事情:

  1. 围绕贡献和用户反馈主题提到的几点似乎已经过时(套接字和 UTF-8 似乎不再是问题;似乎引用了古老的版本;trunk引用了 ist 而不是master默认分支)。
  2. 有具体的计划和具体的设计通常不会排除外部贡献。它唯一的作用是提供一个边界,在这个边界内,贡献应该(?) 受欢迎的。
  3. 决策者团队规模小并不排斥外部贡献者或贡献。我甚至听说过 FLOSS 项目通过吸收贡献和提拔定期的高质量贡献者来获得新的核心团队成员的例子。

考虑到上游项目——根据他们自己的声明——似乎不愿意接受任何外部贡献,那么任何贡献方式根本

具体来说,我想象 TeXlive 项目可能愿意维护针对上游重新制定的补丁(这只是一种猜测,带着很多一厢情愿的想法)。

答案1

(大部分内容来自我在 Meta 上的回答。抱歉,这个答案有点长/杂乱。)

对问题的回答

LuaTeX 的官方存储库似乎位于一个私人GitLab 网站,这里

是的,主要的“上游”存储库确实是https://gitlab.lisn.upsaclay.fr/texlive/luatex。全年都会对此存储库进行提交/更新。但是,有时会直接对https://tug.org/svn/texlive/trunk/Build/source/。偶尔,GitLab 仓库会从 TL 仓库中提取更改,然后每年一次(左右)TL 仓库会从 GitLab 仓库中提取更改。

它似乎不允许贡献,甚至不允许以缺陷报告或类似形式做出贡献。

GitLab 网站不允许任何直接贡献,但 LuaTeX 团队仍然接受它们。

我赞赏并理解常问问题

luatex.org 的大部分内容已经很旧了,所以我不会太过于字面化地理解那里的任何内容。

这里的故事有点复杂,但这是一个简短的版本。LuaTeX 是在 NTS 即将成为下一个大热门时出现的,但 NTS 最终失败了,因为讨论比实际编码多。这是一个大问题,因为自 1982 年以来计算机已经发生了很大变化,但唯一主要的新引擎是 pdfTeX,而 TeX 如果想生存,就不能停滞不前。

此外,LuaTeX 最初是专为 ConTeXt 开发的。因此,LuaTeX 一开始就获得了与 ConTeXt 配合使用所需的所有功能。几乎所有之前的 TeX 引擎都与 Knuth 的原始 TeX 具有近乎完美的向后兼容性,但 LuaTeX 故意保留了一些轻微的向后不兼容性。这些不兼容性至今仍存在争议。

如今,情况大不相同。一开始,LuaTeX 每年都会发生巨大变化;现在,大约 5 年来没有发生过任何重大变化。一开始,LuaTeX 完全由 ConTeXt 的需求驱动;现在,最近的更新打破了 ConTeXt 的原有功能,以修复 LaTeX 和 Plain 中的错误。

1. 关于贡献和用户反馈的话题中提到的几点似乎已经过时了(套接字和 UTF-8 似乎不再是问题;似乎引用了古老的版本;引用了 trunk 而不是 master 默认分支)。

正确,这都是古老的。

2. 有具体的计划和具体的设计通常不会排除外部贡献。它唯一的作用是提供一个界限,在这个界限内应该欢迎贡献。

3. 决策团队规模小并不排斥外部贡献者或贡献。我甚至听说过 FLOSS 项目通过吸收贡献和提拔定期的高质量贡献者来获得新的核心团队成员的例子。

这是在 LuaTeX 仅适用于 ConTeXt 时编写的,至今,ConTeXt 的需求与其他 TeX 引擎相比有很大不同。一般来说,TeX 社区中一些最激进的用户希望永远不要改变,但这与 ConTeXt 持续改进的目标相冲突。

外部贡献确实欢迎加入 LuaTeX;两周前我做了第一次贡献(修复了错误)。如果你查看变更日志,你会发现 LuaTeX 每年都会添加新功能。

考虑到上游项目(根据他们自己的声明)似乎不愿意接受任何外部捐助,

是的,我同意这个页面让他们看起来对外来者有点敌意。但 LuaTeX 团队(现在的 Luigi 和 Hans)实际上非常友好。请记住,这里也存在一些语言/文化问题。

有没有什么办法可以做出贡献?

将补丁(以附件形式,而非内联形式)或错误报告发送至[email protected](当前档案已过时,改用这个)。如果是简单/明显的问题,Luigi 通常会在大约一天的时间内合并/修复它(尽管直到下一个年度 TL 发布时它才会以二进制文件的形式出现)。

如果是功能请求或更复杂的东西,那么可能需要更多时间。一般来说,LuaTeX 不喜欢再添加新功能,但任何简单或重要的东西都有相当大的几率被接受。

补丁通常不需要用于错误报告,但它们对于功能请求很有帮助。

特别是,我认为 TeXlive 项目可能愿意维护针对上游重新制定的补丁

TL 永远不会修补上游项目(除了web2ckpathseapdftex等,其中 TL 本身就是上游)。但如果您确实设法将补丁放入 TL,它最终会被拉回到主 LuaTeX 存储库中。

其他回应

[me] 如何从源代码构建/安装 LuaTeX?

假设您已经安装了较新的 TL,则以下命令应该将您当前的luatex二进制文件替换为从以下位置编译的新二进制文件master

$ 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

实际上没有任何开发人员文档,因此您只能靠自己来完成其余的工作。

(你可以发邮件给我echo bXNldmVuIGF0IHRlbHVzIGRvdCBuZXQK | base64 -d。我只是一个普通用户——不属于 LuaTeX 团队或其他什么——但我可能如果您在任何地方遇到困难,能够回答一些问题。

[0xC0000022L]约瑟夫·赖特建议https://tug.org/mailman/listinfo/lualatex-dev,这对于补丁来说也可以吗?

该列表旨在讨论诸如luaotfloadluatexbasefontspec等问题,因此它并不是发布补丁的合适场所。但 Luigi 是目前唯一一个应用补丁的人,他似乎在列表中很活跃,而且 LuaTeX 中的任何内容最终都会影响 LuaLaTeX,所以应该没问题。

[约瑟夫·赖特]关于 LuaTeX 的具体情况,常见问题解答的日期大约是 2006/7 年,因此情况并不像描述的那样:当时事情发展得非常迅速。LuaTeX 基本上已经“完成”,但可以进行更改:您可能正在寻找LuaTeX 开发邮件列表.(与大部分 TeX 生态系统一样,LuaTeX 开发讨论在邮件列表上仍然比 GitHub 问题等更为活跃。)

我同意这一切。

[米基普]据我所知,luatex 已冻结(没有新功能,应该是稳定的)。luatex-dev 邮件列表用于错误报告和类似内容。也许这就是开发人员喜欢的沟通方式?很高兴你想帮忙,也许在 luatex-dev 列表上询问是否有任何需要帮助的事情是最好的做法?

LuaTeX声称自 TL2019 以来一直处于冻结状态,但这并不完全正确。如果你看看TeX Live 指南,LuaTeX 每年都会添加一些小功能。仅在 TL2023(3 个月前发布)中,它就添加了一个新的原语。不会添加任何主要功能,但如果他们认为足够重要,他们似乎仍然愿意添加一些小的新功能。[原文来自 Meta 上的一条评论]

[约瑟夫·赖特]顺便说一句,我看到了https://luatex.org/roadmap.html最后对状态有一个非常清晰的声明——也许您正在寻求为 LuaMetaTeX 做出贡献?

为 LuaMetaTeX 做贡献绝对是一个选择,但请记住

  1. LuaMetaTeX 几乎只能与 ConTeXt 一起使用。有一种方法可以让它与 LaTeX 和 Plain 一起工作,但这只适用于您非常有冒险精神并愿意进行大量调试的情况。您可能对此不太感兴趣。

  2. LuaMetaTeX 通常只添加 Hans 想要在 ConTeXt 中使用的功能。当然可以将补丁添加到 LuaMetaTeX 中(我已经发送了一些小补丁),但您需要说服 Hans 这是一个很好的功能。在某些方面,这更容易,因为没有人关心向后兼容性或它对其他人有多大用处,但这也更棘手,因为如果 Hans 想要一个功能,他通常已经自己添加了它。

[米基普]您想提供帮助真是太好了,也许在 luatex-dev 列表上询问是否有什么可以提供帮助是最好的办法?”毕竟,在那里您还可以接触到实际参与的人。

[0xC0000022L]向某人说“嘿,我有一个绝妙的想法。但你必须实现它”,这没什么意义。此外,我不仅需要将其变成“可呈现”的形式,还需要从各个方面进行思考,并考虑诸如向后兼容性问题等潜在问题。

这是一个非常小容量的邮件列表,并且每个人通常都非常友好,所以只要你不是太过强势或要求太高,我认为在列表上询问没有任何问题 - 即使没有准备好实施。

[米基普]事实上,你确定 luatex 是值得贡献的项目吗?可能还有更多与标记相关的工作。我不知道你是否喜欢数学,但很多人都希望看到更多关于 unicode-math 包的工作。只是给出一些指导...

我认为这与这个问题,这肯定需要进入 LuaTeX 核心二进制文件。

无论如何,我认为 LuaTeX 很有可能会添加您在问题中提到的内容。他们肯定会很感激您提供补丁,但您要求的功能可能非常简单,因此他们只会接受功能请求。

相关内容