diff --git a/.github/.lycheeignore b/.github/.lycheeignore
new file mode 100644
index 0000000..dc88a07
--- /dev/null
+++ b/.github/.lycheeignore
@@ -0,0 +1,3 @@
+# Ignorefile for broken link check
+localhost
+mvnrepository.com
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..68299d5
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,68 @@
+name: 🐞 Bug
+description: Create a bug report for something that is broken
+labels: [bug]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for reporting a bug.
+
+ Please fill in as much information as possible about your bug so that we don't have to play "information ping-pong" and can help you immediately.
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: "Checklist"
+ options:
+ - label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
+ required: true
+ - label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
+ required: true
+ - label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
+ required: true
+ - label: "This issue contains only one bug."
+ required: true
+
+ - type: input
+ id: app-version
+ attributes:
+ label: Affected version
+ description: "In which version did you encounter the bug?"
+ placeholder: "x.x.x"
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps-to-reproduce
+ attributes:
+ label: Steps to reproduce the bug
+ description: |
+ What did you do for the bug to show up?
+
+ If you can't cause the bug to show up again reliably (and hence don't have a proper set of steps to give us), please still try to give as many details as possible on how you think you encountered the bug.
+ placeholder: |
+ 1. Use '...'
+ 2. Do '...'
+ validations:
+ required: true
+
+ - type: textarea
+ id: expected-behavior
+ attributes:
+ label: Expected behavior
+ description: |
+ Tell us what you expect to happen.
+
+ - type: textarea
+ id: actual-behavior
+ attributes:
+ label: Actual behavior
+ description: |
+ Tell us what happens with the steps given above.
+
+ - type: textarea
+ id: additional-information
+ attributes:
+ label: Additional information
+ description: |
+ Any other relevant information you'd like to include
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000..b6fb79b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,4 @@
+contact_links:
+ - name: 💬 Contact support
+ url: https://xdev.software/en/services/support
+ about: "If you need support as soon as possible or/and you can't wait for any pull request"
diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml
new file mode 100644
index 0000000..7523129
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/enhancement.yml
@@ -0,0 +1,32 @@
+name: ✨ Feature/Enhancement
+description: Suggest a new feature or enhancement
+labels: [enhancement]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for suggesting a new feature/enhancement.
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: "Checklist"
+ options:
+ - label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
+ required: true
+ - label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
+ required: true
+ - label: "This issue contains only one feature request/enhancement."
+ required: true
+
+ - type: textarea
+ id: description
+ attributes:
+ label: Description
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-information
+ attributes:
+ label: Additional information
diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml
new file mode 100644
index 0000000..6ecd6ad
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.yml
@@ -0,0 +1,31 @@
+name: ❓ Question
+description: Ask a question
+labels: [question]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to fill out this form!
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: "Checklist"
+ options:
+ - label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
+ required: true
+ - label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
+ required: true
+
+ - type: textarea
+ id: what-is-the-question
+ attributes:
+ label: What is/are your question(s)?
+ validations:
+ required: true
+
+ - type: textarea
+ id: additional-information
+ attributes:
+ label: Additional information
+ description: "Any other information you'd like to include - for instance logs, screenshots, etc."
diff --git a/.github/labels.yml b/.github/labels.yml
new file mode 100644
index 0000000..325f4ce
--- /dev/null
+++ b/.github/labels.yml
@@ -0,0 +1,38 @@
+# Default
+## Required for template
+- name: bug
+ description: "Something isn't working"
+ color: 'd73a4a'
+- name: enhancement
+ description: New feature or request
+ color: '#a2eeef'
+- name: question
+ description: Information is requested
+ color: '#d876e3'
+## Others
+- name: duplicate
+ description: This already exists
+ color: '#cfd3d7'
+- name: good first issue
+ description: Good for newcomers
+ color: '#7057ff'
+- name: help wanted
+ description: Extra attention is needed
+ color: '#008672'
+- name: invalid
+ description: "This doesn't seem right"
+ color: '#e4e669'
+# Custom
+- name: automated
+ description: Created by an automation
+ color: '#000000'
+- name: "can't reproduce"
+ color: '#e95f2c'
+- name: customer-requested
+ description: Was requested by a customer of us
+ color: '#068374'
+- name: stale
+ color: '#ededed'
+- name: waiting-for-response
+ description: If no response is received after a certain time the issue will be closed
+ color: '#202020'
diff --git a/.github/workflows/broken-links.yml b/.github/workflows/broken-links.yml
new file mode 100644
index 0000000..96af798
--- /dev/null
+++ b/.github/workflows/broken-links.yml
@@ -0,0 +1,43 @@
+name: Broken links
+
+on:
+ workflow_dispatch:
+ schedule:
+ - cron: "23 23 * * 0"
+
+permissions:
+ issues: write
+
+jobs:
+ link-checker:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - run: mv .github/.lycheeignore .lycheeignore
+
+ - name: Link Checker
+ id: lychee
+ uses: lycheeverse/lychee-action@v1
+
+ - name: Find already existing issue
+ id: find-issue
+ run: |
+ echo "number=$(gh issue list -l 'bug' -l 'automated' -L 1 -S 'in:title \"Link Checker Report\"' -s 'open' --json 'number' --jq '.[].number')" >> $GITHUB_OUTPUT
+ env:
+ GH_TOKEN: ${{ github.token }}
+
+ - name: Close issue if everything is fine
+ if: env.lychee_exit_code == 0 && steps.find-issue.outputs.number != ''
+ run: gh issue close -r 'not planned' ${{ steps.find-issue.outputs.number }}
+ env:
+ GH_TOKEN: ${{ github.token }}
+
+ - name: Create Issue From File
+ if: env.lychee_exit_code != 0
+ uses: peter-evans/create-issue-from-file@v5
+ with:
+ issue-number: ${{ steps.find-issue.outputs.number }}
+ title: Link Checker Report
+ content-filepath: ./lychee/out.md
+ labels: bug, automated
diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml
new file mode 100644
index 0000000..ff880f0
--- /dev/null
+++ b/.github/workflows/sync-labels.yml
@@ -0,0 +1,24 @@
+name: Sync labels
+
+on:
+ push:
+ branches: develop
+ paths:
+ - .github/labels.yml
+
+ workflow_dispatch:
+
+permissions:
+ issues: write
+
+jobs:
+ labels:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ sparse-checkout: .github/labels.yml
+
+ - uses: EndBug/label-sync@v2
+ with:
+ config-file: .github/labels.yml
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 38534ba..cff0211 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -27,6 +27,7 @@ You should have the following things installed:
* Install the following plugins:
* [Save Actions](https://plugins.jetbrains.com/plugin/22113) - Provides save actions, like running the formatter or adding ``final`` to fields
* [SonarLint](https://plugins.jetbrains.com/plugin/7973-sonarlint) - CodeStyle/CodeAnalysis
+ * You may consider disabling telemetry in the settings under ``Tools > Sonarlint -> About``
* [Checkstyle-IDEA](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea) - CodeStyle/CodeAnalysis
* Import the project
* Ensure that everything is encoded in ``UTF-8``
diff --git a/tci-base/pom.xml b/tci-base/pom.xml
index b16f975..2bc66bc 100644
--- a/tci-base/pom.xml
+++ b/tci-base/pom.xml
@@ -134,7 +134,7 @@
org.apache.maven.plugins
maven-site-plugin
- 4.0.0-M13
+ 4.0.0-M14
org.apache.maven.plugins
@@ -147,7 +147,7 @@
com.mycila
license-maven-plugin
- 4.3
+ 4.5
${project.organization.url}