修补和测试 expl3 模块的工作流程

修补和测试 expl3 模块的工作流程

假设我想为某个或某些expl3模块编写补丁。据我所知,要测试补丁,我必须执行以下操作:

  1. 编辑模块的.dtx文件;
  2. 运行l3.ins编译(除其他外)expl3-code.tex全部 l3kernel模块;
  3. 包括expl3来自我的主要测试文档的包。

对于编写更复杂的补丁,需要您反复编辑和测试代码,这是繁琐且不切实际的。

理想情况下,我想直接修改.dtx文件并仅将更新后的包包含到主文件中。由于expl3似乎包含所有包,所以这行不通;之后包含单独的包会因定义重复而导致错误。(我在这里的第一个问题已经是如何.sty.dtx文件正确创建文件。)

我的问题是:

  1. 有没有办法expl3在已经加载的包之上有选择地导入包,或者准备一个特殊版本,从各个文件而不是一个大的内核转储中expl3提取代码?.sty

  2. 活跃的 LaTeX3 开发人员的工作流程是怎样的?你们有专门的构建脚本或工具吗?

  3. 除了提到的几个命令之外,是否还有其他调试选项或工具(特别是针对软件包expl3)需要注意interface3.pdf

答案1

过去,我们确实会单独加载所有.sty文件,但加载顺序要求使这个过程变得乏味。单独加载每个文件.sty都会导致版本不匹配的问题。因此,我们已转向使用单个文件。部分原因是它expl3本身非常稳定,因此对它的更改次数通常有限。

对于 的工作expl3,我使用两种工作流程之一,具体取决于细节。对于简单的更改,我只需设置一个包含我想要使用的代码的测试文档,gset而不是new。我在“本地”测试它,然后复制回源并进行必要的调整。因为它无论如何都需要通过测试套件,所以这通常没问题。

对于较大的更改,另一种方法是简单地修改文件.dtx并执行install将其放入我的本地树中,然后再次运行一些“本地”测试。这是使用完成的l3build。再次强调,我们需要在添加新代码之前进行测试,因此总是需要这样做。

相关内容