diff --git a/.github/ISSUE_TEMPLATE/01-bug_report.yml b/.github/ISSUE_TEMPLATE/01-bug_report.yml index 06b918ee..6940fcb9 100644 --- a/.github/ISSUE_TEMPLATE/01-bug_report.yml +++ b/.github/ISSUE_TEMPLATE/01-bug_report.yml @@ -1,4 +1,4 @@ -name: 问题反馈 +name: 问题反馈(中文) description: 报告可复现的软件问题,并提供定位所需的环境与数据源信息 title: "[Bug] " labels: ["bug"] @@ -20,8 +20,6 @@ body: required: true - label: 我已经移除或脱敏密码、Token、连接串、私钥和业务数据 required: true - validations: - required: true - type: dropdown id: area diff --git a/.github/ISSUE_TEMPLATE/01-bug_report_en.yml b/.github/ISSUE_TEMPLATE/01-bug_report_en.yml new file mode 100644 index 00000000..23f936ae --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01-bug_report_en.yml @@ -0,0 +1,177 @@ +name: Bug Report (English) +description: Report a reproducible problem and provide the environment and data source details needed to investigate it +title: "[Bug] " +labels: ["bug"] + +body: + - type: markdown + attributes: + value: | + Thank you for reporting a problem. Please provide as much of the information below as possible. Missing data source, version, or reproduction details may prevent maintainers from investigating the issue. + + **Do not include passwords, tokens, complete connection strings, private keys, or screenshots and logs containing business data.** + + - type: checkboxes + id: searched + attributes: + label: Before submitting + options: + - label: I searched the existing issues and did not find a duplicate + required: true + - label: I removed or redacted passwords, tokens, connection strings, private keys, and business data + required: true + + - type: dropdown + id: area + attributes: + label: Affected area + description: Select the area that most closely matches where the problem occurs + options: + - Data source connection, authentication, or network + - Database, schema, table, view, index, or other object management + - SQL editing, execution, or result sets + - Table data browsing or editing + - Redis, MongoDB, messaging, vector, or search data + - Import, export, or backup + - SSH, proxy, or tunnel + - Driver or Driver Agent + - AI, MCP, or Agent + - Installation, update, or startup + - User interface, interaction, or local settings + - Performance, freezing, or crash + - Other + validations: + required: true + + - type: input + id: version + attributes: + label: GoNavi version + description: Enter the full version shown on the About page; include the commit for a development build + placeholder: "For example: v0.9.0 / dev build (commit abc1234)" + validations: + required: true + + - type: dropdown + id: installation + attributes: + label: Installation or run method + options: + - GitHub Release installer + - GitHub Release portable build or archive + - Source development mode + - Self-built binary + - Other + validations: + required: true + + - type: input + id: system + attributes: + label: Operating system and version + description: Include both the operating system version and CPU architecture + placeholder: "For example: Windows 11 24H2 x64 / macOS 15.5 arm64 / Ubuntu 24.04 x64" + validations: + required: true + + - type: input + id: datasource + attributes: + label: Data source type and version + description: For data source issues, include the type, server version, and compatibility mode; otherwise enter "Not applicable" + placeholder: "For example: MySQL 8.0.36 / OceanBase 4.3 (MySQL mode) / Redis 7.2 Cluster" + validations: + required: true + + - type: input + id: datasource_environment + attributes: + label: Data source deployment + description: Include standalone, primary-replica, cluster, cloud, or Docker details, plus any Driver Agent or custom driver version + placeholder: "For example: Docker standalone / Redis Cluster with 3 primaries and 3 replicas / Amazon RDS" + + - type: dropdown + id: connection + attributes: + label: Connection method + description: Multiple selections are allowed; select "Not applicable" when the issue is unrelated to a data source + multiple: true + options: + - Direct connection + - SSH tunnel + - HTTP tunnel + - System or custom proxy + - TLS/SSL + - Not applicable + validations: + required: true + + - type: textarea + id: description + attributes: + label: Problem description + description: Describe the page, object, or operation involved, and whether the problem is consistent or intermittent + placeholder: | + Where does the problem occur? + What object is involved (database, schema, table, index, key, and so on)? + Does it happen every time or only occasionally? + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: Minimal reproduction steps + description: Starting from launching GoNavi or connecting to the data source, list the smallest repeatable sequence of actions + placeholder: | + 1. Connect to ... + 2. Open ... + 3. Click or run ... + 4. Observe ... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected behavior + placeholder: Describe the correct result you expected + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual behavior + description: Paste the complete error text when available; do not only write "error" or attach an error screenshot + placeholder: Describe the actual result and include the complete error text + validations: + required: true + + - type: textarea + id: logs + attributes: + label: Relevant logs + description: Paste relevant logs from immediately before and after the problem; redact sensitive information first + render: shell + + - type: textarea + id: screenshots + attributes: + label: Screenshots or recordings + description: Drag in screenshots or recordings after hiding connection details, account information, and business data + placeholder: Optional + + - type: textarea + id: extra + attributes: + label: Additional context + description: You may include comparison results from another client using the same data source or any temporary workaround + placeholder: Optional + + - type: checkboxes + id: pr + attributes: + label: Are you willing to submit a PR for this issue? + options: + - label: I am willing to try submitting a PR diff --git a/.github/ISSUE_TEMPLATE/02-feature_request.yml b/.github/ISSUE_TEMPLATE/02-feature_request.yml index 268211f4..cd06b53a 100644 --- a/.github/ISSUE_TEMPLATE/02-feature_request.yml +++ b/.github/ISSUE_TEMPLATE/02-feature_request.yml @@ -1,32 +1,175 @@ -name: 功能建议 -description: 添加全新功能或改进现有功能 +name: 功能建议(中文) +description: 提议新功能或改进现有能力,并提供可评估、可验收的需求信息 title: "[Enhancement] " labels: ["enhancement"] body: + - type: markdown + attributes: + value: | + 感谢建议。请重点说明要解决的问题、实际使用场景和可验证的期望结果;清晰的背景比直接指定实现方式更有助于评估需求。 + + **请勿提交密码、Token、完整连接串、私钥或未经脱敏的业务数据。** + - type: checkboxes id: searched attributes: - label: 已经搜索过 Issues,未发现重复问题* + label: 提交前确认 options: - - label: 我已经搜索过 Issues,没有发现重复问题 + - label: 我已经搜索过 Issues,没有发现相同或高度相似的需求 + required: true + - label: 我已经移除或脱敏密码、Token、连接串、私钥和业务数据 + required: true + + - type: dropdown + id: area + attributes: + label: 需求所属功能 + description: 请选择最接近的功能区域 + options: + - 数据源连接、认证或网络 + - 数据库、Schema、表、视图、索引等对象管理 + - SQL 编辑、执行或结果集 + - 表数据浏览或编辑 + - Redis、MongoDB、消息队列、向量或搜索数据 + - 导入、导出或备份 + - SSH、代理或隧道 + - 驱动或 Driver Agent + - AI、MCP 或 Agent + - 安装、更新或启动 + - 界面、交互或本地设置 + - 性能或资源占用 + - 其他 + validations: + required: true + + - type: dropdown + id: request_type + attributes: + label: 需求类型 + options: + - 新增目前不存在的功能 + - 改进现有功能或操作流程 + - 增加数据源、协议或版本兼容 + - 提升性能、稳定性或资源效率 + - 完善界面、交互或可访问性 + - 增加自动化、集成或扩展能力 + - 其他 + validations: + required: true + + - type: input + id: version + attributes: + label: 当前使用的 GoNavi 版本 + description: 请填写“关于”页面显示的完整版本;开发构建请同时提供 commit + placeholder: "例如:v0.9.0 / dev build (commit abc1234)" + validations: + required: true + + - type: input + id: datasource + attributes: + label: 相关数据源及版本 + description: 涉及数据源时填写类型、服务端版本和兼容模式;与数据源无关时填写“不适用” + placeholder: "例如:MySQL 8.0.36 / Redis 7.2 Cluster / 不适用" validations: required: true - type: textarea - id: feature + id: scenario attributes: - label: 功能描述 - description: 请详细描述你希望添加或改进的功能 - placeholder: 请描述你想要的功能 + label: 使用场景与目标用户 + description: 请说明谁会在什么情况下使用该功能,以及大致使用频率 + placeholder: | + 使用者:例如 DBA、开发人员、运维人员 + 使用场景:在什么任务或流程中需要该功能 + 使用频率:每天多次 / 偶尔 / 特定项目阶段 validations: required: true - type: textarea - id: extra + id: problem attributes: - label: 其他补充 - description: 如果你有额外信息,请在此填写 + label: 现状与痛点 + description: 请描述目前如何完成这项工作、现有限制及其具体影响 + placeholder: | + 当前操作流程: + 遇到的限制或额外成本: + 是否存在临时替代方案,为什么仍不够用: + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: 期望的功能与交互 + description: 请描述期望的入口、操作流程、输入输出,以及默认值、空状态或异常状态等关键细节 + placeholder: | + 1. 从哪个页面或入口开始 + 2. 用户可以执行哪些操作 + 3. 应展示或产出什么结果 + 4. 对默认值、权限、失败提示等有什么要求 + validations: + required: true + + - type: textarea + id: acceptance + attributes: + label: 验收标准 + description: 请用可观察、可验证的结果描述何时可以认为需求已经完成 + placeholder: | + - [ ] 当 ... 时,可以 ... + - [ ] 操作完成后,应显示/生成 ... + - [ ] 在 ... 数据量或环境下,仍能 ... + validations: + required: true + + - type: dropdown + id: impact + attributes: + label: 使用频率与影响 + description: 请选择最符合当前情况的一项,便于评估优先级 + options: + - 阻塞核心工作,且没有可用替代方案 + - 高频重复使用,现有流程成本明显 + - 偶尔使用,希望减少操作或提升体验 + - 探索性需求,用于支持未来场景 + validations: + required: true + + - type: textarea + id: scale + attributes: + label: 数据规模或性能预期 + description: 涉及大量数据、并发、文件或长时间任务时,请提供典型值和上限;不涉及可留空 + placeholder: "例如:单表 500 万行、10 万个 Redis Key、导入文件 2 GB、期望 3 秒内完成" + + - type: dropdown + id: compatibility + attributes: + label: 对现有行为的影响 + description: 说明该需求是否需要改变已有默认行为或数据格式 + options: + - 仅新增能力,不改变现有行为 + - 需要调整现有行为,但应保持向后兼容 + - 可能包含不兼容变更 + - 暂不确定 + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: 已考虑的替代方案 + description: 可填写目前使用的临时方案、其他客户端的实现方式,以及未采用这些方案的原因 + placeholder: 可选 + + - type: textarea + id: references + attributes: + label: 原型、截图或参考资料 + description: 可直接拖入原型、截图或录屏,也可提供相关文档和同类产品链接;请先脱敏 placeholder: 可选 - type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/02-feature_request_en.yml b/.github/ISSUE_TEMPLATE/02-feature_request_en.yml new file mode 100644 index 00000000..a0ac5691 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02-feature_request_en.yml @@ -0,0 +1,180 @@ +name: Feature Request (English) +description: Propose a new feature or an improvement with enough detail to evaluate and verify the request +title: "[Enhancement] " +labels: ["enhancement"] + +body: + - type: markdown + attributes: + value: | + Thank you for the suggestion. Focus on the problem, the real usage scenario, and verifiable expected outcomes. Clear context is more useful for evaluation than prescribing an implementation alone. + + **Do not include passwords, tokens, complete connection strings, private keys, or unredacted business data.** + + - type: checkboxes + id: searched + attributes: + label: Before submitting + options: + - label: I searched the existing issues and did not find the same or a highly similar request + required: true + - label: I removed or redacted passwords, tokens, connection strings, private keys, and business data + required: true + + - type: dropdown + id: area + attributes: + label: Feature area + description: Select the area that most closely matches the request + options: + - Data source connection, authentication, or network + - Database, schema, table, view, index, or other object management + - SQL editing, execution, or result sets + - Table data browsing or editing + - Redis, MongoDB, messaging, vector, or search data + - Import, export, or backup + - SSH, proxy, or tunnel + - Driver or Driver Agent + - AI, MCP, or Agent + - Installation, update, or startup + - User interface, interaction, or local settings + - Performance or resource usage + - Other + validations: + required: true + + - type: dropdown + id: request_type + attributes: + label: Request type + options: + - Add a new capability + - Improve an existing feature or workflow + - Add data source, protocol, or version compatibility + - Improve performance, stability, or resource efficiency + - Improve the user interface, interaction, or accessibility + - Add automation, integration, or extension support + - Other + validations: + required: true + + - type: input + id: version + attributes: + label: Current GoNavi version + description: Enter the full version shown on the About page; include the commit for a development build + placeholder: "For example: v0.9.0 / dev build (commit abc1234)" + validations: + required: true + + - type: input + id: datasource + attributes: + label: Related data source and version + description: If applicable, include the type, server version, and compatibility mode; otherwise enter "Not applicable" + placeholder: "For example: MySQL 8.0.36 / Redis 7.2 Cluster / Not applicable" + validations: + required: true + + - type: textarea + id: scenario + attributes: + label: Usage scenario and target users + description: Explain who would use this feature, when they would use it, and approximately how often + placeholder: | + Users: for example, DBAs, developers, or operators + Scenario: the task or workflow where this feature is needed + Frequency: several times per day / occasionally / during a specific project phase + validations: + required: true + + - type: textarea + id: problem + attributes: + label: Current workflow and pain points + description: Describe how this work is currently completed, the limitations, and their concrete impact + placeholder: | + Current workflow: + Limitations or additional cost: + Existing workaround and why it is insufficient: + validations: + required: true + + - type: textarea + id: proposal + attributes: + label: Expected feature and interaction + description: Describe the entry point, workflow, inputs and outputs, plus important defaults, empty states, or error states + placeholder: | + 1. Where the workflow starts + 2. What actions the user can perform + 3. What should be displayed or produced + 4. Requirements for defaults, permissions, or failure messages + validations: + required: true + + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + description: Describe observable and verifiable outcomes that indicate the request is complete + placeholder: | + - [ ] When ..., the user can ... + - [ ] After the action, the application displays or produces ... + - [ ] With ... data or environment, the feature still ... + validations: + required: true + + - type: dropdown + id: impact + attributes: + label: Usage frequency and impact + description: Select the closest match to help maintainers assess priority + options: + - Blocks a core workflow with no usable workaround + - Used frequently and the current workflow has significant cost + - Used occasionally and would reduce effort or improve usability + - Exploratory request for a future scenario + validations: + required: true + + - type: textarea + id: scale + attributes: + label: Data scale or performance expectations + description: For large data sets, concurrency, files, or long-running tasks, provide typical and maximum values; otherwise leave blank + placeholder: "For example: 5 million rows, 100,000 Redis keys, a 2 GB import file, or completion within 3 seconds" + + - type: dropdown + id: compatibility + attributes: + label: Impact on existing behavior + description: Indicate whether this request needs to change current defaults or data formats + options: + - Adds capability without changing existing behavior + - Changes existing behavior but should remain backward compatible + - May require a breaking change + - Not sure yet + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Include current workarounds, implementations in other clients, and why those alternatives are insufficient + placeholder: Optional + + - type: textarea + id: references + attributes: + label: Mockups, screenshots, or references + description: Drag in redacted mockups, screenshots, or recordings, or link to relevant documentation and comparable products + placeholder: Optional + + - type: checkboxes + id: pr + attributes: + label: Are you willing to submit a PR for this issue? + options: + - label: I am willing to try submitting a PR