Merge beta into main
Various improvements and fixes. Main points are filter methods START, END, CONTAIN, REGEX, EITHER and the ability to use Minecraft snapshots and pre-releases (especially useful for Fabric users). Also fully automates previously manual tasks in CI, namely publishing and releasing to OSSRH, but also fully mirroring releases on GitHub, including changelogs It also adds caching to ServerPackCreators CI/CD Pipeline, removes unnecessary workflow runs after a new release and splits the publishing to mavens into separate jobs.
- improv(Minecraft snapshot and pre-release versions): Opt-in for listing Minecraft pre-release and snapshot versions via
de.griefed.serverpackcreator.minecraft.snapshots
- improv(User-specified clientside-only mod exclusion filters): Allow users to change the way SPC filters user-specified clientside-only mods by introducting an additional property de.griefed.serverpackcreator.serverpack.autodiscovery.filter
- fix(ApplicationProperties): Remove unnecessary and conflicting declaration
- refactor(Start): When running as webservice, read serverpackcreator.properties, too. Re-order assignment for ARGS.
- ci(Maven Publish): Delete old maven publish job which is no longer needed.
- ci(Maven Publish): Add and configure Nexus Staging plugin to automate stage,close and release on OSSRH
- ci(GitHub): Migrate to Zulu JDK 8. Cache gradle dependencies. Acquire changelog from CHANGELOG.md and create release and pre-release with it.
- refactor(ApplicationProperties): Custom getter and setter to make property handling easier and more reliable.
- ci(Caching): Cache gradle and node dependencies to improve build and test speeds
- ci(Qodana): Exclude the frontend from the Qodana checks and reports
- ci(Caching): Move caches to appropriate jobs and introduce pull-push accordingly. Give artifacts an appropriate name depending on branch, commit short sha and the ci job name.
- refactor: Mark appropriate classes as final
- chore(Dependencies): Update dependencies
- build(Node and Frontend): Skip node and quasar installation if the corresponding folders are already present
- fix(User-specified clientside-only mod exclusion): Correctly scan with user-specified values and excluded based on the currently set filter.
- chore: Remove duplicate entry from CHANGELOG.md
- fix(GitHub CI): Acquire the release notes from GitLab via GitLab API
- ci(GitLab): Point in the right directions for changelogs in GitLab.com releases.
- ci(GitLab): Prevent workflow from running when the branch variable is null, a commit tag variable is available and the commit title is that of a release.
- fix(Properties): Only overwrite autodiscovery-property when legacy value is present.
- fix(GitLab CI): Run workflow for tag pipelines when a release was published.
- fix(Fallback Mods): Acquire correct fallback clientside-only mods list depending on the currently set filter method.
- improv(Menubar i18n): Replace 'New configuration' in File-menu with language key, allowing for translation
- fix(GUI Config Loading): Correctly set modloader versions when loading from a config.
- ci(GitLab): Switch newline to line break in release job for gitlab.com
- fix(Scripts): Set and write default values in start scripts
- test: Read correct script for contains-assertion.
- test: Test scriptSettings after configuration check and further test created scripts after server pack creation. Test filter settings for returned fallback list and filter method.