Skip to content

Latest commit

 

History

History
111 lines (69 loc) · 4.89 KB

DEVELOPMENT.md

File metadata and controls

111 lines (69 loc) · 4.89 KB

开发者指南

Tip

本项目采用 GitHub Projects 进行任务管理。 你可以每次选择其中的一个小的 TODO 进行开发;来帮助项目一点一点前进。

本地开发

一般开发需求分为三种:

  • 修改 templates/ 中某个模板

    例:改进ref.bib中的示例,在 main.tex 中补充注释。

  • 修改 bithesis.dtx 文件

    例:添加新命令,更改 \BITSetup 选项。

  • 修改其他文件。

Tip

Windows 开发者若运行 Makefile 遇到问题,请参考后文

修改 templates/ 中某个模板

如果改动仅仅涉及某个模板,那么相对简单一些:

  1. 初次开发前,运行 make copy,这会生成 *.cls 等并更新到 templates/ 下。
  2. 编辑模板。
  3. 测试,确保你的改动能够正确编译;并且不会影响到其他效果。

修改 bithesis.dtx 文件

  1. 编辑 bithesis.dtx
  2. 运行 make copy,这会生成新的 *.cls 并更新到 templates/ 下。
  3. 更新文档(bithesis-doc.tex 以及 bithesis.dtx 中的注释),然后运行 make doc 编译出手册bithesis.pdf
  4. 测试,确保你的改动不会影响到其他功能。

Tip

如果要添加新命令,可以先在 templates/ 中具体实现,再拷贝到 bithesis.dtx

参考资料

Makefile 的进一步介绍

Windows

Makefile 主要针对 Linux 和 macOS 开发者;Windows 开发者要确保至少有:

当然,也欢迎你贡献更通用的开发脚本。

辅助命令

我们常常需要实时预览代码编译的效果,而 LaTeX 本身没有提供实时编译的功能,导致我们要来回运行 make copylatexmk

为此 Makefile 提供了一些辅助命令,以 dev-开头,可以帮助你自动化以上流程。

或者你可以使用类似 rg --files | entr make copy 以及 rg --files | entr latexmk 来达到 「代码修改后立即重新编译」的效果。

(这些命令未必适用于 Windows,可能要手动用 watchexec 等替代。)

单元测试和回归测试

运行 make test 将对所有的模板进行编译测试(同样被用于 GitHub Actions)。

运行 make regression-test 进行回归测试,该命令将比较目前已发布的最新版本和本地版本生成的 PDF 的差异。 使用前请确保已经安装下面这些依赖。

打包

  • make overleaf version=X.X.X 可以生成上传 overleaf 所需要的 zip 文件。
  • make pkg 可以生成上传 CTAN 所需要的 zip 文件。若已有手册而不想重新编译,可 make pkg-only。(同样被用于 GitHub Actions)
  • make grad version=X.X.X 可以生成用作研究生院官网附件的 zip 文件。

上传 Overleaf 与更新

Note

Overleaf 链接已利用 overleaf.com/docs API 自动指向最新发布版,不再需要手动更新。

首先运行 make overleaf 打包文件。

  1. 打开 Overleaf,点击左上角 New Projects > Upload Projects ,然后上传 zip 文件。
  2. 点击 Menu > Compiler 选择 XeLaTeX,然后重新编译。
  3. 修改项目名称,以便于区分。(我一般加上 BIThesis-
  4. 点击 Share > Turn on link sharing,复制 read 权限的链接。
  5. BIThesis-wiki 项目的 wiki/guide/preface.md 中,更新链接。

Release 工作流

在一定量改进和新功能添加以后,需要开始着手发布新的版本。

版本号:参考 Semantic Versioning 2.0.0 | Semantic Versioning

Release Workflow

上周展示了完整工作流,其中大部分已自动化,只需要手动触发。