New Year's Release: The Fabled 1.0.0
Introducing the long-awaited, much-anticipated, rumored and reputed release of the times!
1.0.0 is officially released in stable form!
This New Year's special release brings a guaranteed stable API to LibertyBans, providing a solid basis for a healthy and long-lasting period of growth for the plugin and its community.
New features and improvements:
- Multi-proxy synchronization (#44 and #100). LibertyBans now operates fully-featured on multi-proxy setups; it is possible to ban, mute, warn, and kick players on other backend servers, as well as undo punishments. See the wiki for more information.
- Better documentation. All documentation is located at https://libertybans.org. The database schema is now better documented (#78).
- PostgreSQL support (#48). At least PostgreSQL 12 is required. Included is experimental support for CockroachDB, a database which is quite alike to PostgreSQL and tries to emulate it.
- Composite victims (#73). This powerful feature, while somewhat advanced in nature, is applicable to several use cases. See the wiki for more information.
- Added a %PREVIOUSPAGE% variable (#87).
- Added new variables to punishment messages: %TYPE_VERB%, %TIME_PASSED_SIMPLE%, %TIME_REMAINING_SIMPLE%, %HAS_EXPIRED% (#109).
- Permissions have been redone to follow a direct pattern (#25).
- Tab completion now ignores case (#111).
Improvements to usability, to make LibertyBans a more popular plugin (in the traditional sense of the word popular):
- In release builds, HikariCP is relocated in LibertyBans (0f22160). So, the presence of unrelocated HikariCP copies in other plugins -- bugs, which must be remedied -- will not prevent the operation of LibertyBans.
- It is still imperative to fix bugs in your server as a responsible and competent administrator. LibertyBans will continue to warn the user when unrelocated dependencies are detected.
- On Velocity, the plugin which failed to relocate is now identified (#92).
- An informative error message is printed when users do not have the proper SQL permissions (5cc7b40). This mitigates a pterodactyl bug which causes pterodactyl to grant insufficient SQL permissions.
- The pterodactyl bug is unfortunate because it prevents use of certain advanced SQL features. Appropriate use of language features is a mark of code quality. Consequently, the pterodactyl bug demotes coding practices in plugins, leading to lower-quality software.
- Please "thumbs up" this pull request to show your support for fixing ecosystem-damaging bugs: pterodactyl/panel#3800 (Simply upvote - do not post unnecessary comments). When this bug is fixed, plugin developers will be emboldened to use more advanced SQL, enhancing their programmatic capabilities and enabling more effective and powerful plugins.
For existing users, a robust and easy (hopefully easy) migration path from 0.8.x is provided:
- Migration Guide
- The migration guide currently does not cover having a LibertyBans 0.8.x instance co-exist with 1.0.0 on the same database.
- A compatibility mode will be created in LibertyBans 0.8.2, an upcoming release, providing the ability to have LibertyBans 0.8.2 co-exist on the same database with 1.0.x.
- Until 0.8.2 is released with this compatibility mode, it will not be possible to operate a LibertyBans 0.8.x instance on the same database as 1.0.x, and it should not be tried, either.
A reminder and some comments on the long-term support policy:
- At a bare minimum, LibertyBans major releases are supported for at least 4 months after a new major release. This means LibertyBans 0.8.x will be supported until at least May 2022, which is a long time from now.
- Since LibertyBans 0.8.2 (an upcoming 0.8.x version which will provide a compatibility mode with 1.0.0) has not yet been released, I will start the long-term support schedule once this version is released. This is because I consider the long-term support period to be for the purpose of migration, and migration is most feasible when all compatibility options have been released.
- In practice, I may decide to extend support for LibertyBans 0.8.x past the minimum of 4 months. I will do this if I learn of users who need to remain on 0.8.x for one reason or another, or who otherwise require a significant effort to upgrade to 1.0.0 on account of breaking changes.