参与贡献
与仓库 CONTRIBUTING.md 保持一致 · 内容以仓库文件为权威源
感谢你对 EasySSH 的关注!EasySSH 是一款 Windows 绿色版 SSH/SFTP 终端(Electron + xterm.js + ssh2 + iconv-lite,纯开源组件),代码 100% 原创。
# 如何提交 Issue
- 提交前请先搜索现有 Issue,避免重复。
- 请包含以下信息:
- EasySSH 版本号(界面标题栏可见,如 2.3.2)
- Windows 版本与系统架构(如 Windows 11 x64)
- 复现步骤与预期/实际行为
- 相关错误信息(连接失败提示、
%TEMP%\easyssh-debug.log调试日志片段等)
- 安全漏洞不要通过 Issue 公开报告,请阅读 SECURITY。
# 如何提交 Pull Request
- Fork 仓库并创建功能分支(如
feat/sftp-drag-upload)。 - 保持改动聚焦:一个 PR 只解决一个问题。
- 提交前请本机运行验证:
npm start手动测试核心流程(连接、SFTP、设置)。 - 不要修改应用代码之外的部署产物(release/、dist/ 目录内容勿直接提交)。
- 若改动涉及用户可见功能,必须同步更新 README「版本更新历史记录」(见下文「版本发布流程」)。
# 开发环境搭建
Node.js ≥ 18,Windows x64 环境(产物为 Windows 绿色版)。
git clone <仓库地址> cd EasySSH npm install npm start # 本机调试运行 npm run build:exe # 构建 release/EasySSH-<version>.exe 单文件绿色版 npm run package:win # 备用:electron-packager 文件夹版输出到 dist/
# 代码规范
- JavaScript 遵循现有代码风格:2 空格缩进、单引号、分号结尾;与 main.js / preload.js / renderer.js 现状保持一致。
- 主进程(main.js)与渲染进程(renderer.js)职责清晰,IPC 通过 preload.js 暴露的受控接口进行。
- 新增第三方依赖必须是开源组件,并在 README/文档中说明用途。
- 面向用户的提示文案使用中文;代码注释使用中文。
- 不引入外部网络请求(零 CDN 依赖原则)。
# 提交信息规范
采用 类型: 简述 格式,简述使用中文,一句话说清改动内容。常用类型前缀:
feat:新功能(如feat: SFTP 支持文本转换传输模式)fix:缺陷修复(如fix: 修复 PKCS#8 私钥无法解析的问题)docs:文档变更 ·style:样式/界面调整 ·refactor:重构 ·chore:构建、依赖等杂项
# 版本发布流程(重要)
每次发布新版本必须完整执行以下步骤:
- 更新版本号:修改 package.json 的 version 字段(产物文件名由 electron-builder 按
${version}生成)。 - 更新 README「版本更新历史记录」:新增
### v<版本号> (<日期>)条目,逐条列出新增/修复内容。README 是版本历史的权威源。 - 构建产物:
npm run build:exe生成release/EasySSH-<version>.exe;npm run package:win生成文件夹版(用于 zip 解压版)。产物文件名必须带版本号。 - 提交与打标签:README 历史、package.json 版本号与产物变更一并提交,建议打
v<version>标签。 - 网站自动同步:
tools/sync.js自动解析 README 历史条目、扫描产物、校验 sha256 后拷贝并重新生成 site-data.json,官网无需手工干预即自动展示新版本。 - CHANGELOG.md 由 README 历史生成(以 README 为权威源)。