[WIP] About contribution guideline and clean DLC #259
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
注意
WIP,请各位贡献者在此 PR 完成之前,不要按照以下内容对 DLC 进行修改编辑。
关于包含过少规则的列表文件
以下是截止 16abfd4 所有列表文件行数的统计 (
wc -l * | sort -n
) :单个列表文件所包含的规则条数分别为(仅记录了 ≤10 条的列表文件):
其中,单个列表文件中所包含的规则条数仅为 1 的列表多达 374 个。
这些仅包含 1 条规则的列表文件不但没有为
geolocation-cn
或其他categorys
减轻维护负担,反而影响了维护。单独为几条规则创建一个新的列表文件并不能有效减少
geolocation-cn
的规则条数,因为你还需要include: NAME
。按照以上的统计信息,我建议所包含规则条数小于 5 的公司/组织不要为其创建单独的列表文件。
关于重复规则的处理
以下是截止 16abfd4 的重复规则 (
sort * | uniq -dc
) :目前由于本项目缺乏 CI 自动检查重复规则,且贡献者有时没有检查自己所添加的规则是否已存在。
也有上述包含过少规则的列表文件的原因,规则零散的分布在各个列表文件,不便于检查。
导致时常会出现同一条规则被两个甚至多个列表文件所包含。
在此之前我已经清理过两次重复规则了。在本项目拥有 CI 自动检查之前,建议各位贡献者在提交之前,运行一次:
检查自己新添加的规则是否已存在于其他列表。
关于列表文件分级
目前的列表文件层次非常混乱,列表文件互相嵌套,非常不利于编辑和维护。
以这里给出的结构来分级:
geolocation-cn
或category-ads
。include
。include
二级列表。include
规则且必须带上@attr
属性。google
或alibaba
。include
任何列表。@attr
。other
需要修改
main.go
以支持include:name@attr
。由于一条规则可以同时拥有多个
@attr
属性,这样分级可以充分利用@attr
属性,同一公司/组织的规则不需要以分类拆分成多个列表文件。完全避免了列表文件中重复或嵌套的
include
,大大减轻维护难度。并且此更改不会影响到
v2ray-core
对 DLC 的使用。