The first release in over six years; many of these changes have already been running on my node for a long time, but I was always too lazy to tie it all up into a new release. Not anymore!
### Added
- Debug logging for unregistering USKs.
- Log decisions for loading/not loading elements.
- Also download files from archives.
- Allow not loading posts or replies that are older than _n_ days, to reduce memory usage.
### Changed
- Update to Gradle 8.14.5.
- Update Fred dependency to build 1501.
- Update dependencies to work with Java 21.
- Reduce dependency on `net.pterodactylus.utils` package.
- Convert more code to Kotlin.
- Refactoring of some tests to rely less on Mockito.
- Mention in web interface that the WebOfTrust plugin might take some time to create identities.
- Improve extraction of text from sites.
- Link parser considers colons as parts of links only if they’re not followed by whitespace.
- Slightly improve styling of page footer.
- Update README.md to reflect changed name of Hyphanet.
- Updated all translations.
### Removed
- Remove FindBugs plugin from build.
- Remove all mentions of Flattr; it’s dead. 🙁
### Fixed
- Broken USK links will no longer be parsed.
- `NullPointerException` during Sone removal.
- Make it possible again to change languages on-the-fly.
- Fix name of test that wouldn’t work on Windows.
- Fix tests failing on non-English systems.
- Fix loading elements when the URL would be too long.
- Fix logging of DefaultElementsLoader by keeping the logger instance alive.
- XML parser is no longer vulnerable to XXE vulnerability. (This is only listed in “Fixed” and not in “Security” because there was never a way to actually exploit it.)
-----BEGIN PGP SIGNATURE-----
iQJPBAABCAA5FiEEHcYarlOxERlZ2glRs7VmL4LSrlgFAmriVgAbFIAAAAAABAAO
bWFudTIsMi41KzEuMTIsMCwzAAoJELO1Zi+C0q5Y+v0P/0SNb5KzKgzHv+wUz6n8
pBcJsSca4ZGn5zSCZvnTAHKFY9vOuNfVabt8o4TU+udgy0nAp0s1Y/g/zQl37A3n
go+lnOwjpOt2lhj7kk4cWOv269WAAA+UTwbvnebtgtXmPV/K9ONjPGQsNwKzV3zk
0Z39JllcoPW549VldAjwnhrFUl+3x374e/+oxwlgU5J9JF1y06jp/y4fPZd+nzzy
2BuKfVby7c4YbvetoOcUNlDZPt74tt2Nh0h4hv8vja3OMVAs3G5cKiMPqbsiBEnJ
5aKaUVd6gSCfewllaIT1XICdFevaZFzPkjOT/HKJFRl9jJwK1aFa0wEjkfJTBH8l
TFFvrBDegQboNgKoeeMSfbm8gXyh3uCqDFxsU9lIQnEG/BgtmsV2OYSqdsDLISz5
ZxFbcHjsybbmkJcAmTa9W57hJQOg6imPSYAuAVZ0QUbhVLjZHamx1p/7PL2h+nXD
FE9tGR4yA1m3RZMaxvtG3NB4tMwkWub9kj5kUDe00PMTVnzUdTxlOII0Q0sXHJfR
5/y2+hN+zoKDyBHgmUHHMm5rvjNNlDeYCF+9OpGwbgnbXDC5IUEN1hMncjvF58eX
wwcrqFTjEvx/3WPk4+/HTtX49BNBFFA5WbJzN2w4CPCJH0ApJuhJREEpbG6ehhIh
aWwjksmLtG1zgZ1HKcogdemF
=Grb4
-----END PGP SIGNATURE-----