chore: modernize project infrastructure
This commit is contained in:
130
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
130
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -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
|
||||||
17
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
17
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -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
|
||||||
90
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
90
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -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
|
||||||
64
.github/ISSUE_TEMPLATE/question.yml
vendored
Normal file
64
.github/ISSUE_TEMPLATE/question.yml
vendored
Normal file
@@ -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
|
||||||
32
.github/labeler.yml
vendored
Normal file
32
.github/labeler.yml
vendored
Normal file
@@ -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'
|
||||||
23
.github/workflows/issue-labeler.yml
vendored
Normal file
23
.github/workflows/issue-labeler.yml
vendored
Normal file
@@ -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
|
||||||
28
.github/workflows/issue-translator.yml
vendored
Normal file
28
.github/workflows/issue-translator.yml
vendored
Normal file
@@ -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: |
|
||||||
|
<details>
|
||||||
|
<summary>🌏 Translation / 翻译</summary>
|
||||||
|
|
||||||
|
Bot detected the issue body's language is not English, translate it automatically.
|
||||||
|
机器人检测到 issue 内容非英文,自动翻译。
|
||||||
|
|
||||||
|
</details>
|
||||||
Reference in New Issue
Block a user