Canary builds are named after the release candidate, so npm ranks them above it
还没有人认领这个 Issue。
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 74/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- shell
- 领域
- build-system, release
调研方向
从根目录的 package.json 和 tools/build.sh 开始,然后跟踪 Canary 构建和带标签的发布构建如何选择版本。根据 npm semver 排序确认最终的包版本,确保 Canary 的排名低于 release candidate,同时带标签的发布保留其标签版本。
由索引模型根据 Issue 内容生成。
描述
ng add @angular/fire@next and ng update @angular/fire@next install a canary, not the release candidate.
When #3674 was merged, 21.0.0-rc.0 was put in package.json, breaking with this repo's previous patterns. #3751 continued this break with 21.0.0-rc.1.
#3709 mitigated the symptom for ng add by writing the exact installed version into the user's package.json. But going back to the old pattern would simplify things further.
Details
- The root
package.jsonversion field holds21.0.0-rc.1, andtools/build.shspecifies each canary by appending-canary.<short sha>to that field.- Every merge to main therefore publishes
21.0.0-rc.1-canary.<sha>, which semver ranks above21.0.0-rc.1, because the middle identifier parses as the text1-canaryand text outranks a number.
- Every merge to main therefore publishes
ng add @angular/fire@nextinstalls a canary, not the release candidate. The Angular CLI resolves the tag, then writes the range^21.0.0-rc.1, and npm resolves that to21.0.0-rc.1-canary.95b3de1.ng update @angular/fire@nextdoes the same, and unlikeng addit leaves a range inpackage.jsonrather than an exact version, so the app can drift again on any later install.- The version field is not what a tagged release publishes.
tools/build.shtakes a tagged release's version from the tag name.- At the
19.0.0-rc.5tag the version field inpackage.jsonread19.0.0, yet the release published to npm from that tag is19.0.0-rc.5. - At the
20.0.1tag the field read20.0.0and the release published to npm is20.0.1.
- At the
- Releases through v20 named canaries after the release itself, for example
19.0.0-canary.<sha>, which ranks below every19.0.0-rc.N.- The release-candidate string first entered the version field in the v21 preparation commit (#3674).
Scope
Build and packaging. It does not remove the 25 canary builds already published on the 21 line, which keep outranking 21.0.0-rc.1 until 21.0.0 ships.
- 主要语言
- TypeScript
- 星标
- 7.8k
- 派生
- 2.2k
- 平均合并
- 3 天 6 小时
- 30 天内合并 PR
- 5
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
angular/angularfire 的其他 Issue
-
comp: schematics type: bug version: current (v17+)
难度 3/5 1-2 天 新手友好度 76/100
angular/angularfire#3768 ·
-
comp: docs type: chore version: current (v17+)
难度 4/5 3-5 天 新手友好度 58/100
angular/angularfire#3764 ·
-
comp: firestore comp: ssr priority: P0 (critical) type: feature version: current (v17+)
angular/angularfire#3757 · 已指派 1 人 ·
-
Six `firebase` entry points have no `@angular/fire` equivalent, so their exports are unreachable 未关闭comp: core type: feature
angular/angularfire#3755 · 已指派 1 人 ·
-
comp: auth comp: ssr comp: zones type: bug
难度 3/5 1-2 天 新手友好度 76/100
angular/angularfire#3748 ·
查看 angular/angularfire 的全部 Issue
相似的 Issue
-
clawsweeper:linked-pr-open clawsweeper:no-new-fix-pr clawsweeper:source-repro impact:message-loss issue-rating: 🦞 diamond lobster maturity:stable P2
难度 2/5 1-3 小时 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 84/100
Eynzof/Hermes-CN-Desktop#616 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
supermomonga/zcode-acp#24 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
growthbook/growthbook#7100 ·
-
triage
难度 1/5 1-3 小时 新手友好度 88/100