Skip to content
This repository was archived by the owner on Sep 17, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
eaa7a17
Update dependency com.puppycrawl.tools:checkstyle to v13.9.0
xdev-renovate Jul 27, 2026
d7bb009
Update redirect links
AB-xdev Aug 3, 2026
05f54ff
Stackoverflow links return 403 when validated
AB-xdev Aug 3, 2026
43b46dd
Merge pull request #295 from xdev-software/renovate/com.puppycrawl.to…
AB-xdev Aug 3, 2026
19fce86
CS 13.9 remove removed JavadocStyle and replace it with JavadocConten…
AB-xdev Aug 3, 2026
d7a4129
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
15a4b98
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
d6989c5
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
25c8893
Update pmd-x.xml
AB-xdev Aug 3, 2026
036e180
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
422da0a
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
7c1a2ee
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 3, 2026
9871cfb
Update dependency org.apache.httpcomponents.client5:httpclient5 to v5…
xdev-renovate Aug 4, 2026
e1ddb41
Update dependency org.openapitools:jackson-databind-nullable to v0.2.11
xdev-renovate Aug 4, 2026
90458f5
Update dependency com.fasterxml.jackson:jackson-bom to v2.22.1
xdev-renovate Aug 4, 2026
a02a52d
Update dependency org.openapitools:openapi-generator-maven-plugin to …
xdev-renovate Aug 4, 2026
48b952e
Update log4j2-version to v2.26.1
xdev-renovate Aug 4, 2026
bc90eb7
Fix redirect link
AB-xdev Aug 4, 2026
4903c20
Merge pull request #444 from xdev-software/renovate/org.openapitools-…
AB-xdev Aug 4, 2026
7224e0b
Merge pull request #434 from xdev-software/renovate/org.apache.httpco…
AB-xdev Aug 4, 2026
6c461b9
Merge pull request #421 from xdev-software/renovate/com.fasterxml.jac…
AB-xdev Aug 4, 2026
9ed77cb
Merge pull request #418 from xdev-software/renovate/log4j2-version
AB-xdev Aug 4, 2026
9856aab
Merge pull request #428 from xdev-software/renovate/org.openapitools-…
AB-xdev Aug 4, 2026
77e9b44
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 4, 2026
eb3f2dc
Update to Jackson to v3
AB-xdev Aug 5, 2026
867b1fe
Update shogo82148/actions-create-release digest to 8674c0e
xdev-renovate Aug 7, 2026
9be12ab
Update dependency com.puppycrawl.tools:checkstyle to v13.10.0
xdev-renovate Aug 10, 2026
73ac33f
Merge pull request #298 from xdev-software/renovate/shogo82148-action…
AB-xdev Aug 11, 2026
c58fd6e
Merge pull request #299 from xdev-software/renovate/com.puppycrawl.to…
AB-xdev Aug 11, 2026
84352e2
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 11, 2026
64dedb0
Add hint to additional information that people can include screenshot…
AB-xdev Aug 20, 2026
c24dc7e
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 20, 2026
f74eb3e
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 20, 2026
3c8218d
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Aug 20, 2026
93bd66d
Update actions/setup-java action to v6
xdev-renovate Aug 25, 2026
725993c
Merge pull request #304 from xdev-software/renovate/actions-setup-jav…
AB-xdev Aug 31, 2026
ee3a9cb
Add new CheckStyle rules for v14
AB-xdev Aug 31, 2026
501e65a
Update dependency com.mycila:license-maven-plugin to v5.1.2
xdev-renovate Sep 1, 2026
70c3524
Update net.sourceforge.pmd to v7.27.0
xdev-renovate Sep 1, 2026
77fb755
Update dependency com.puppycrawl.tools:checkstyle to v14
xdev-renovate Sep 1, 2026
1005278
Merge pull request #303 from xdev-software/renovate/com.mycila-licens…
AB-xdev Sep 1, 2026
0ee3b7e
Merge pull request #301 from xdev-software/renovate/com.puppycrawl.to…
AB-xdev Sep 1, 2026
88a50b5
Merge pull request #305 from xdev-software/renovate/net.sourceforge.pmd
AB-xdev Sep 1, 2026
3070996
PMD 7.27: Fix deprecation
AB-xdev Sep 1, 2026
c94f8c2
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 1, 2026
f1f37fe
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 1, 2026
238ad3a
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 1, 2026
ac8a777
Add centralized contribution guide with AI policy attached to it
AB-xdev Sep 15, 2026
1cb7ab0
Update renovate.json5
AB-xdev Sep 16, 2026
8a4f172
Fix typo and reword
AB-xdev Sep 16, 2026
a8a76d2
Merge pull request #16 from xdev-software/ai-policy
AB-xdev Sep 16, 2026
1566844
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
be5e290
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
bed3494
Merge remote-tracking branch 'origin/update-from-template-github_com_…
AB-xdev Sep 16, 2026
54a6f60
Fill in DEVELOPING.md
AB-xdev Sep 16, 2026
1347345
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
8fcd26b
Use the power of parallelization in GHA
AB-xdev Sep 16, 2026
66af1c9
Use parallelization in GHA
AB-xdev Sep 16, 2026
540ac8c
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
5fca134
Remove dynamically inserted project
AB-xdev Sep 16, 2026
a13312c
Merge branch 'master' into update-from-template-github_com_xdev-softw…
xdev-gh-bot Sep 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
<module name="ExplicitInitialization">
<property name="severity" value="info"/>
</module>
<module name="ExpressionOverBlockLambda"/>
<module name="FinalClass"/>
<module name="FinalParameters"/>
<module name="GenericWhitespace"/>
Expand All @@ -87,9 +88,7 @@
<module name="IllegalImport"/>
<module name="IllegalSymbol"/>
<module name="InterfaceIsType"/>
<module name="JavadocStyle">
<property name="checkFirstSentence" value="false"/>
</module>
<module name="JavadocContentLocation"/>
<module name="LeftCurly">
<!-- Default minus Lambda -->
<property name="tokens" value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF, INTERFACE_DEF, LITERAL_CASE, LITERAL_CATCH, LITERAL_DEFAULT, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF, OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF"/>
Expand Down Expand Up @@ -146,6 +145,7 @@
<module name="UnnecessarySemicolonInTryWithResources"/>
<module name="UnusedImports"/>
<module name="UnusedLocalVariable"/>
<module name="UnusedPrivateField"/>
<!-- Disabled by default; should be enabled on Java 25+ -->
<!-- <module name="UnusedTryResourceShouldBeUnnamed"/> -->
<module name="UpperEll"/>
Expand Down
2 changes: 1 addition & 1 deletion .config/pmd/java/ruleset.xml
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
<rule ref="category/java/errorprone.xml/UnconditionalIfStatement"/>
<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange"/>
<rule ref="category/java/errorprone.xml/UnsupportedJdkApiUsage"/>
<rule ref="category/java/errorprone.xml/UselessPureMethodCall"/>
<rule ref="category/java/errorprone.xml/UnusedReturnValue"/>


<rule ref="category/java/multithreading.xml">
Expand Down
1 change: 1 addition & 0 deletions .github/.lycheeignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
# Ignorefile for broken link check
localhost
mvnrepository.com
stackoverflow.com
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,4 @@ body:
attributes:
label: Additional information
description: |
Any other relevant information you'd like to include
Any other relevant information you'd like to include, e.g. screenshots or video recordings of the bug
113 changes: 58 additions & 55 deletions .github/workflows/check-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,20 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-build-
- parallel:
- name: Set up JDK
uses: actions/setup-java@v6
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-build-

- name: Build with Maven
run: ./mvnw -B clean package
Expand Down Expand Up @@ -86,27 +87,28 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-checkstyle-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-checkstyle-

- name: CheckStyle Cache
uses: actions/cache@v6
with:
path: '**/target/checkstyle-cachefile'
key: ${{ runner.os }}-checkstyle-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-checkstyle-
- parallel:
- name: Set up JDK
uses: actions/setup-java@v6
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-checkstyle-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-checkstyle-

- name: CheckStyle Cache
uses: actions/cache@v6
with:
path: '**/target/checkstyle-cachefile'
key: ${{ runner.os }}-checkstyle-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-checkstyle-

- name: Run Checkstyle
run: ./mvnw -B checkstyle:check -P checkstyle -T2C
Expand All @@ -122,27 +124,28 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v5
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-pmd-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-pmd-

- name: PMD Cache
uses: actions/cache@v6
with:
path: '**/target/pmd/pmd.cache'
key: ${{ runner.os }}-pmd-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-pmd-
- parallel:
- name: Set up JDK
uses: actions/setup-java@v6
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java }}

- name: Cache Maven
uses: actions/cache@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-pmd-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-pmd-

- name: PMD Cache
uses: actions/cache@v6
with:
path: '**/target/pmd/pmd.cache'
key: ${{ runner.os }}-pmd-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-pmd-

- name: Run PMD
run: ./mvnw -B test pmd:aggregate-pmd-no-fork pmd:check -P pmd -DskipTests -T2C
Expand Down
37 changes: 19 additions & 18 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,20 +20,21 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'temurin'

# Try to reuse existing cache from check-build
- name: Try restore Maven Cache
uses: actions/cache/restore@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-build-
- parallel:
- name: Set up JDK
uses: actions/setup-java@v6
with:
java-version: '17'
distribution: 'temurin'

# Try to reuse existing cache from check-build
- name: Try restore Maven Cache
uses: actions/cache/restore@v6
with:
path: ~/.m2/repository
key: ${{ runner.os }}-mvn-build-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-mvn-build-

- name: Build with Maven
run: ./mvnw -B clean package -T2C
Expand Down Expand Up @@ -91,7 +92,7 @@ jobs:

- name: Create Release
id: create-release
uses: shogo82148/actions-create-release@6a396031bc74c57403da1018fec74d24c6aa03cd # v1
uses: shogo82148/actions-create-release@8674c0ecee617c8dfb006526bcc22a362c70b88a # v1
with:
tag_name: v${{ steps.version.outputs.release }}
release_name: v${{ steps.version.outputs.release }}
Expand Down Expand Up @@ -124,7 +125,7 @@ jobs:
git pull

- name: Set up JDK
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with: # running setup-java overwrites the settings.xml
distribution: 'temurin'
java-version: '17'
Expand All @@ -141,7 +142,7 @@ jobs:
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

- name: Set up JDK
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with: # running setup-java again overwrites the settings.xml
distribution: 'temurin'
java-version: '17'
Expand Down Expand Up @@ -172,7 +173,7 @@ jobs:
git pull

- name: Setup - Java
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with:
java-version: '17'
distribution: 'temurin'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: actions/checkout@v7

- name: Set up JDK
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with: # running setup-java overwrites the settings.xml
distribution: 'temurin'
java-version: '17'
Expand All @@ -31,7 +31,7 @@ jobs:
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}

- name: Set up JDK
uses: actions/setup-java@v5
uses: actions/setup-java@v6
with: # running setup-java again overwrites the settings.xml
distribution: 'temurin'
java-version: '17'
Expand Down
2 changes: 1 addition & 1 deletion .idea/pmd-x.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

82 changes: 32 additions & 50 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,56 @@
## Contributing
# Contributing

We would absolutely love to get the community involved, and we welcome any form of contributions comments and questions on different communication channels, issues and pull request and anything that you build and share using our components.
We would absolutely love to get the community involved and we welcome any form of contributions - comments and questions, issues, pull request and anything that you build and share using our project.

### Communication channels
## Communication channels
* Communication is primarily done using issues.
* If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).
* If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services-products/support).
* As a last resort measure or on otherwise important matter you may also [contact us directly](https://xdev.software/en/about-us/contact).

### Ways to help
* **Report bugs**<br/>Create an issue or send a pull request
## Ways to help
* **Report bugs**<br/>Create an issue and send a pull request
* **Send pull requests**<br/>If you want to contribute code, check out the development instructions below.
* However when contributing larger new features, please first discuss the change you wish to make via issue with the owners of this repository before making it.<br/>Otherwise your work might be rejected and your effort was pointless.
* Please also note that your pull request might not be noticed immediately when it's not attached to an issue.

We also encourage you to read the [contribution instructions by GitHub](https://docs.github.com/en/get-started/quickstart/contributing-to-projects).
We also encourage you to read the [contribution instructions by GitHub](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project).

## Developing

### Software Requirements
You should have the following things installed:
* Git
* Java 25 - should be as unmodified as possible (Recommended: [Eclipse Adoptium](https://adoptium.net/temurin/releases/))
* Maven (Note that the [Maven Wrapper](https://maven.apache.org/wrapper/) is shipped with the repo)
Project specific development instructions can be found in [DEVELOPING.md](./DEVELOPING.md)

### Recommended setup
* Install `IntelliJ`
* Recommended setup actions
* Disable not needed plugins
* Disable [telemetry](https://www.jetbrains.com/help/idea/settings-usage-statistics.html)
* Configure the available memory
* Import the project
* You will get prompted to install the required plugins
* Ensure that everything is encoded in `UTF-8`
* Ensure that the JDK/Java-Version is correct

## On AI use / LLM generated content

## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml)
_Our reason for the strict policy is due to [unqualified people using the technology](https://en.wikipedia.org/wiki/AI_slop)._

Before releasing:
* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
* Check the [changelog](CHANGELOG.md)
<sup>This policy was inspired by the AI policies of `curl`, `MESA`, `matplotlib` and `Ghostty`.</sup>

If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes
### Issues and security reports

When the release is finished do the following:
* Merge the auto-generated PR (with the incremented version number) back into the ``develop``
If you asked an AI tool to find problems in the project, you must make sure to reveal this fact in your issue.

### Release failures
You must also double-check the findings carefully before reporting them to us to validate that the issue is indeed existing and working exactly as the AI says. AI-based tools frequently generate inaccurate or fabricated results.

There are 2 modes of release failure:
1. The remote server was e.g. down and non of the artifacts got published
2. There was a build failure during release and only parts of the artifacts got released
Further: It is rarely a good idea to copy and paste an AI generated report to the project. Those are typically too wordy and rarely to the point - in addition to the common fabricated details.<br/>
If you actually find a problem with an AI and you have verified it yourself to be true: Write the issue/report yourself and explain the problem as you have learned it. This makes sure the AI-generated inaccuracies and invented issues are filtered out early before they waste more people's time.

In case 1 we can re-release the existing version,<br/>in case 2 we have to release a new version when we can't get the artifacts deleted (as is the case with Maven Central)
As we take security reports seriously, we investigate each report with priority. This work is both time and energy consuming and pulls us away from doing other meaningful work. Fake and otherwise made up security problems effectively prevent us from doing real project work and make us waste time and resources.

#### How-to: Re-Releasing an existing version
We will ban and report users who submit made up fake reports.

1. Delete the release on GitHub
2. Delete the release Git tag from the repo (locally and remote!)
3. Delete the ``master``-Branch and re-create it from the ``develop`` branch (or reset it to the state before the release-workflow commits have been done)
* This requires __temporarily__ removing the branch protection
* Once this was done a new release is triggered immediately!
### Pull requests

#### How-to: Releasing a new version
When contributing content to the project, you give us permission to use it as-is and you must make sure you are allowed to distribute it to us. By submitting a change to us, you agree that the changes can and should be adopted and get redistributed under the project's license. Authors should be explicitly aware that the burden is on them to ensure no unlicensed code is submitted to the project.

1. Merge the ``master`` branch back into ``develop`` (or another temporary branch)
2. Make sure all master branch versions are prepared for a new release<br/>e.g. if the broken release was ``1.0.0`` the version should now be at ``1.0.1-SNAPSHOT`` - the ``SNAPSHOT`` is important for the workflow!
3. Mark the broken release as broken e.g. inside the Changelog, GitHub Release page, etc.<br/>
You can use something like this:
```
> [!WARNING]
> This release is broken as my cat accidentally clicked the abort button during the process
```
4. Merge the changes back into the ``master`` branch to trigger a new release
This is independent if AI is used or not.

When contributing a pull request you should of course always make sure that the proposal is good quality and a best effort that follows our guidelines. A basic rule of thumb is that if someone can spot that the contribution was made with the help of AI, you have more work to do.

We can accept code written with the help of AI into the project, but the code must still follow coding standards, be written clearly and adhere to all the normal requirements we have.

### Further notices

* External AI tooling (e.g. bots, agents) directly interacting with the project - without a human - are not allowed and will be banned and reported.
* For commit messages the same guidelines as described above for issues apply - fully generated messages are not allowed.
* AI assisted/generated commits can NOT use the `Co-authored-by` tag as this is reserved for humans - use `Assisted-by`/`Generated-by` instead.
Loading