From 570e970e1c991ff12d226ece6388d2d73d7fa251 Mon Sep 17 00:00:00 2001 From: YHH <359807859@qq.com> Date: Sat, 18 Oct 2025 22:06:27 +0800 Subject: [PATCH] chore: modernize project infrastructure --- .github/ISSUE_TEMPLATE/bug_report.yml | 130 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 17 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 90 ++++++++++++++ .github/ISSUE_TEMPLATE/question.yml | 64 ++++++++++ .github/labeler.yml | 32 +++++ .github/workflows/issue-labeler.yml | 23 ++++ .github/workflows/issue-translator.yml | 28 +++++ 7 files changed, 384 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/ISSUE_TEMPLATE/question.yml create mode 100644 .github/labeler.yml create mode 100644 .github/workflows/issue-labeler.yml create mode 100644 .github/workflows/issue-translator.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..556d52cf --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,130 @@ +name: 🐛 Bug Report / 错误报告 +description: Report a bug or issue / 报告一个错误或问题 +title: "[Bug]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + 感谢你提交 Bug 报告!请填写以下信息帮助我们更快定位问题。 + Thanks for reporting a bug! Please fill in the information below to help us locate the issue faster. + + - type: textarea + id: description + attributes: + label: 问题描述 / Bug Description + description: 清晰简洁地描述遇到的问题 / A clear and concise description of the bug + placeholder: 例如:当我创建超过1000个实体时,游戏卡顿严重... + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: 复现步骤 / Steps to Reproduce + description: 如何复现这个问题?/ How can we reproduce this issue? + placeholder: | + 1. 创建场景 + 2. 添加 1000 个实体 + 3. 运行游戏 + 4. 观察卡顿 + value: | + 1. + 2. + 3. + validations: + required: true + + - type: textarea + id: expected + attributes: + label: 期望行为 / Expected Behavior + description: 你期望发生什么?/ What did you expect to happen? + placeholder: 游戏应该流畅运行,FPS 保持在 60... + validations: + required: true + + - type: textarea + id: actual + attributes: + label: 实际行为 / Actual Behavior + description: 实际发生了什么?/ What actually happened? + placeholder: FPS 降到 20,游戏严重卡顿... + validations: + required: true + + - type: input + id: version + attributes: + label: 版本 / Version + description: 使用的 @esengine/ecs-framework 版本 / Version of @esengine/ecs-framework + placeholder: 例如 / e.g., 2.2.8 + validations: + required: true + + - type: dropdown + id: platform + attributes: + label: 平台 / Platform + description: 在哪个平台遇到问题?/ Which platform did you encounter the issue? + multiple: true + options: + - Web / 浏览器 + - Cocos Creator + - Laya Engine + - WeChat Mini Game / 微信小游戏 + - Other / 其他 + validations: + required: true + + - type: textarea + id: environment + attributes: + label: 环境信息 / Environment + description: | + 相关环境信息 / Relevant environment information + 例如:操作系统、浏览器版本、Node.js 版本等 + placeholder: | + - OS: Windows 11 + - Browser: Chrome 120 + - Node.js: 20.10.0 + value: | + - OS: + - Browser: + - Node.js: + validations: + required: false + + - type: textarea + id: code + attributes: + label: 代码示例 / Code Sample + description: 如果可能,提供最小可复现代码 / If possible, provide minimal reproducible code + render: typescript + placeholder: | + import { Core, Scene, Entity } from '@esengine/ecs-framework'; + + // 你的代码 / Your code here + validations: + required: false + + - type: textarea + id: logs + attributes: + label: 错误日志 / Error Logs + description: 相关的错误日志或截图 / Relevant error logs or screenshots + render: shell + validations: + required: false + + - type: checkboxes + id: checklist + attributes: + label: 检查清单 / Checklist + options: + - label: 我已经搜索过类似的 issue / I have searched for similar issues + required: true + - label: 我使用的是最新版本 / I am using the latest version + required: false + - label: 我愿意提交 PR 修复此问题 / I am willing to submit a PR to fix this issue + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..943c7fd7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,17 @@ +blank_issues_enabled: true +contact_links: + - name: 📚 文档 / Documentation + url: https://esengine.github.io/ecs-framework/ + about: 查看完整文档和教程 / View full documentation and tutorials + + - name: 🤖 AI 文档助手 / AI Documentation Assistant + url: https://deepwiki.com/esengine/ecs-framework + about: 使用 AI 助手快速找到答案 / Use AI assistant to quickly find answers + + - name: 💬 QQ 交流群 / QQ Group + url: https://jq.qq.com/?_wv=1027&k=29w1Nud6 + about: 加入社区交流群 / Join the community group + + - name: 🌟 GitHub Discussions + url: https://github.com/esengine/ecs-framework/discussions + about: 参与社区讨论 / Join community discussions diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..b81039d1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,90 @@ +name: ✨ Feature Request / 功能建议 +description: Suggest a new feature or enhancement / 建议新功能或改进 +title: "[Feature]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + 感谢你的功能建议!请详细描述你的想法。 + Thanks for your feature suggestion! Please describe your idea in detail. + + - type: textarea + id: problem + attributes: + label: 问题描述 / Problem Description + description: 这个功能解决什么问题?/ What problem does this feature solve? + placeholder: 当我需要...的时候,现在很不方便,因为... / When I need to..., it's inconvenient because... + validations: + required: true + + - type: textarea + id: solution + attributes: + label: 建议的解决方案 / Proposed Solution + description: 你希望如何实现这个功能?/ How would you like this feature to work? + placeholder: 可以添加一个新的 API,例如... / Could add a new API, for example... + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: 其他方案 / Alternatives + description: 你考虑过哪些替代方案?/ What alternatives have you considered? + placeholder: 也可以通过...来实现,但是... / Could also achieve this by..., but... + validations: + required: false + + - type: textarea + id: examples + attributes: + label: 使用示例 / Usage Example + description: 展示这个功能如何使用 / Show how this feature would be used + render: typescript + placeholder: | + // 理想的 API 设计 / Ideal API design + const pool = new ComponentPool(MyComponent, { size: 100 }); + const component = pool.acquire(); + validations: + required: false + + - type: dropdown + id: scope + attributes: + label: 影响范围 / Scope + description: 这个功能主要影响哪个部分?/ Which part does this feature mainly affect? + options: + - Core / 核心框架 + - Performance / 性能 + - API Design / API 设计 + - Developer Experience / 开发体验 + - Documentation / 文档 + - Editor / 编辑器 + - Other / 其他 + validations: + required: true + + - type: dropdown + id: priority + attributes: + label: 优先级 / Priority + description: 你认为这个功能有多重要?/ How important do you think this feature is? + options: + - High / 高 - 非常需要这个功能 + - Medium / 中 - 有会更好 + - Low / 低 - 可有可无 + validations: + required: true + + - type: checkboxes + id: checklist + attributes: + label: 检查清单 / Checklist + options: + - label: 我已经搜索过类似的功能请求 / I have searched for similar feature requests + required: true + - label: 这个功能不会破坏现有 API / This feature won't break existing APIs + required: false + - label: 我愿意提交 PR 实现此功能 / I am willing to submit a PR to implement this feature + required: false diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 00000000..6b0dc377 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,64 @@ +name: ❓ Question / 问题咨询 +description: Ask a question about using the framework / 询问框架使用问题 +title: "[Question]: " +labels: ["question"] +body: + - type: markdown + attributes: + value: | + 💡 提示:如果是简单问题,可以先查看: + - [📚 文档](https://esengine.github.io/ecs-framework/) + - [📖 AI 文档助手](https://deepwiki.com/esengine/ecs-framework) + - [💬 QQ 交流群](https://jq.qq.com/?_wv=1027&k=29w1Nud6) + + 💡 Tip: For simple questions, please check first: + - [📚 Documentation](https://esengine.github.io/ecs-framework/) + - [📖 AI Documentation](https://deepwiki.com/esengine/ecs-framework) + + - type: textarea + id: question + attributes: + label: 你的问题 / Your Question + description: 清晰描述你的问题 / Describe your question clearly + placeholder: 如何在 Cocos Creator 中使用 ECS Framework? + validations: + required: true + + - type: textarea + id: context + attributes: + label: 背景信息 / Context + description: 提供更多上下文帮助理解问题 / Provide more context to help understand + placeholder: | + 我正在开发一个多人在线游戏... + 我尝试过...但是... + validations: + required: false + + - type: textarea + id: code + attributes: + label: 相关代码 / Related Code + description: 如果适用,提供相关代码片段 / If applicable, provide relevant code snippet + render: typescript + validations: + required: false + + - type: input + id: version + attributes: + label: 版本 / Version + description: 使用的框架版本 / Framework version you're using + placeholder: 例如 / e.g., 2.2.8 + validations: + required: false + + - type: checkboxes + id: checklist + attributes: + label: 检查清单 / Checklist + options: + - label: 我已经查看过文档 / I have checked the documentation + required: true + - label: 我已经搜索过类似问题 / I have searched for similar questions + required: true diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 00000000..54aaab71 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,32 @@ +# 自动标签配置 +# 根据 issue/PR 内容自动打标签 + +'bug': + - '/(bug|错误|崩溃|crash|error|exception|问题)/i' + +'enhancement': + - '/(feature|功能|enhancement|improve|优化|建议)/i' + +'documentation': + - '/(doc|文档|readme|guide|tutorial|教程)/i' + +'question': + - '/(question|疑问|how to|如何|怎么)/i' + +'performance': + - '/(performance|性能|slow|慢|lag|卡顿|optimize)/i' + +'core': + - '/(@esengine\/ecs-framework|packages\/core|core package)/i' + +'editor': + - '/(editor|编辑器|tauri)/i' + +'network': + - '/(network|网络|multiplayer|多人)/i' + +'help wanted': + - '/(help wanted|需要帮助|求助)/i' + +'good first issue': + - '/(good first issue|新手友好|beginner)/i' diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml new file mode 100644 index 00000000..1db79962 --- /dev/null +++ b/.github/workflows/issue-labeler.yml @@ -0,0 +1,23 @@ +name: Issue Labeler + +on: + issues: + types: [opened, edited] + +permissions: + issues: write + contents: read + +jobs: + label: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Label Issues + uses: github/issue-labeler@v3.4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + configuration-path: .github/labeler.yml + enable-versioned-regex: 1 diff --git a/.github/workflows/issue-translator.yml b/.github/workflows/issue-translator.yml new file mode 100644 index 00000000..3b783e93 --- /dev/null +++ b/.github/workflows/issue-translator.yml @@ -0,0 +1,28 @@ +name: Issue Translator + +on: + issue_comment: + types: [created] + issues: + types: [opened] + +permissions: + issues: write + +jobs: + translate: + runs-on: ubuntu-latest + steps: + - name: Translate Issues + uses: tomsun28/issues-translate-action@v2.7 + with: + IS_MODIFY_TITLE: false + # 设置为 true 会修改标题,false 只在评论中添加翻译 + CUSTOM_BOT_NOTE: | +
+ 🌏 Translation / 翻译 + + Bot detected the issue body's language is not English, translate it automatically. + 机器人检测到 issue 内容非英文,自动翻译。 + +