为什么 CTAN 包不包含 build.lua?

为什么 CTAN 包不包含 build.lua?

我注意到ctan包含build.lua脚本中没有软件包,因此无法使用 来安装它们l3build

我发现现在使用构建和安装包l3build比手动处理insdtx文件并将派生的文件和文档复制到正确的位置更容易。

那么我们为什么不将该build.lua文件包含在ctanzip 文件中呢?

(我知道大多数人会等到软件包出现在他们的发行版中后再安装它。我只是很好奇。)

答案1

没有什么可以阻止您在 CTAN 上传中包含构建脚本:例如,过去在 CTAN 上beamer曾经有Makefile。但是,构建脚本不是包本身:,但对开发者来说却是一种便利。(最终,人们总是可以提取包并手动创建文档。)最值得注意的是,通常不会将其他“支持”材料上传到 CTAN,特别是测试文件,它们也是“开发者”文件的一部分。

人们可以争论 CTAN 的“哲学”目标,但广义上它一直都是关于文件的用户. 附加材料开发商从来没有真正去过那里。(例如,pdfTeX 的源代码,ETC。,不在 CTAN 上。)从历史上看,用户会使用.dtx/ins对来安装包:今天,几乎所有人都使用 TeX Live/MiKTeX,两者都不需要构建脚本。少数“自行安装”用户要么熟悉传统路线,要么可以通过 TDS 样式的 zip 支持更复杂的包。

如今,几乎所有正在积极开发的代码都具有某种形式的公共源代码控制。习惯使用构建脚本进行“本地安装”的用户可能也习惯使用 Git 或 SVN 签出。无论如何,这让他们可以获得最新的代码,而不一定一定是 CTAN 所拥有的。

答案2

正如 Joseph 所写,build.lua 和 makefile 是用于开发,而不是用于 CTAN(出于这个原因,我刚刚从 luaotfload 上传中删除了 makefile)。它们可能包含不适合普通用户安装的代码和设置,例如对本地工具或特定位置的调用。

build.lua作为包中的一个例子,lualibs目标install“安装”了 luaotfload 存储库中的文件。这使我可以轻松地使用luaotfload同步的 lualibs 文件运行在线测试。将 build.lua 的内容限制为在普通用户设置中有意义的设置会相当麻烦。

答案3

大多数 l3build 脚本在某种程度上与测试框架相关,并且通常不会将测试文件发送到 ctan。任何想要通过 l3build 安装的人最好从 GitHub 等源存储库获取,而不是从 ctan 获取。“等待” ctan 上传到达 texlive 通常只需一天左右,因此基本上没有人应该从 Ctan 安装文件。

相关内容