diff --git a/.gitea/issue_template/bugreport.yml b/.gitea/issue_template/bugreport.yml
new file mode 100644
index 0000000..41b4a95
--- /dev/null
+++ b/.gitea/issue_template/bugreport.yml
@@ -0,0 +1,117 @@
+name: '⚠️ Bug report'
+about: 'Report a bug in the framework.'
+title: 'bug: '
+labels:
+ - 'Bug/New'
+body:
+ - type: 'markdown'
+ id: 'text-introduction'
+ attributes:
+ value: |
+ Hey there! Thank you for taking the time to report a bug report to us. \
+ This means a lot to us as that's the only way to get better... and many people don't file bug reports. \
+ Anyway, please answer the following questions accurately, otherwise we won't be able to help you. \
+ \
+ **Note: Please check if the same bug report already exists. If not, continue. If so, participate in that one instead.** \
+ **Note: Please don't censor anything *except* sensitive information. You don't need to be embarrased about your username. You censor your bug report, we censor our answers.**
+ - type: 'textarea'
+ id: 'bug-description'
+ attributes:
+ label: 'Bug description'
+ description: 'Explain what the bug is about. Include as many details as possible.'
+ placeholder: 'My cat spontaneously explodes when I try to download `https://yourdick.zip`.'
+ validations:
+ required: true
+ - type: 'textarea'
+ id: 'bug-log'
+ attributes:
+ label: 'Bug log'
+ description: 'For us to understand the problem you''re having please insert the ENTIRE log file here. You must give us `DIAG` level logs (set `logger_level` in CORE''s configuration to `CoreTypes.LoggerLevel.DIAG` during initialization). **Leave this empty if you give us a reproduction project.**'
+ placeholder: 'Your log file here...'
+ value: |
+
+ Your log file here...
+ Note: We wrap the log in the `details` tag so the log doesn't take up too much space in the issue. Please don't remove them.
+
+ validations:
+ required: false
+ - type: 'textarea'
+ id: 'bug-snippet'
+ attributes:
+ label: 'Bug snippet'
+ description: 'Insert a snippet of your code that you think is causing the issue. **Leave this empty if you give us a reproduction project.**'
+ value: |
+
+ ```gdscript
+ Your code snippet here...
+ Note: We wrap the snippet in the `details` tag so the code doesn't take up too much space in the issue. Please don't remove them.
+ ```
+
+ validations:
+ required: false
+ - type: 'textarea'
+ id: 'bug-reproduce'
+ attributes:
+ label: 'Bug reproduction guide'
+ description: 'Explain how we can reproduce this bug as easy as possible step by step.'
+ placeholder: |
+ 1. Initialize CORE with the standard configuration
+ 2. Use any of `erm` functions to download from `https://yourdick.zip`. `parse_utf8`/`return_utf8`'s value is irrelevant.
+ 3. Wait for it to download.
+ 4. The nearest cat explodes in the next few seconds.
+ validations:
+ required: true
+ - type: 'input'
+ id: 'bug-reproduce-project'
+ attributes:
+ label: 'Bug reproduction project'
+ description: 'Drop a link to some repository or a zip file of an example project showcasing the bug *if the bug is a bit more advanced, needs specific timing, etc.*. Please check if the bug actually occurs in that example project!'
+ placeholder: 'https://your.reproduction.project/download/url/here'
+ validations:
+ required: false
+ - type: 'dropdown'
+ id: 'framework-branch'
+ attributes:
+ label: 'Branch'
+ description: 'What branch are you using?'
+ options:
+ - stable
+ - develop
+ validations:
+ required: true
+ - type: 'input'
+ id: 'framework-version-or-commit'
+ attributes:
+ label: 'Version/Commit'
+ description: 'Name the version (for the stable branch) or the commit (for the develop branch) here.'
+ placeholder: 'ex. v505-r69 OR ed4647c750f67cb6108c845ed6291dae9627cf56'
+ validations:
+ required: true
+ - type: 'input'
+ id: 'godot-version'
+ attributes:
+ label: 'Godot Version'
+ description: 'Name the engine version you are using. You can copy it by starting the editor''s project manager and clicking on the version text in the top right corner.'
+ placeholder: 'ex. v4.2.1.stable.flathub [b09f793f5]'
+ validations:
+ required: true
+ - type: 'input'
+ id: 'godot-custom'
+ attributes:
+ label: 'Modified engine vendor'
+ description: 'Name the custom engine name and/or link if the engine you are using isn''t directly built from Godot''s source code (i.e. a fork). **Leave empty if you''re not using a fork of the Godot Engine.**'
+ placeholder: 'e.g. godot-vita (https://github.com/SonicMastr/godot-vita)'
+ validations:
+ required: false
+ - type: 'input'
+ id: 'os'
+ attributes:
+ label: 'Target operating system'
+ description: 'Name the target operating system, it''s version (if applicable) and architecture (if the OS supports more than one architecture) here. If you''re developing a phone game and the issue only occurs on Android/iOS, don''t name your desktop operating system here.'
+ placeholder: 'e.g. Android 14 on arm64 or Windows 11 on amd64 or Arch Linux or Debian trixie on arm64 or FreeBSD on amd64 or UwUntu or TempleOS'
+ validations:
+ required: true
+ - type: 'markdown'
+ id: 'text-tysm'
+ attributes:
+ value: 'Thank you for filling out this bug report. Please check your answers before sending this report.'
diff --git a/.gitea/issue_template/config.yml b/.gitea/issue_template/config.yml
new file mode 100644
index 0000000..cef3ed4
--- /dev/null
+++ b/.gitea/issue_template/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: false
+contact_links:
+ - name: '📚 Documentation'
+ about: 'Visit the documentation. Maybe your answer is written somewhere on there instead.'
+ url: 'https://core.staropensource.de'
+ - name: '❓ Infrequently Asked Questions'
+ about: 'There we cover some questions you may ask yourself (or not).'
+ url: 'https://core.staropensource.de/iaq'
diff --git a/.gitea/issue_template/featurerequest.yml b/.gitea/issue_template/featurerequest.yml
new file mode 100644
index 0000000..2c11897
--- /dev/null
+++ b/.gitea/issue_template/featurerequest.yml
@@ -0,0 +1,54 @@
+name: '✨ Feature Request'
+about: 'Request a feature to be implemented in the framework.'
+title: 'feat: '
+labels:
+ - 'FeatureRequest/New'
+body:
+ - type: 'markdown'
+ id: 'text-introduction'
+ attributes:
+ value: |
+ Hey there! Thank you for taking the time to report a feature request to us. \
+ Before filling any of this out, please think for one minute if the feature is really important and necessary for all/many projects to have. \
+ If not it would probably best to write a custom module for the feature you want added. \
+ Please answer the following questions accurately, otherwise we may not be able to add the feature. \
+ \
+ **Note: Please check if the same feature request already exists. If not, continue. If so, participate in that one instead.** \
+ **Note: Please don't censor anything *except* sensitive information. You don''t need to be embarrased about your username. You censor your bug report, we censor our answers.**
+ - type: 'textarea'
+ id: 'feature-description'
+ attributes:
+ label: 'Feature description'
+ description: 'Explain *what* you want added. Also describe why this feature can''t implemented without integrating it into the CORE Framework. Include as many details as possible.'
+ placeholder: |
+ Example:
+ I want to do XY in my project, which is fairely hard to implement but would benefit a lot of projects.
+ validations:
+ required: true
+ - type: 'textarea'
+ id: 'feature-implementation'
+ attributes:
+ label: 'Feature implementation'
+ description: 'Explain *how* you want it added. Include as many details as possible. Also include alternative ways of implementing the feature in the framework (if possible).'
+ placeholder: |
+ Example:
+ I would propose to .
+ I''ve also thought on simply .
+ validations:
+ required: true
+ - type: 'textarea'
+ id: 'feature-alternatives'
+ attributes:
+ label: 'Feature alternatives'
+ description: 'Explain how could be possible to implement the feature without building it into the framework directly. Include as many details as possible. **Leave empty if it can''t simply be solved by adding a module.**'
+ placeholder: |
+ Example:
+ I''ve considered using a custom module for this feature.
+ Otherwise it would be possible to use .
+ I''ve also considered using the engine''s way of doing it by .
+ validations:
+ required: false
+ - type: 'markdown'
+ id: 'text-tysm'
+ attributes:
+ value: 'Thank you for filling out this feature request form. Please check your answers before sending this report.'
diff --git a/.gitea/issue_template/helprequest.yml b/.gitea/issue_template/helprequest.yml
new file mode 100644
index 0000000..9f120a0
--- /dev/null
+++ b/.gitea/issue_template/helprequest.yml
@@ -0,0 +1,86 @@
+name: '💬 Help'
+about: 'Request help.'
+title: 'help: '
+labels:
+ - 'Help/Wanted'
+body:
+ - type: 'markdown'
+ id: 'text-introduction'
+ attributes:
+ value: |
+ Hey there! Seems like you have some kind of issue with the CORE Framework. \
+ Please answer the following questions accurately, otherwise we won't be able to help you. \
+ \
+ **Note: Please check if someone has had the same issue before. If not, continue. If so, participate in that one instead.** \
+ **Note: Please don't censor anything *except* sensitive information. You don't need to be embarrased about your username. You censor your stuff, we censor our answers.**
+ - type: 'textarea'
+ id: 'help-description'
+ attributes:
+ label: 'Problem description'
+ description: 'Explain what your problem is as detailed as possible.'
+ placeholder: 'How can I reposition scenes inside a scene collection?'
+ validations:
+ required: true
+ - type: 'textarea'
+ id: 'help-log'
+ attributes:
+ label: 'Log'
+ description: 'For us to understand the problem you''re having please insert the ENTIRE log file here. You must give us `DIAG` level logs (set `logger_level` in CORE''s configuration to `CoreTypes.LoggerLevel.DIAG` during initialization). **Leave this empty if your problem does not need log output or doesn''t involve code at all.**'
+ placeholder: 'Your log file here...'
+ value: |
+
+ Your log file here...
+ Note: We wrap the log in the `details` tag so the log doesn't take up too much space in the issue. Please don't remove them.
+
+ validations:
+ required: false
+ - type: 'textarea'
+ id: 'help-snippet'
+ attributes:
+ label: 'Code snippet'
+ description: 'Insert a snippet of your code that you need help with. **Leave this empty if your problem does not need log output or doesn''t involve code at all.**'
+ value: |
+
+ Your code snippet here...
+ Note: We wrap the snippet in the `details` tag so the code doesn't take up too much space in the issue. Please don't remove them.
+
+ validations:
+ required: false
+ - type: 'dropdown'
+ id: 'framework-branch'
+ attributes:
+ label: 'Branch'
+ description: 'What branch are you using?'
+ options:
+ - stable
+ - develop
+ validations:
+ required: true
+ - type: 'input'
+ id: 'framework-version-or-commit'
+ attributes:
+ label: 'Version/Commit'
+ description: 'Name the version (for the stable branch) or the commit (for the develop branch) here.'
+ placeholder: 'ex. v505-r69 OR ed4647c750f67cb6108c845ed6291dae9627cf56'
+ validations:
+ required: true
+ - type: 'input'
+ id: 'godot-version'
+ attributes:
+ label: 'Godot Version'
+ description: 'Name the engine version you are using. You can copy it by starting the editor''s project manager and clicking on the version text in the top right corner.'
+ placeholder: 'ex. v4.2.1.stable.flathub [b09f793f5]'
+ validations:
+ required: true
+ - type: 'input'
+ id: 'godot-custom'
+ attributes:
+ label: 'Modified engine vendor'
+ description: 'Name the custom engine name and/or link if the engine you are using isn''t directly built from Godot''s source code (i.e. a fork). **Leave empty if you''re not using a fork of the Godot Engine.**'
+ placeholder: 'e.g. godot-vita (https://github.com/SonicMastr/godot-vita)'
+ validations:
+ required: false
+ - type: 'markdown'
+ id: 'text-tysm'
+ attributes:
+ value: 'Thank you for filling out this help form. Please check your answers before sending your help request.'
diff --git a/.gitea/pull_request_template.md b/.gitea/pull_request_template.md
new file mode 100644
index 0000000..22a379c
--- /dev/null
+++ b/.gitea/pull_request_template.md
@@ -0,0 +1,12 @@
+---
+name: 'Pull Request'
+about: 'Submit a pull request.'
+title: 'new: '
+ref: 'develop'
+labels:
+ - 'PRStatus/Open'
+ - 'PR/New'
+---
+