TouchQ 的提交记录里,有一句话出现了八次:UI FIXED。

其中四次写成了 UI FIFXED,都是 11 月 7 号一天里提交的,到 13 号才改对。自己写的提交说明,自己大概也没回头看过。

TouchQ 是一个 QQ 的第三方客户端,Electron 加 Vue 2,有亮暗两套主题,前两版后端接的是 go-cqhttp 和 Koishi。仓库是 2021 年 10 月 5 号开的,最后一次提交在 11 月 28 号,一共五十四天,差不多八周。

第二天

开仓库的第二天,我写了一份贡献指南。

里面有一句:「touchq 处于萌芽阶段,个人开发者的力量是微不足道的。」后面规定了提交说明的写法,前缀加尖括号里的区域,再跟一句具体更新,前缀有 Fix、Feat、Test、Build、Docs、Add、Upd、Change 这几种。PR 十分重要但格式不对的时候,我会 squash,不会 merge,这会影响你的提交数。想让我收别的平台的实现也不行,首要目标是把 OneBot 的一系列配置做完,想要的话请自己 fork。

仓库里的提交署名一共只有两个,都是我,一个是 TalexDreamSoul,一个是 Tds。这份指南是写给还不存在的贡献者的,README 里还提前写好了一句:开发者没有义务解决你的 Issue,这个项目的开源和维护都建立在空闲时间之上。我觉得当时的我是想先把边界划好,免得哪天真有人来了,不知道怎么办。

"微不足道"这个词,两年后我在《迈出第一步》里又用了一次,说的还是自己做的贡献。

指南里还有一句关于设计的:你的设计必须参考项目本身的设计,否则这将会是一场灾难。这大概是我第一次给自己的项目立设计上的规矩。

三个版本

其实 1.0.0 就在开仓库的第一天,那天提交了二十三次。其中一次是 69 个文件,四万五千多行,七成多是两个锁文件和一份 yarn-error.log。真正是我写的在 src 里,九千多行,components/talex 下已经有十八个文件、六千八百多行。八周是仓库的年纪,这些组件大概在开仓库之前就有了。

10 月 30 号是 2.0.0。一个星期之后,我又把"准备更新版本"的那次提交回滚了,接着出了 2.0.0-Lite。从 10 月初到 11 月中旬,我还给自己提过好几个 PR,把 develop 合进 main,编号一直排到 11,自己提,自己合。

11 月 27 号是 3.0.0-Lite,37 个文件,加了三千八百多行,删了一千四百多行。删掉的那部分,七成多在 .vue 文件里,应该就是被推翻的旧界面。加的那部分也没有看上去那么多,一千来行是两份 .old 备份。

说明里写的

2.0.0-Lite 和 3.0.0-Lite 的发版说明,后面都跟着 UI FIXED。至少这两次,说明里写的发版理由就是界面。

前两版的协议那一半是别人的,go-cqhttp 和 Koishi 都不是我写的,大概是想往前走的时候,我能自己动的只有界面吧。components 下那个 talex 目录,后来有三十二个文件,TBubbleButton、TInput、TalexDialog、TalexImgViewer、TMarquee、TipMentioner 都在里面,是我自己的一套小组件。

指南里写设计要参考项目本身,可项目本身的设计,八周里至少换了两回。

不过第三次不全是界面。3.0.0-Lite 那次提交里,TouchQ.js 加了两百多行、删了一百多行,package.json 里多了 oicq,go-cqhttp 和 Koishi 换成了它。说明里还是只有界面那一句,我觉得说明是顺手写的。

收尾

11 月 13 号,README 里多了一行:目前正在研究 mirai 协议,较长一段时间内不会更新。

27 号那一版,README 里的 Koishi 和 go-cqhttp 被划掉了,换成 oicq,mirai 那一行也删了。说好不更新,隔了两个礼拜又发了一版,我自己看着也想笑。

27 号三次提交,28 号一次,全在 develop 上。main 停在 13 号合进去的第 11 个 PR,27 号开的第 12 个没有合。

最后一次提交的说明,还是那句:@Version 3.0.0-Lite (UI FIXED)。