diff --git a/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to .github/CODE_OF_CONDUCT.md diff --git a/.github/ISSUE_TEMPLATE/01-packages_bug_report.yml b/.github/ISSUE_TEMPLATE/01-packages_bug_report.yml new file mode 100644 index 0000000..523e225 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/01-packages_bug_report.yml @@ -0,0 +1,83 @@ +name: Bug report +description: Report an issue with Nanoforge Engine. +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thank you for filing an issue! If you are here to ask a question, don't hesitate to open a discussion instead: https://github.com/NanoForge-dev/Engine/discussions. + + This issue form is for Nanoforge Engine packages. + - type: dropdown + id: package + attributes: + label: Which package is this bug report for? + options: + - asset-manager + - common + - config + - core + - ecs-client + - ecs-lib + - ecs-server + - graphics-2d + - input + - music + - sound + validations: + required: true + - type: textarea + id: description + attributes: + label: Issue description + description: Describe the issue in as much detail as possible. + placeholder: | + Steps to reproduce with below code sample: + 1. Do thing + 2. Do thing in your game + 3. Observe behavior + 4. See error logs below + validations: + required: true + - type: textarea + id: code_sample + attributes: + label: Code sample + description: | + Your code sample should be: + 1. Minimal - Use as little code as possible that still produces the same problem (and is understandable) + 2. Complete - Provide all parts someone else needs to reproduce your problem + 3. Reproducible - Test the code you're about to provide to make sure it reproduces the problem + + This will be automatically formatted into code, so no need for backticks. + render: typescript + - type: textarea + id: versions + attributes: + label: Versions + description: List necessary versions here. This includes your package version, runtime version, operating system etc. + placeholder: | + - @nanoforge-dev/common 1.0.0 (`npm ls @nanoforge-dev/common` or another package) + - Node.js 24.11.0 (`node --version`) + - TypeScript 5.9.3 (`npm ls typescript` if you use it) + - macOS Ventura 13.3.1 + validations: + required: true + - type: dropdown + id: priority + attributes: + label: Issue priority + description: Please be realistic. If you need to elaborate on your reasoning, please use the issue description field above. + options: + - Low (slightly annoying) + - Medium (should be fixed soon) + - High (immediate attention needed) + validations: + required: true + - type: input + id: dev_release + attributes: + label: I have tested this issue on a development release + placeholder: d23280c (commit hash) + description: | + The issue might already be fixed in a development main. This is not required, but helps us greatly. diff --git a/.github/ISSUE_TEMPLATE/02-utils_bug_report.yml b/.github/ISSUE_TEMPLATE/02-utils_bug_report.yml new file mode 100644 index 0000000..ae78828 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/02-utils_bug_report.yml @@ -0,0 +1,55 @@ +name: Bug report on utils +description: Report an issue with Nanoforge Engine Utils. +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thank you for filing an issue! If you are here to ask a question, don't hesitate to open a discussion instead: https://github.com/NanoForge-dev/Engine/discussions. + + This issue form is for Nanoforge Engine utils. + - type: dropdown + id: package + attributes: + label: Which utils is this bug report for? + options: + - eslint-config + - prettier-config + validations: + required: true + - type: textarea + id: description + attributes: + label: Issue description + description: Describe the issue in as much detail as possible. + placeholder: | + Steps to reproduce with below code sample: + 1. Do thing + 2. Do thing in your game + 3. Observe behavior + 4. See error logs below + validations: + required: true + - type: textarea + id: versions + attributes: + label: Versions + description: List necessary versions here. This includes your package version, runtime version, operating system etc. + placeholder: | + - @nanoforge-dev/utils-eslint-config 1.0.0 (`npm ls @nanoforge-dev/utils-eslint-config` or another package) + - Node.js 24.11.0 (`node --version`) + - TypeScript 5.9.3 (`npm ls typescript` if you use it) + - macOS Ventura 13.3.1 + validations: + required: true + - type: dropdown + id: priority + attributes: + label: Issue priority + description: Please be realistic. If you need to elaborate on your reasoning, please use the issue description field above. + options: + - Low (slightly annoying) + - Medium (should be fixed soon) + - High (immediate attention needed) + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/03-feature_request.yml b/.github/ISSUE_TEMPLATE/03-feature_request.yml new file mode 100644 index 0000000..52aae11 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/03-feature_request.yml @@ -0,0 +1,53 @@ +name: Feature request +description: Request a new feature +labels: [enhancement request] +body: + - type: markdown + attributes: + value: | + Thank you for submitting an idea ! + - type: dropdown + id: application_or_package + attributes: + label: Which package or utils is this feature request for? + options: + - asset-manager + - common + - config + - core + - ecs-client + - ecs-lib + - ecs-server + - graphics-2d + - input + - music + - sound + - eslint-config + - prettier-config + validations: + required: true + - type: textarea + id: description + attributes: + label: Feature + description: A clear and concise description of what the problem is, or what feature you want to be implemented. + placeholder: I'm always frustrated when..., A good addition would be... + validations: + required: true + - type: textarea + id: solution + attributes: + label: Ideal solution or implementation + description: A clear and concise description of what you want to happen. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternative solutions or implementations + description: A clear and concise description of any alternative solutions or features you have considered. + - type: textarea + id: additional_context + attributes: + label: Other context + description: Any other context, screenshots, or file uploads that help us understand your feature request. diff --git a/.github/ISSUE_TEMPLATE/04-documentation_issue.yml b/.github/ISSUE_TEMPLATE/04-documentation_issue.yml new file mode 100644 index 0000000..f9542ee --- /dev/null +++ b/.github/ISSUE_TEMPLATE/04-documentation_issue.yml @@ -0,0 +1,27 @@ +name: 📗 Documentation Issue +description: Tell us if there is missing or incorrect documentation +labels: [documentation] +body: + - type: markdown + attributes: + value: | + Thank you for submitting a documentation request ! + - type: dropdown + attributes: + label: What is the type of issue? + multiple: true + options: + - Documentation is missing + - Documentation is incorrect + - Documentation is confusing + - Example code is not working + - Something else + - type: textarea + attributes: + label: What is the issue? + validations: + required: true + - type: textarea + attributes: + label: Where did you find it? + description: If possible, please provide the URL(s) where you found this issue. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..37b84f4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: 💬 Ask a Question + url: https://github.com/NanoForge-dev/Engine/discussions + about: Please ask questions in the discussion tab. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..48a97a8 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,38 @@ +## PR Checklist + +Please check if your PR fulfills the following requirements: + +- [ ] The commit message follows our guidelines: https://github.com/NanoForge-dev/Engine/blob/main/.github/CONTRIBUTING.md +- [ ] Tests for the changes have been added (for bug fixes / features) +- [ ] Docs have been added / updated (for bug fixes / features) + +## PR Type + +What kind of change does this PR introduce? + + + +- [ ] Bugfix +- [ ] Feature +- [ ] Code style update (formatting, local variables) +- [ ] Refactoring (no functional changes, no api changes) +- [ ] Build related changes +- [ ] CI related changes +- [ ] Other... Please describe: + +## What is the current behavior? + + + +Resolves # + +## What is the new behavior? + +## Does this PR introduce a breaking change? + +- [ ] Yes +- [ ] No + + + +## Other information