From 1fb5ca9475a25e9d9f5b8ada67483a1432c894fd Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Fri, 18 Jul 2025 23:50:02 +0800 Subject: [PATCH] update issue template (#1126) --- .github/ISSUE_TEMPLATE/bug_report.yml | 108 +++++++++++-- .github/ISSUE_TEMPLATE/feature_request.yml | 171 +++++++++++++++++++-- .github/dependabot.yaml | 34 ---- 3 files changed, 251 insertions(+), 62 deletions(-) delete mode 100644 .github/dependabot.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 819a5c7..c549d9b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -23,31 +23,113 @@ body: - type: textarea id: description attributes: - label: 描述问题 / Describe the bug - description: 对 bug 的明确描述。如果条件允许,请包括屏幕截图。 / A clear description of what the bug is. Include screenshots if applicable. - placeholder: 问题描述 / Bug description + label: 问题简要描述 / Brief Description + description: 对问题的简要描述,包括期望的行为和实际发生的情况。 / A brief description of the issue, including expected vs actual behavior. + placeholder: | + 例如:节点 A 无法连接到节点 B,期望能够正常建立连接 + Example: Node A cannot connect to Node B, expected to establish connection normally + validations: + required: true + + - type: textarea + id: environment-info + attributes: + label: 环境信息 / Environment Information + description: 请提供网络拓扑、节点信息和系统环境详情。 / Please provide network topology, node information and system environment details. + placeholder: | + **EasyTier 版本(非常重要)/ EasyTier Version (Very Important):** v1.2.0 + + **网络拓扑 / Network Topology:** + - 节点 A (10.1.1.1): Windows 11 Pro 22H2, Wifi,有 IPV6 地址 + - 节点 B (10.1.1.2): Ubuntu 22.04.3 LTS (Linux 5.15.0-72-generic), 公网 IP + - 节点 C (10.1.1.3): macOS Ventura 13.4.1, 5G 流量,无 IPV6 地址 + + **Network Topology:** + - Node A (10.1.1.1): Windows 11 Pro 22H2, Wifi, has IPV6 address + - Node B (10.1.1.2): Ubuntu 22.04.3 LTS (Linux 5.15.0-72-generic), public IP + - Node C (10.1.1.3): macOS Ventura 13.4.1, 5G traffic, no IPV6 address + validations: + required: true + + - type: textarea + id: node-configs + attributes: + label: 节点配置 / Node Configurations + description: 请提供每个节点的配置文件或启动参数。 / Please provide configuration files or startup parameters for each node. + placeholder: | + **节点 A 配置 / Node A Config:** + ``` + easytier-core --config-file config.toml + ``` + + **节点 B 配置 / Node B Config:** + ``` + easytier-core --ipv4 10.1.1.2 --peers tcp://1.2.3.4:11010 + ``` + + 请贴出完整的配置文件内容或命令行参数 + Please paste complete configuration file contents or command line arguments + validations: + required: true + + - type: textarea + id: logs + attributes: + label: 日志信息 / Log Information + description: 请提供相关的日志信息,包括 GUI 的事件日志或命令行的控制台输出。 / Please provide relevant log information, including GUI event logs or command line console output. + placeholder: | + 请粘贴相关的日志信息: + - GUI 用户:请提供事件日志中的错误信息 + - 命令行用户:请提供控制台输出的详细日志 + - 一般情况下,提供默认输出的事件日志即可 + - 如果能提供 --file-log-level debug 输出的日志,会更方便 debug + + Please paste relevant log information: + - GUI users: Please provide error messages from event logs + - CLI users: Please provide detailed console output logs + - Default log output is usually sufficient + - If possible, logs with --file-log-level debug would be more helpful for debugging + validations: required: true - type: textarea id: reproduction attributes: - label: 重现步骤 / Reproduction - description: 能够重现行为的步骤或指向能够复现的存储库链接。 / A link to a reproduction repo or steps to reproduce the behaviour. + label: 重现步骤 / Reproduction Steps + description: 请提供详细的步骤来重现这个问题。 / Please provide detailed steps to reproduce this issue. placeholder: | - 请提供一个最小化的复现示例或复现步骤,请参考这个指南 https://stackoverflow.com/help/minimal-reproducible-example - Please provide a minimal reproduction or steps to reproduce, see this guide https://stackoverflow.com/help/minimal-reproducible-example - 为什么需要重现(问题)?请参阅这篇文章 https://antfu.me/posts/why-reproductions-are-required - Why reproduction is required? see this article https://antfu.me/posts/why-reproductions-are-required + 1. 启动节点 A,使用配置 xxx / Start Node A with config xxx + 2. 启动节点 B,使用配置 yyy / Start Node B with config yyy + 3. 尝试从节点 A ping 节点 B / Try to ping Node B from Node A + 4. 观察到错误:xxx / Observe error: xxx + + 请提供详细的操作步骤,以便我们能够重现问题 + Please provide detailed steps so we can reproduce the issue + validations: + required: true - type: textarea id: expected-behavior attributes: - label: 预期结果 / Expected behavior + label: 预期结果 / Expected Behavior description: 清楚地描述您期望发生的事情。 / A clear description of what you expected to happen. + placeholder: | + 例如:节点 A 应该能够成功 ping 通节点 B,延迟在 100ms 以内 + Example: Node A should be able to ping Node B successfully with latency under 100ms - type: textarea - id: context + id: additional-context attributes: - label: 额外上下文 / Additional context - description: 在这里添加关于问题的任何其他上下文。 / Add any other context about the problem here. \ No newline at end of file + label: 额外信息 / Additional Context + description: 在这里添加关于问题的任何其他上下文信息。 / Add any other context about the problem here. + placeholder: | + 例如: + - 这个问题是否在特定时间出现? + - 是否有网络环境的特殊配置? + - 是否尝试过其他解决方案? + + Example: + - Does this issue occur at specific times? + - Are there any special network environment configurations? + - Have you tried any other solutions? \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 64d60e9..7c3661a 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -3,36 +3,177 @@ name: 💡 新功能请求 / Feature Request title: '[feat] ' -description: 提出一个想法 / Suggest an idea +description: 提出一个想法 / Suggest an idea labels: ['type: feature request'] body: - - type: textarea - id: problem + - type: markdown attributes: - label: 描述问题 / Describe the problem - description: 明确描述此功能将解决的问题 / A clear description of the problem this feature would solve - placeholder: "我总是在...感觉困惑 / I'm always frustrated when..." + value: | + ## 提交功能请求前请注意 / Before Submitting + 1. 请先搜索 [现有的功能请求](https://github.com/EasyTier/EasyTier/issues?q=is%3Aissue+label%3A%22type%3A+feature+request%22) 确保您的想法尚未被提出。 + 1. Please search [existing feature requests](https://github.com/EasyTier/EasyTier/issues?q=is%3Aissue+label%3A%22type%3A+feature+request%22) to ensure your idea hasn't been suggested already. + 2. 请确保这个功能确实适合 EasyTier 项目的目标和范围。 + 2. Please ensure this feature fits within EasyTier's goals and scope. + 3. 考虑这个功能是否能让更多用户受益,而不只是解决个人需求。 + 3. Consider whether this feature would benefit many users, not just personal needs. + + - type: dropdown + id: feature-category + attributes: + label: 功能类别 / Feature Category + description: 请选择这个功能请求属于哪个类别 / Please select which category this feature request belongs to + options: + - 网络连接 / Network Connectivity + - 安全和加密 / Security & Encryption + - 性能优化 / Performance Optimization + - 用户界面 / User Interface + - 配置管理 / Configuration Management + - 监控和日志 / Monitoring & Logging + - 平台支持 / Platform Support + - API 和集成 / API & Integration + - 其他 / Other validations: required: true - type: textarea - id: solution + id: use-case attributes: - label: "描述您想要的解决方案 / Describe the solution you'd like" - description: 明确说明您希望做出的改变 / A clear description of what change you would like - placeholder: '我希望... / I would like to...' + label: 使用场景 / Use Case + description: 描述您希望这个功能解决的具体使用场景或问题 / Describe the specific use case or problem you want this feature to solve + placeholder: | + 例如: + - 作为企业用户,我需要在多个分支机构之间建立安全的网络连接 + - 作为开发者,我希望能够通过 API 监控网络状态 + - 作为系统管理员,我需要更详细的连接日志来排查问题 + + Example: + - As an enterprise user, I need to establish secure network connections between multiple branch offices + - As a developer, I want to monitor network status through APIs + - As a system administrator, I need more detailed connection logs for troubleshooting validations: required: true + - type: textarea + id: current-limitations + attributes: + label: 当前限制 / Current Limitations + description: 描述当前 EasyTier 的哪些限制阻止了您实现这个使用场景 / Describe what current limitations in EasyTier prevent you from achieving this use case + placeholder: | + 例如: + - 目前不支持基于用户角色的访问控制 + - 缺少对 IPv6 的完整支持 + - 没有提供 REST API 来获取网络状态 + + Example: + - Currently lacks role-based access control + - Missing complete IPv6 support + - No REST API available for network status + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: 建议的解决方案 / Proposed Solution + description: 详细描述您希望添加的功能以及它应该如何工作 / Describe in detail the feature you'd like to add and how it should work + placeholder: | + 请描述: + - 功能的具体实现方式 + - 用户界面或 API 设计 + - 配置选项和参数 + - 与现有功能的集成方式 + + Please describe: + - Specific implementation approach + - User interface or API design + - Configuration options and parameters + - Integration with existing features + validations: + required: true + + - type: textarea + id: benefits + attributes: + label: 预期收益 / Expected Benefits + description: 说明这个功能会带来什么好处,会影响哪些用户群体 / Explain what benefits this feature would bring and which user groups it would affect + placeholder: | + 例如: + - 提高网络连接的稳定性和性能 + - 简化大规模部署的管理复杂度 + - 增强企业用户的安全性需求 + - 降低新用户的学习成本 + + Example: + - Improve network connection stability and performance + - Simplify management complexity for large-scale deployments + - Enhance security requirements for enterprise users + - Reduce learning curve for new users + + - type: textarea + id: technical-considerations + attributes: + label: 技术考虑 / Technical Considerations + description: 如果您了解技术细节,请分享相关的技术考虑或约束 / If you have technical knowledge, please share relevant technical considerations or constraints + placeholder: | + 例如: + - 可能需要修改网络协议栈 + - 需要考虑跨平台兼容性 + - 可能影响现有性能 + - 依赖第三方库或协议 + + Example: + - May require modifications to network protocol stack + - Cross-platform compatibility needs consideration + - Potential impact on existing performance + - Dependencies on third-party libraries or protocols + - type: textarea id: alternatives attributes: - label: 替代方案 / Alternatives considered - description: "您考虑过的任何替代解决方案 / Any alternative solutions you've considered" + label: 备选方案 / Alternative Solutions + description: 您是否考虑过其他解决方案?是否有现有的替代方案? / Have you considered other solutions? Are there existing alternatives? + placeholder: | + 例如: + - 使用第三方工具 X 可以部分解决,但缺少 Y 功能 + - 通过脚本workaround可以实现,但不够优雅 + - 其他类似项目 Z 有这个功能,可以参考其实现 + + Example: + - Third-party tool X can partially solve this, but lacks Y functionality + - Can be achieved through script workarounds, but not elegant + - Similar project Z has this feature, could reference its implementation - type: textarea - id: context + id: implementation-priority attributes: - label: 额外上下文 / Additional context - description: 在此处添加有关问题的任何其他上下文。 / Add any other context about the problem here. \ No newline at end of file + label: 实现优先级 / Implementation Priority + description: 这个功能对您有多重要?是否有时间要求? / How important is this feature to you? Any time requirements? + placeholder: | + 例如: + - 高优先级:阻碍了我们的生产部署 + - 中优先级:会显著改善用户体验 + - 低优先级:锦上添花的功能 + + Example: + - High priority: Blocking our production deployment + - Medium priority: Would significantly improve user experience + - Low priority: Nice-to-have feature + + - type: textarea + id: additional-context + attributes: + label: 补充信息 / Additional Context + description: 添加任何其他相关信息,如截图、链接、参考资料等 / Add any other relevant information such as screenshots, links, or references + placeholder: | + 例如: + - 相关的 RFC 或技术规范 + - 其他项目的实现示例 + - 用户调研或反馈数据 + - 设计草图或流程图 + + Example: + - Relevant RFCs or technical specifications + - Implementation examples from other projects + - User research or feedback data + - Design sketches or flowcharts \ No newline at end of file diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml deleted file mode 100644 index d42255d..0000000 --- a/.github/dependabot.yaml +++ /dev/null @@ -1,34 +0,0 @@ -# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference#package-ecosystem- - -version: 2 -updates: - # cargo updates are considered unstable without greater CI coverage - - package-ecosystem: gradle - directories: - - "easytier-gui/src-tauri/gen/android" - - "easytier-gui/src-tauri/gen/android/app" - - "easytier-gui/src-tauri/gen/android/buildSrc" - - "tauri-plugin-vpnservice/android" - schedule: - interval: weekly - - package-ecosystem: npm - directories: - - "/" - - "easytier-gui" - - "easytier-web/frontend" - - "easytier-web/frontend-lib" - - "tauri-plugin-vpnservice" - schedule: - interval: weekly - - package-ecosystem: docker - directory: ".github/workflows" - schedule: - interval: weekly - - package-ecosystem: github-actions - directory: "/" - schedule: - interval: weekly - - package-ecosystem: swift - directory: "tauri-plugin-vpnservice/ios" - schedule: - interval: weekly