接續前一篇。
Mike 在 SPDX License List 這邊提出的問題則是,為什麼會有 Vim 要替換,但是 Vim Maintainer 不要替換這樣特別的情形,所以我就是認真的解釋,並且說明這是跟原作者 Bram 確認過的細節並附上討論,還有舉我前面提過那個最極端的例子,然後我猜最重要的是現實世界有沒有人這樣使用過,還好我還真的找到幾個專案有認真的把條款內的 Vim 替換掉(當然是連 Vim Maintainer 也換掉了),像是 Tagbar;我的 PR 是 2019/07/11 提的,然後一直來回到 9/25 回了最後一個回應之後就沒人回我了,之後到了 10/19 就突然被合併了(其實 SPDX 有定期的會議,應該是在其中有討論過要不要合併這個 PR 吧),接著等到 2020 一月我發了 PR 到 choosealicense 把 vim.txt 加進去,這次就蠻順利就合併了。
解決了上游問題,回到 Licensee 偵測的問題,我本來的 PR 沒被合併,而是 Mike 另外弄了一個比較通用的解法,是根據條款文本內的替換字串來動態調整差異的容許範圍,然後接著 2020/03/13,Licensee 9.13.1 作為第一版支援 Vim License 的 Licensee 發佈了,接下來,我理論上就只要等 GitHub 更新 Licensee 的版本就好了,這我倒是不太擔心,我是有種感覺 GitHub 是有在認真更新這些東西的,然後,時間快轉到三個月後,這段期間其實我都有偶爾上去 GitHub 看一下 Vim License 有沒有被偵測出來,想著要是終於完成的話就可以投個稿了,當時的時間大概是搞了三年這樣,總之因為過有點久了,我又去拉了最新版 Licensee 來測試,結果讓我嚇了一跳,竟然偵測不出來了!
所以我又花時間下去查原因,結果是 2020/05/12 的 9.14 開始爛掉的,Mike 在 9.14 有修改一部分的演算法,在比對兩份文件時,因為有替換字串的關係,不可能用完全比對的方式,所以在有替換字串時,文件的長度差異會影響相似度,有個動態的max_delta,如果替換字串後長度差異太大超過max_delta的話,就會被判定為不同的文件,在 9.14