April 23, 2022
- ๐ JLBP-1: Minimize dependencies
- ๐ JLBP-2: Minimize API surface
- ๐ JLBP-3: Use Semantic Versioning
- ๐ JLBP-4: Avoid dependencies on unstable libraries and features
- ๐ JLBP-5: Do not include a class in more than one classpath entry
- ๐ JLBP-6: Rename artifacts and packages together
- ๐ JLBP-7: Make breaking transitions easy
- ๐ JLBP-8: Advance widely used functionality to a stable version
- ๐ JLBP-9: Support the minimum Java version of your consumers
- ๐ JLBP-10: Maintain API stability as long as needed for consumers
- ๐ JLBP-11: Keep dependencies up to date
- ๐ JLBP-12: Make level of support and API stability clear
- ๐ JLBP-13: Remove references to deprecated features in dependencies at the first opportunity
- ๐ JLBP-14: Specify a single, overridable version of each dependency
- ๐ JLBP-15: Publish a BOM for multi-module projects
- ๐ JLBP-16: Ensure upper version alignment of dependencies for consumers
- ๐ JLBP-17: Coordinate rollout of breaking changes
- ๐ JLBP-18: Only shade dependencies as a last resort
- ๐ JLBP-19: Place each package in only one module
- ๐ JLBP-20: Give each JAR file a module name
- ๐ JLBP-21: Upload artifacts to Maven Central
- ๐ JLBP-22: Declare all direct dependencies