`nx release`: 与独立项目关系的回归
当前的行为
自从v22'以来,我在独立项目的nx发布'期间面临许多倒退。
审议如下:
项目/
- 丽巴
- 文件A.ts
- 套件.json(1.0版)
- 利贝
- package.json(1.0版,音译:libA)
nx.json(项目关系:独立)
读取• 倒退1
- 修改`项目/libA/filesA.ts'
- 以 " feat(A):更改 " 的形式提出修改。
- 运行`nx发布版本-项目=libA-干-运行'
- 扫盲教育的成果版本为
1.0.1'(而不是1.1.0')。
这是由于:
https://GitHub.com/nrwl/nx/blob/a15881db1a12cc2e2ddd0000f7aa576f4606a410a/packages/nx/src/command-line/release/utils/semver.ts#L43-L48
现在有一个Contig.use CommitScope'是默认的真实'。
而扩大项目承诺'显然是虚假'的,因为其范围是A'(而不是libA')。
这显然是一个突破性的变化 在v22,我可能错了... ...
幸运的是, https://GitHub.com/nrwl/nx/issues/33686 (英语). https://GitHub.com/nrwl/nx/pull/33382 (英语).
> 修补
使用"nx.json#放行". Conventional Committs.use ConmitScope: false".
但是,在默认情况下使这个配置成真,对我来说似乎不是正确的想法.
后退 2
- 对`README.md'作出修改
- 将修改作为`任务:更新读取'
- 运行`nx发布-干-运行'版本
- " libA " 和 " libB " 将出现一个版本起落。
这也是v22的突破性变化. 修改非项目文件不应影响发布期间的项目.
v22 之前已过滤出非工程文件, 但此部分已被删除 : https://GitHub.com/nrwl/nx/pull/32915.files#diff-8eb063679cb409022dbf351f7017d1b49fd1e643ac0150b6d0669a475bbc5c65L364-L366
> 临时固定
和以前一样过滤非项目文件 。
现在, " libA " 和 " libB " 都不再引起释放。
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你来干什么? / 将受影响的文件转换为文件 Change 格式, 并进行适当的 diff 计算 let touch Files = (0, 文件 utils 1. 计算FileChanges) (承诺. 受影响的) 文件,{ 基础:`${承诺.shortHash}, 头部: 投入.shortHash,
- ;
- const { fileMap} = 等待创建 FileMapUsing ProjectGraph(项目Graph);
- 被触摸的Files = 被触摸的Files.filter(tf QQ!!fileMap.nonProjectFiles.some(npf QQnpf.f.file QQtf.f.file));
// 使用与“ nx 受影响” 相同的受影响检测逻辑 const 受影响的Graph = 等待 (0, 受影响的 project graph 1. filter 受影响的) (projectGraph, 有触摸的Files );
由于v22,项目的相关承付额的计算方法是以`nx受影响 ' 为依据,而不是以该承付额所触碰的文件为依据。 这种改变可能有很好的理由,但它显然给独立项目带来了倒退。
1. 修改`项目/libA/filesA.ts'
2. 以 " feat(A):更改 " 的形式提出修改。
3. 运行`nx发布版本-项目=libB-干-运行'
4. LibB的成果版本为`1.1.0'(而不是`1.0.1')
" libB " 的唯一改动应当是:
. . . . . . .内容来源: nrwl/nx