Backward compatibility: (v5.7)
1) Versioning & backward compatibility
Since version 2, the pac4j project has adopted the semver versioning, to make things clearer.
Given a version X.Y.Z:
- when X changes, it’s a major version with breaking changes (example: 2.x, 3.x, and so on)
 - when Y changes, it’s a minor version with no compilation/runtime breaking changes (for example, you can upgrade from 2.5.2 to 2.7.0 without any worry)
 - when Z changes, it’s a bug fix(es) version with no compilation/runtime breaking change (no upgrade issue either).
 
Generally, pac4j implementations follow the semver versioning as well.
Notice that, while pac4j-* modules are backward compatible, you should always add the pac4j-javaee or pac4j-jakartaee or pac4j-core dependency in the same version as the upgraded pac4j-* dependency.
2) Maintenance
a) Core project
Community efforts are focused on the latest stream (the master branch).
For older streams, contributions may be accepted and bug/security fixes may be backported.
b) Implementations
The “major” implementations are:
- jee-pac4j
 - buji-pac4j
 - spring-webmvc-pac4j
 - spring-security-pac4j
 - play-pac4j
 - CAS
 
They should be upgraded to the latest pac4j stream.
 If this free Open Source maintenance policy is not sufficient, contact the commercial support.