Skip to content

Commit 2439919

Browse files
committed
docs: add dual marketplace release design
1 parent df3d06b commit 2439919

1 file changed

Lines changed: 55 additions & 0 deletions

File tree

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# DynaSense 双市场发布设计
2+
3+
**目标:** 将当前 `dev` 分支的 DynaSense 首次发布到 Visual Studio Marketplace 与 Open VSX,统一扩展标识为 `hqyyqh.dynasense`,首发版本为 `3.0.6`
4+
5+
## 发布源与版本
6+
7+
- 当前 `dev` HEAD 是唯一发布源。
8+
-`package.json``package-lock.json` 的版本同步提升到 `3.0.6`
9+
- 不复用现有 `dynasense-3.0.5.vsix`;它不包含当前 HEAD 的全部图标改动。
10+
- 从已验证的工作区重新生成唯一的 `dynasense-3.0.6.vsix`,两个市场发布同一个文件,并记录 SHA-256。
11+
12+
## 本地发布门禁
13+
14+
依次执行以下检查,任一失败都中止发布并先修复:
15+
16+
1. 使用锁文件安装依赖。
17+
2. 运行完整测试套件和 TypeScript 编译。
18+
3. 使用 `vsce package` 生成 VSIX。
19+
4. 审计 VSIX 文件清单、扩展标识、版本、入口文件、许可证、图标和关键字数据。
20+
5. 检查包内不存在令牌、开发目录、测试目录或其他明显敏感文件。
21+
22+
## Visual Studio Marketplace
23+
24+
1. 使用 Microsoft 账户进入发布者管理页。
25+
2. 创建或确认发布者 ID `hqyyqh`
26+
3. 创建仅具扩展发布所需权限的 Azure DevOps Personal Access Token;令牌仅在本机发布进程中临时使用。
27+
4. 使用项目内固定版本的 `vsce` 发布已验证的 VSIX。
28+
5. 通过 Marketplace 公开 API 和扩展详情页确认 `hqyyqh.dynasense@3.0.6` 可见。
29+
30+
官方流程:<https://code.visualstudio.com/api/working-with-extensions/publishing-extension>
31+
32+
## Open VSX
33+
34+
1. 登录 Open VSX,并关联 Eclipse 账户。
35+
2. 阅读并接受 Open VSX Publisher Agreement。
36+
3. 创建一次发布所需的 Open VSX 访问令牌。
37+
4. 创建或确认命名空间 `hqyyqh`
38+
5. 使用 `ovsx` 发布与 Marketplace 完全相同的 VSIX。
39+
6. 通过 Open VSX 公开 API 和扩展详情页确认 `hqyyqh.dynasense@3.0.6` 可见。
40+
41+
官方流程:<https://github.com/eclipse/openvsx/wiki/Publishing-Extensions>
42+
43+
## 凭据与外部副作用
44+
45+
- 不把令牌写入源码、配置文件、命令历史、提交或聊天输出。
46+
- 登录、验证码、协议接受和令牌生成页面需要用户在浏览器中完成必要的身份确认。
47+
- 发布动作只针对 `hqyyqh.dynasense@3.0.6`;不覆盖、删除或取消发布其他扩展。
48+
- 若任一市场已存在同版本,先核对其内容与哈希,不进行强制覆盖。
49+
50+
## 发布后验证与监控
51+
52+
- 两个市场都必须返回发布者、扩展名和版本 `3.0.6`
53+
- 验证公开详情页、下载地址和安装标识可用。
54+
- 若市场仍在索引,创建本线程的短间隔心跳检查,持续到两个市场均公开可安装或出现需要人工处理的明确拒绝。
55+
- 最终交付两个市场的公开链接、VSIX SHA-256、验证时间和任何后续维护注意事项。

0 commit comments

Comments
 (0)