feat.在线安装器,更好的Issue与pull request模板。

This commit is contained in:
lincube
2026-06-03 00:50:52 +08:00
parent 29bd47986c
commit 28b06031f7
38 changed files with 2976 additions and 123 deletions

View File

@@ -1,34 +0,0 @@
---
name: Bug Report
about: Create a report to help us improve
title: "[BUG] "
labels: bug
assignees: ''
---
## Describe the bug
A clear and concise description of what the bug is.
## Expected behavior
What did you expect to happen?
## Actual behavior
What actually happened?
## Steps to reproduce
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
## Environment
- OS: [e.g. Windows 10, Windows 11]
- Version: [e.g. 1.0.0]
- .NET Version: [e.g. 10.0]
## Screenshots
If applicable, add screenshots to help explain your problem.
## Additional context
Add any other context about the problem here.

122
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,122 @@
name: Bug 反馈 / Bug report
description: 报告 LanMountainDesktop 宿主、启动器、插件运行时、SDK 或共享契约中的可复现问题。
title: "[Bug] "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
感谢反馈问题。请用一句话写清标题,并尽量为每个独立 Bug 单独创建一个 Issue。
Thank you for reporting a bug. Please use a clear title and open one issue for each independent bug.
> [!IMPORTANT]
> 请不要上传未脱敏的日志、截图或配置。移除 token、密钥、Cookie、账号、学生/班级个人信息、绝对隐私路径等敏感内容。
>
> Do not share unredacted logs, screenshots, or configs. Remove tokens, secrets, cookies, accounts, student/class personal data, and private local paths.
- type: checkboxes
id: checklist
attributes:
label: 提交前检查 / Pre-flight checklist
description: 提交前请确认以下事项。
options:
- label: 我已经搜索过现有 Issues确认没有重复反馈。 / I searched existing issues and found no duplicate.
required: true
- label: 我已经确认该问题属于 LanMountainDesktop 仓库边界,而不是插件市场元数据或官方示例插件实现。 / I confirmed this belongs to LanMountainDesktop, not marketplace metadata or the sample plugin implementation.
required: true
- label: 我已尽量使用最新版本、最新构建或最新提交验证问题仍然存在。 / I reproduced this on the latest release, build, or commit available to me.
required: true
- label: 我已对所有附件和日志做脱敏处理。 / I redacted sensitive information from all attachments and logs.
required: true
- type: dropdown
id: area
attributes:
label: 影响区域 / Affected area
description: 选择最接近的问题区域。
options:
- 桌面宿主 / Desktop host
- 启动器、更新或打包 / Launcher, update, or packaging
- AirApp Runtime
- 插件运行时或安装 / Plugin runtime or installation
- Plugin SDK 或共享契约 / Plugin SDK or shared contracts
- 设置、主题或外观 / Settings, theme, or appearance
- 桌面组件系统 / Desktop component system
- 构建、测试或 CI / Build, test, or CI
- 文档 / Documentation
- 不确定 / Not sure
validations:
required: true
- type: textarea
id: summary
attributes:
label: 问题描述 / Summary
description: 清楚说明发生了什么,以及它为什么是问题。
placeholder: |
例如:打开设置窗口后,点击“外观”页会导致应用崩溃。
Example: Opening the Appearance settings page crashes the app.
validations:
required: true
- type: textarea
id: expected
attributes:
label: 期望行为 / Expected behavior
description: 说明你原本期望发生什么。
validations:
required: true
- type: textarea
id: actual
attributes:
label: 实际行为 / Actual behavior
description: 说明实际发生了什么,包括错误提示、异常表现或回归点。
validations:
required: true
- type: textarea
id: steps
attributes:
label: 复现步骤 / Steps to reproduce
description: 请提供能让维护者复现问题的最小步骤。
placeholder: |
1. 启动应用
2. 打开……
3. 点击……
4. 看到……
1. Launch the app
2. Open ...
3. Click ...
4. See ...
validations:
required: true
- type: textarea
id: environment
attributes:
label: 环境信息 / Environment
description: 请尽量完整填写。可粘贴 `dotnet --info` 中和问题相关的部分。
value: |
- OS / 操作系统:
- LanMountainDesktop version / 应用版本:
- Build channel or commit / 构建渠道或提交:
- .NET SDK / Runtime
- Install mode / 安装方式(源码运行、安装包、便携版等):
- Plugin SDK version if relevant / 如涉及插件SDK 版本:
validations:
required: true
- type: textarea
id: logs
attributes:
label: 日志、堆栈或截图 / Logs, stack traces, or screenshots
description: 请粘贴已脱敏的日志、异常堆栈,或附上截图/录屏。大文件请打包后通过 GitHub 附件上传。
render: shell
- type: textarea
id: extra
attributes:
label: 补充信息 / Additional context
description: 例如是否只在某个插件、主题、显示器缩放、系统语言或更新通道下出现。
- type: checkboxes
id: final
attributes:
label: 最后确认 / Final confirmation
options:
- label: 我确认以上信息足够维护者理解并尝试复现问题。 / I confirm the information above is enough for maintainers to understand and try to reproduce the issue.
required: true

11
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
blank_issues_enabled: true
contact_links:
- name: 插件市场元数据 / Plugin marketplace metadata
url: https://github.com/wwiinnddyy/LanAirApp/issues/new
about: 插件市场索引、生态材料、开发者门户内容请在 LanAirApp 仓库反馈。 / Report marketplace index, ecosystem materials, and developer portal content in LanAirApp.
- name: 官方示例插件 / Official sample plugin
url: https://github.com/wwiinnddyy/LanMountainDesktop.SamplePlugin/issues/new
about: 示例插件实现、示例包发布和示例插件使用问题请在 SamplePlugin 仓库反馈。 / Report sample plugin implementation, packages, and usage in the SamplePlugin repo.
- name: 贡献指南 / Contribution guide
url: https://github.com/wwiinnddyy/LanMountainDesktop/blob/main/docs/CONTRIBUTING.md
about: 提交 PR 前请阅读贡献、文档和 spec 更新规则。 / Read contribution, documentation, and spec update rules before opening a PR.

View File

@@ -1,36 +0,0 @@
---
name: Config Issue
about: Report configuration or build issues
title: "[CONFIG] "
labels: configuration
assignees: ''
---
## Describe the configuration issue
A clear description of the configuration or build problem.
## Environment Details
- OS: [e.g. Windows 10/11, Linux, macOS]
- .NET SDK Version: [output of `dotnet --version`]
- Visual Studio Version: [if applicable]
- Project Configuration: [e.g., Debug/Release]
## Steps to reproduce
1. ...
2. ...
## Expected result
What should happen?
## Actual result
What actually happens?
## Configuration files
If applicable, share relevant configuration:
- `.csproj` settings (without sensitive data)
- Build parameters
- Environment variables set
## Additional context
Add any other relevant information.

111
.github/ISSUE_TEMPLATE/config_issue.yml vendored Normal file
View File

@@ -0,0 +1,111 @@
name: 配置、构建或打包问题 / Configuration, build, or packaging issue
description: 报告还原、构建、测试、运行、打包、CI 或环境配置相关问题。
title: "[Config] "
labels: ["configuration"]
body:
- type: markdown
attributes:
value: |
这个模板用于环境、构建、测试、运行和打包问题。如果问题是应用运行后的具体功能异常,请优先使用 Bug 反馈。
Use this template for environment, build, test, run, and packaging issues. For runtime feature bugs, prefer the Bug report template.
> [!IMPORTANT]
> 请不要公开 NuGet 源凭据、签名证书、API token、私有路径、机器名、用户名或其他敏感配置。
>
> Do not expose NuGet credentials, signing certificates, API tokens, private paths, machine names, usernames, or other sensitive configuration.
- type: checkboxes
id: checklist
attributes:
label: 提交前检查 / Pre-flight checklist
options:
- label: 我已经阅读过 `docs/DEVELOPMENT.md` 中对应的构建、运行或测试说明。 / I read the relevant build, run, or test instructions in `docs/DEVELOPMENT.md`.
required: true
- label: 我已经运行过 `dotnet restore`,或说明了为什么无法运行。 / I ran `dotnet restore`, or explained why I could not.
required: true
- label: 我已经搜索过现有 Issues确认没有重复问题。 / I searched existing issues and found no duplicate.
required: true
- label: 我已对日志、路径和配置片段做脱敏处理。 / I redacted sensitive data from logs, paths, and config snippets.
required: true
- type: dropdown
id: category
attributes:
label: 问题类型 / Issue type
options:
- dotnet restore
- dotnet build
- dotnet test
- dotnet run
- Launcher 启动或维护命令 / Launcher startup or maintenance command
- 插件包生成 / Plugin package generation
- Windows 安装包或发布产物 / Windows installer or release artifact
- GitHub Actions / CI
- NuGet、SDK 或依赖版本 / NuGet, SDK, or dependency version
- 其他 / Other
validations:
required: true
- type: textarea
id: command
attributes:
label: 执行的命令 / Command executed
description: 请粘贴触发问题的最小命令。
render: shell
placeholder: |
dotnet build LanMountainDesktop.slnx -c Debug
validations:
required: true
- type: textarea
id: expected
attributes:
label: 期望结果 / Expected result
description: 你期望命令或流程产生什么结果?
validations:
required: true
- type: textarea
id: actual
attributes:
label: 实际结果 / Actual result
description: 实际输出、错误码、失败阶段或 CI 链接。
validations:
required: true
- type: textarea
id: environment
attributes:
label: 环境信息 / Environment
description: 请尽量完整填写。可粘贴 `dotnet --info` 中和问题相关的部分。
value: |
- OS / 操作系统:
- Shell / 终端:
- `dotnet --version`
- `dotnet --info` relevant parts / 相关片段:
- Repository branch or commit / 仓库分支或提交:
- Configuration / 构建配置Debug/Release
- Architecture / 架构x64/arm64 等):
validations:
required: true
- type: textarea
id: logs
attributes:
label: 已脱敏日志 / Redacted logs
description: 请粘贴关键错误日志。长日志建议只贴失败段落,或通过 GitHub 附件上传。
render: shell
validations:
required: true
- type: textarea
id: config
attributes:
label: 相关配置片段 / Relevant config snippets
description: 如 `.csproj`、`Directory.Packages.props`、workflow、环境变量名等。请先脱敏不要粘贴真实密钥。
render: xml
- type: textarea
id: extra
attributes:
label: 补充信息 / Additional context
description: 例如是否只在某个平台、某个 runner、某个 NuGet 源或某个安装路径下出现。
- type: checkboxes
id: final
attributes:
label: 最后确认 / Final confirmation
options:
- label: 我确认以上信息足够维护者定位失败阶段,并且没有包含敏感配置。 / I confirm the information above is enough to identify the failing stage and contains no sensitive configuration.
required: true

View File

@@ -1,25 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''
---
## Is your feature request related to a problem?
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
## Describe the solution you'd like
A clear and concise description of what you want to happen.
## Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
## Additional context
Add any other context or screenshots about the feature request here.
## Priority
- [ ] Low - Nice to have
- [ ] Medium - Would improve usability
- [ ] High - Essential feature

View File

@@ -0,0 +1,103 @@
name: 功能请求 / Feature request
description: 提出新的能力、体验优化或行为调整建议。
title: "[Feature] "
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
感谢提出想法。请尽量描述真实场景和目标用户,而不是只描述一个实现方案。
Thanks for the idea. Please describe the real user scenario and target users, not only a proposed implementation.
> [!IMPORTANT]
> 如果是多项功能,请分别创建 Issue。若需求更适合插件市场、官方示例插件或第三方插件实现请转到对应仓库或讨论区。
>
> Please open separate issues for separate features. If the request belongs to marketplace metadata, sample plugins, or third-party plugins, use the related repository or discussion channel.
- type: checkboxes
id: checklist
attributes:
label: 提交前检查 / Pre-flight checklist
options:
- label: 我已经搜索过现有 Issues 和 `.trae/specs/`,确认没有相同或高度相似的需求。 / I searched existing issues and `.trae/specs/` and found no same or highly similar request.
required: true
- label: "我已经确认该需求属于本仓库边界桌面宿主、插件运行时、Plugin SDK、共享契约、外观或设置基础设施。 / I confirmed this belongs to this repo: desktop host, plugin runtime, Plugin SDK, shared contracts, appearance, or settings infrastructure."
required: true
- label: 我已考虑该能力是否可以由插件实现,并在下方说明。 / I considered whether this can be implemented as a plugin and explain it below.
required: true
- type: dropdown
id: area
attributes:
label: 需求区域 / Request area
options:
- 桌面宿主体验 / Desktop host UX
- 启动器、更新或安装 / Launcher, update, or installation
- AirApp Runtime
- 插件运行时或安装 / Plugin runtime or installation
- Plugin SDK 或共享契约 / Plugin SDK or shared contracts
- 设置、主题或外观 / Settings, theme, or appearance
- 桌面组件系统 / Desktop component system
- 开发、构建或 CI / Development, build, or CI
- 文档 / Documentation
- 不确定 / Not sure
validations:
required: true
- type: textarea
id: problem
attributes:
label: 背景与问题 / Background and problem
description: 你遇到了什么限制、低效或不清楚的地方?谁会受影响?
placeholder: |
例如:插件开发者在调试安装流程时无法判断包签名失败还是复制失败。
Example: Plugin developers cannot tell whether an install failure is caused by package signature validation or file copying.
validations:
required: true
- type: textarea
id: proposal
attributes:
label: 想要的结果 / Desired outcome
description: 描述你希望用户或开发者最终能完成什么。
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: 已考虑的替代方案 / Alternatives considered
description: 是否可以通过现有设置、插件、脚本、文档或外部仓库解决?为什么仍需要本仓库改动?
validations:
required: true
- type: textarea
id: scope
attributes:
label: 范围、边界与兼容性 / Scope, boundaries, and compatibility
description: 是否涉及 UI、设置持久化、Plugin SDK、共享契约、迁移、跨平台行为或破坏性变更
placeholder: |
- 是否需要更新 `.trae/specs/<feature>/`
- 是否影响已有插件或用户配置
- 是否仅适用于 Windows/Linux/macOS 某个平台
validations:
required: true
- type: textarea
id: references
attributes:
label: 参考资料、截图或草图 / References, screenshots, or sketches
description: 可附上截图、录屏、草图、相关 PR、文档链接或类似产品参考。
- type: dropdown
id: priority
attributes:
label: 优先级感知 / Priority signal
description: 这不是维护者承诺,仅帮助 triage。
options:
- 低:有帮助但不紧急 / Low: useful but not urgent
- 中:明显改善主要流程 / Medium: improves a main workflow
- 高:阻塞使用或开发 / High: blocks usage or development
validations:
required: true
- type: checkboxes
id: final
attributes:
label: 最后确认 / Final confirmation
options:
- label: 我确认这个请求描述的是一个清晰、可讨论的目标,而不是多个无关需求的集合。 / I confirm this request describes a clear discussable goal, not a bundle of unrelated requests.
required: true