王一之 发表于 2023-3-25 02:35:16

脚本库支持约束范围

你是不是遇到每次库作者发布脚本后都要再次更新自己的脚本代码?
你是不是苦恼每次库作者发布破坏性更新后需要重新调试修复兼容脚本?
你是不是难受每次发布库时不知如何命名版本?

现在,脚本站允许接受约束范围表达式啦,库作者可以遵循(https://semver.org/lang/zh-CN/)发布脚本,引用者使用约束表达式指定某一个范围。

## 库作者
库作者只需要关注发布版本,库版本使用x.y.z的方式命名,当修改内容只有bug修复时只增加z,例如:1.0.0->1.0.1

当修改内容包含功能新增时,增加y并重置z,例如:1.0.1->1.1.0

当修改内容包含破坏性(无法向下兼容)修改时,增加x,并重制y.z,例如:1.1.0->2.0.0

## 引用者
引用者只需要关注引用的版本,一般来说,只要不有破坏性的内容,都可以接受,常用的约束表达式有:

### 关注修复版本(补丁)
使用`~`来,只关注修复版本,例如

- ~1.2.3 含义 >=1.2.3,< 1.3.0
- ~1 含义 >=1,<2
- ~1.2 含义 >=1.2,<1.3


### 关注非破坏性版本(主要)
使用`^`来,只关注非破坏性版本,但在1.0.0之前y充当主要版本,现脚本站库脚本已设置默认该版本,例如:

- ^1.2.3 含义 >=1.2.3,<2.0.0
- ^0.2.3 和 >=0.2.3 <0.3.0 等价

### 范围表达式
也可以指定版本范围:

- \>=1.2.3,< 1.3.0
- \>=1.2.3,<2.0.0
- 1.2.x 含义 >=1.2.0,<1.3.0

cxxjackie 发表于 2023-3-25 21:31:19

我发库还是遵循一个“非必要不更新”的原则,所以每次更新都会堆积较多内容,版本号不太好写,按规范来可能会出现1.0.1直接跳到2.0这种情况。我个人更支持明确版本号的做法,模糊规则除了安全问题,新版本也可能引入新bug,造成旧代码出问题,排查起来很麻烦。

王一之 发表于 2023-3-25 21:40:38

cxxjackie 发表于 2023-3-25 21:31
我发库还是遵循一个“非必要不更新”的原则,所以每次更新都会堆积较多内容,版本号不太好写,按规范来可能 ...

思考了一下,确实明确版本会好一些,毕竟不是所有人都会按照规范来,把脚本站默认还是修改为了指定版本

另外,哥哥每次更新难道都是破坏性的更新(修改了函数签名,不兼容老代码)?

wjy0 发表于 2023-3-26 00:16:26

可以发布加密混淆脚本吗

王一之 发表于 2023-3-26 01:15:29

wjy0 发表于 2023-3-26 00:16
可以发布加密混淆脚本吗
需要发布在危险区,并提供代码审核

https://bbs.tampermonkey.net.cn/forum-88-1.html

规则参考:脚本站审核规则V0.2-油猴中文网 (tampermonkey.net.cn)

BlenderB 发表于 2023-3-26 16:28:58

没用过库,我想请问下,大概意思是,只要我引用了库的XXX版本范围,库作者更新了,我能自动更新吗?例如:1.0.0->1.0.1

cxxjackie 发表于 2023-3-26 21:17:31

王一之 发表于 2023-3-25 21:40
思考了一下,确实明确版本会好一些,毕竟不是所有人都会按照规范来,把脚本站默认还是修改为了指定版本

...

那倒不是,只是我库更新一般都有新增,纯bug修复的很少,所以小版本号增加的情况很少。

王一之 发表于 2023-3-26 21:34:20

cxxjackie 发表于 2023-3-26 21:17
那倒不是,只是我库更新一般都有新增,纯bug修复的很少,所以小版本号增加的情况很少。 ...

那加第二位就好了,新增情况确实很多

王一之 发表于 2023-3-26 21:35:32

BlenderB 发表于 2023-3-26 16:28
没用过库,我想请问下,大概意思是,只要我引用了库的XXX版本范围,库作者更新了,我能自动更新吗?例如:1 ...

对的

BlenderB 发表于 2023-3-27 09:10:33

王一之 发表于 2023-3-26 21:35
对的

{:4_94:}666,有机会创建一个试试
页: [1] 2
查看完整版本: 脚本库支持约束范围