首页/新闻资讯/正文详情

BiliNote 发版全流程:从 develop 分支到 Chrome / Edge / Firefox 商店上架

发布时间:2026/9/28 3:01:47 来源:云帆数科 栏目:资讯中心
BiliNote 发版全流程:从 develop 分支到 Chrome / Edge / Firefox 商店上架
AI 应用大模型RAG语音后端前端桌面应用【免费下载链接】BiliNoteAI 视频笔记生成工具 让 AI 为你的视频做笔记项目地址https://gitcode.com/gh_mirrors/bi/BiliNote点击查看免费下载本篇是 BiliNote 开源仓库的发版执行手册Release Manager 视角完整覆盖从develop分支切出发布分支、编写 CHANGELOG、双 PR 合并与回灌、打 tag 触发 CI 自动构建插件产物到人工上传 Chrome Web Store / Edge Add-ons / Firefox AMO 以及桌面端Tauri发布的每一步。读完你不仅能按步复现一次完整发版还能理解release-extension.yml、commitlint 等仓库基础设施如何在底层约束和自动化这条发布链路。发版全景一条主线三类交付物BiliNote 采用简化 Git Flow详见 CONTRIBUTING.md发版主线固定在develop → release/X.Y.Z → master → tag这条路径上。RELEASING.md 给出的完整流程如下develop ──→ release/X.Y.Z ──→ PR ─→ master ──→ 打 tag vX.Y.Z │ │ │ └──→ PR 回灌 ──→ develop └──→ CI 自动构建插件产物 挂到 GitHub Release ↓ 人工上传商店Chrome/Edge/Firefox一次发版最终产出三类交付物浏览器插件由 push tag 触发的 CI 构建出.zip/.xpi/.crx并挂到对应 GitHub Release、桌面端安装包Tauri 构建同样由v*tag 触发以及人工提交商店审核Chrome / Edge / Firefox 三商店审核周期普遍 1-3 个工作日。第一步从 develop 切发布分支在本地终端执行git checkout develop git pull origin develop git checkout -b release/X.Y.Z版本号遵循SemVer 语义化版本规范MAJOR.MINOR.PATCH。与之对应的分支命名规范在 CONTRIBUTING.md 中有明确约定release/版本号必须与实际 tag 一致如release/2.1.0↔v2.1.0全小写、用中划线连接。仓库的简化 Git Flow 中release/*是短生命周期分支创建来源develop合并去向masterdevelop合并后删除它的定位是版本冻结、回归、发版准备——冻结期内不允许再合入新需求只允许修复发布缺陷。第二步写 CHANGELOG、更新版本号在release/X.Y.Z分支上完成三处文档更新编辑 CHANGELOG.md在文件头部新增## [X.Y.Z] - YYYY-MM-DD段。仓库明确采用 Keep a Changelog 分类体系Added / Changed / Fixed / Removed / Security / Internal。实际仓库中的写法可参考 CHANGELOG.md例如## [2.4.4] - 2026-06-23下挂### Security[2.4.3]下挂### Fixed每条变更都带 issue 编号与具体说明。编辑 README.md 顶部标题中的版本号并新增「vX.Y.Z 新增」摘要段与 CHANGELOG 中该版本新增内容对应仓库历史如### v2.3.0 新增段即是此类摘要。重大变更同步更新 CLAUDE.md仓库结构 各 workspace 开发命令说明涉及工作区级重大调整时更新。随后提交并推送git commit -am docs: vX.Y.Z CHANGELOG README 版本 git push -u origin release/X.Y.Z第三步合并 master 回灌 develop双 PR在 GitHub 上发起两个 PR两者合并方式都必须使用 Merge commit--no-ffPRbase合并方式合并后 commit 标题release/X.Y.Z→mastermasterMerge commit (--no-ff)chore(release): vX.Y.Zrelease/X.Y.Z→developdevelopMerge commit (--no-ff)chore(release): merge release/X.Y.Z back into develop为什么合并标题必须符合 commitlint⚠️ Merge commit 的标题必须符合type(scope): subject格式——仓库的 commitlint 会在 push 到master/develop时校验。历史上用过Release vX.Y.Z这种形式会被 commitlint 报type-empty/subject-empty。这一点有完整的仓库实现支撑根目录的 .commitlintrc.json 基于commitlint/config-conventional把type-enum白名单限定为feat / fix / docs / style / refactor / perf / test / build / ci / chore / ui / revert十二种.github/workflows/commitlint.yml 在develop/master的 push 以及所有 PR 上运行 commitlintfetch-depth: 0以便检查全部提交历史。这也是为什么发版 merge commit 标题统一写成chore(release): ...——chore是合法 type(release)是 scopevX.Y.Z是 subject。分支保护与回灌的意义master分支保护要求review 通过才能合并。回灌develop是为了把发版冻结期内的小修同步回开发主干避免修复丢失。CONTRIBUTING.md 中强调release/*合入master与回灌develop均使用 Merge commit保留发版结构而日常feature/*/fix/*合入develop推荐 Squash and merge 以保持历史线性。第四步打 tag触发 CI 自动构建git checkout master git pull origin master git tag -a vX.Y.Z -m BiliNote vX.Y.Z 主线 - ... 详见 CHANGELOG.md git push origin vX.Y.Zpush tag会自动触发 .github/workflows/release-extension.yml构建插件并把.zip/.xpi/.crx挂到对应 GitHub Release。CI 构建链路做了什么对照工作流源码触发与构建细节如下触发条件on.push.tags匹配v*即任何v开头的 tagrelease-extension.yml构建环境ubuntu-latestpnpm固定 9 系、Node 20cache-dependency-path指向BillNote_extension/pnpm-lock.yaml——这两个版本钉死与仓库历史中「pnpm 11 不兼容 Node 20」等构建事故的修复直接相关见 README.md 的 v2.2.1 / v2.2.2 修订记录构建命令pnpm install --frozen-lockfile→pnpm build对应 BillNote_extension/package.json 中的build脚本生产模式依次执行 clear / build:web / build:prepare / build:background / build:js产物打包pnpm pack:zipjszip 打包extension/为extension.zipChrome / Edge 上传格式、pnpm pack:xpiweb-ext 构建 Firefox 扩展、pnpm pack:crx自托管 sideload 用crx 的稳定性说明crx 需要稳定key.pem才能保持插件 ID 不变。CI 中没有该密钥时用continue-on-error: true跳过、不阻塞主流程若想生成稳定 crx需把 key 存入 secretEXTENSION_CRX_KEY并解开工作流中的注释release-extension.yml命名与挂载把extension.zip/.xpi/.crx重命名为bilinote-extension-${VERSION}.zip等带版本后缀的产物再由softprops/action-gh-releasev2挂到对应 Releasefail_on_unmatched_files: false缺某类产物不报错。桌面端同样由v*tag 触发.github/workflows/main.yml构建时从 tag 注入版本号到tauri.conf.jsongithub.ref_name去掉前缀v如v2.3.2→2.3.2确保产物版本与 Release 版本对齐——这一步对应 CHANGELOG 中「桌面端构建产物版本恒为 2.0.0」的修复CHANGELOG.md。第五步创建 GitHub Release如还没有CI 默认会创建 / 更新vX.Y.Z对应的 Release。如果你想自己撰写 release notes打开 GitHub 仓库的 Releases → New 页面Tag 选择vX.Y.ZTitle 填vX.Y.ZBody 直接粘贴 CHANGELOG.md 中对应版本的段落CI 跑完后Release 页面会自动出现bilinote-extension-X.Y.Z.zip/.xpi/.crx产物。第六步人工上传各商店商店审核普遍 1-3 个工作日。建议顺序先 Chrome → Edge → FirefoxEdge 接受与 Chrome 同一份 zip。Chrome Web Store进入 Chrome Web Store 开发者控制台选 BiliNote → 左侧Package→Upload new package上传bilinote-extension-X.Y.Z.zip检查 listing描述 / 图标 / 截图无变化可保持点Submit for review。Microsoft Edge Add-ons进入 Microsoft Partner Center 的 Edge 插件仪表盘选 BiliNote →New submission上传同一份.zipEdge Add-ons 与 Chrome 完全兼容 MV3提交审核。Firefox Add-ons (AMO)进入 addons.mozilla.org 的开发者后台选 BiliNote →Upload New Version上传bilinote-extension-X.Y.Z.xpi选择「在 AMO 公开」或「自托管」提交审核。桌面端 (Tauri)仓库已有 GitHub Actions 在v*tag 时构建桌面端安装包并自动挂到 GitHub Release无需额外操作。main.yml会收集.dmg/.msi/ NSIS.exe安装包并上传main.yml。第七步清理 release 分支# release 分支已合到 master 与 develop删掉 git push origin --delete release/X.Y.Z git branch -d release/X.Y.Z这符合 CONTRIBUTING.md 的合并规范短期分支合并完成后必须删除远端 本地已完成的分支不得继续承接新需求。可选配置 secrets 实现商店自动发布.github/workflows/release-extension.yml 末尾有三段商店自动发布的 job 注释publish-chrome/publish-edge/publish-firefox默认禁用。要启用在 GitHub 仓库 Settings → Secrets and variables → Actions 中添加对应 secrets商店需要的 secretChromeCHROME_EXTENSION_ID、CHROME_CLIENT_ID、CHROME_CLIENT_SECRET、CHROME_REFRESH_TOKENEdgeEDGE_PRODUCT_ID、EDGE_CLIENT_ID、EDGE_API_KEYFirefoxFIREFOX_ADDON_UUID、FIREFOX_API_KEY、FIREFOX_API_SECRET解开工作流文件末尾publish-chrome/publish-edge/publish-firefox三个 job 的注释之后 push tag 时即自动发布到商店。工作流注释中还给出了各商店 secret 的获取方式指引Chrome 参照 chrome-webstore-upload-cli 的 Google API key 生成说明需CHROME_CLIENT_ID/CHROME_CLIENT_SECRET/CHROME_REFRESH_TOKEN对应 OAuth 客户端与刷新令牌Edge 使用 Edge Add-ons APIEDGE_PRODUCT_ID即插件 product IDEDGE_CLIENT_ID/EDGE_API_KEY为 Azure 应用凭证Firefox 在 AMO 开发者后台的 API Key 页面生成。三个 job 分别基于mnao305/chrome-extension-upload、wdzeng/edge-addon、trmcnvn/firefox-addon三个 GitHub Action 实现产物路径均指向带版本号的bilinote-extension-${github.ref_name}.zip/.xpi。紧急 hotfix 发版不走 release/走 hotfix/线上紧急问题不经过release/*分支git checkout master git pull git checkout -b hotfix/scope-事项 # … 修复 ... # PR basemaster 合入同时 PR basedevelop 回灌合入master后通常打patch tag如v2.1.1CI 流程与常规发版相同。CONTRIBUTING.md 对 hotfix 的约束包括仅处理线上阻断性 / 高优先级缺陷非紧急问题不得绕过develop直接走热修若当前存在release/*即将发布需评估是否同步到对应 release 分支避免修复丢失。历史发布快查VersionDateTag2.1.02026-05-07v2.1.02.0.0(上游 web 端 v2.0.0)v2.0.0注表格中的 Tag 指向 GitHub Releases 页面可在仓库 Releases 板块查看对应版本的说明与产物。该表为发版手册中的历史记录最新版本信息以 CHANGELOG.md 顶部与 README.md 标题版本号为准。附发版涉及的仓库文件速查文件作用RELEASING.md本发版手册面向 Release ManagerCONTRIBUTING.md分支模型、提交规范、合并规范发版流程的上游约定CHANGELOG.mdKeep a Changelog 格式的版本变更记录.commitlintrc.jsoncommitlint 规则type 白名单等.github/workflows/commitlint.ymlpush 到 master/develop 与 PR 时的提交信息校验.github/workflows/release-extension.ymlv*tag 触发的插件构建 产物挂 Release含注释的商店自动发布 job.github/workflows/main.yml桌面端 Tauri 构建 版本号注入 安装包挂 ReleaseBillNote_extension/package.json插件build/pack:zip/pack:xpi/pack:crx打包脚本整套发版流程的本质是用「简化 Git Flow 的分支纪律 commitlint 的提交规范强制 tag 触发的工作流自动化」把一次发布固化为可重复、可审计、可回滚的标准动作文档与版本号先行双 PR 保证主干与开发线同步tag 一打插件与桌面端产物自动就绪剩下的只有三商店的人工审核环节。赞分享AI 应用大模型RAG语音后端前端桌面应用【免费下载链接】BiliNoteAI 视频笔记生成工具 让 AI 为你的视频做笔记项目地址https://gitcode.com/gh_mirrors/bi/BiliNote点击查看免费下载相关推荐终极指南ChatGPT Google Extension一键发布到Chrome与Firefox商店的完整流程终极指南ChatGPT Google Extension一键发布到Chrome与Firefox商店的完整流程 ChatGPT Google ExtensionWebChatGPT扩展终极上架指南Chrome、Firefox和Edge商店完整策略WebChatGPT扩展终极上架指南Chrome、Firefox和Edge商店完整策略 WebChatGPT是一款革命性的浏览器扩展它让ChatGPT拥有了NoneBot2插件发布指南从开发到商店上架全流程NoneBot2插件发布指南从开发到商店上架全流程 前言 NoneBot2作为一款优秀的Python异步机器人框架其插件生态是其强大功能的核心支撑。本文将详后端即时通讯上一篇Workflow开源审批系统5分钟构建企业级流程管理平台下一篇如何扩展Kimera-Semantics支持新的传感器深度相机、激光雷达集成指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Arkime 高吞吐抓包实战:Myricom SNF Reader 插件配置与原理全解析
Arkime 高吞吐抓包实战:Myricom SNF Reader 插件配置与原理全解析

网络安全网络后端数据可视化 【免费下载链接】arkime Arkime is an open source, large scale, full packet capturing, indexing, and database system. 项目地址: https://gitcode.com/gh_mirrors/ar/arkime 点击查看 免费下载 导读 本文聚焦 Arkime&#xff08… · 2026/9/28 3:01:47

js-IPFS 的 IPLD Codecs 完全指南:区块编解码器、Multihash 与 Multibase 的配置与扩展
js-IPFS 的 IPLD Codecs 完全指南:区块编解码器、Multihash 与 Multibase 的配置与扩展

存储网络通信 【免费下载链接】js-ipfs IPFS implementation in JavaScript 项目地址: https://gitcode.com/gh_mirrors/js/js-ipfs 点击查看 免费下载 js-IPFS 使用 IPLD(InterPlanetary Linked Data)作为其内容寻址数据模型,仓… · 2026/9/28 3:01:47

FastLED 新 MCU 平台移植实战指南:从平台检测、外设验证到 LED 驱动的完整流程
FastLED 新 MCU 平台移植实战指南:从平台检测、外设验证到 LED 驱动的完整流程

嵌入式物联网硬件开发驱动开发 【免费下载链接】FastLED The FastLED library for colored LED animation on Arduino. Please direct questions/requests for help to the FastLED Reddit community: http://fastled.io/r Wed like to use github "issues" just for… · 2026/9/28 3:01:47

Spingboot启动预热的实现
Spingboot启动预热的实现

启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/28 3:40:12

Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment
Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment

文章主要内容总结 本文研究了多模态大语言模型(具体为ChatGPT-4o)利用静态行车记录仪图像进行类人交通场景解读的潜力,重点聚焦与老年司机评估相关的三项任务:交通密度评估、交叉口可见性评估和停车标志识别。这些任务需上下文推理而非简单目标检测。研究采用零样本、少样… · 2026/9/28 3:32:43

Leveraging Large Language Models for Classifying App Users‘ Feedback
Leveraging Large Language Models for Classifying App Users‘ Feedback

文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)解决应用用户反馈分类的挑战,传统方法依赖有监督机器学习,但受限于标注数据集的规模和质量。研究通过三个核心实验评估了4种先进LLMs(GPT-3.5-Turbo、GPT-4o、Flan-T5、Llama3-70b)的性能: LLMs在用户反馈分类中的基… · 2026/9/28 3:32:43

Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...
Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...

文章主要内容总结 本文通过实验评估了大型语言模型(LLMs)在奥地利及欧盟增值税(VAT)法框架下辅助法律决策的能力。研究聚焦于两种提升LLM性能的方法——微调(fine-tuning)和检索增强生成(RAG),并在两类案例中进行验证:一是权威教科书案例,二是税务咨询公司的真实案… · 2026/9/28 3:32:43

学Java别走弯路,这5个方向最吃香
学Java别走弯路,这5个方向最吃香

学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15

AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions
AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions

AlphaAgents相关总结与翻译 一、文章主要内容总结 (一)研究背景与问题 传统股票投资组合管理依赖人类分析师处理海量信息(如财务披露、财报、市场新闻等),存在信息处理效率低、易受认知偏差(如损失厌恶、过度自信)影响的问题,可能错失投资收益机会。尽管AI在数据处理… · 2026/9/28 3:32:08

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码