Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/snowdrop/spring-boot-bom


https://github.com/snowdrop/spring-boot-bom

bom dependencies-collector maven openshift rhoar spring-boot

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

// spring-boot
:spring-boot.version: 2.7.3

= Spring Boot BOM - 2.7.x

This Bill Of Materials for Spring Boot 2.7 contains starters which are currently used by the
https://github.com/snowdrop?utf8=✓&q=topic%3Abooster[Spring Boot Mission Boosters].
This document is updated on a "best effort" basis, based on the information contained in the `pom.xml` file. In case of inconsistency between this document and the POM file, the POM information prevails.

This BOM is aligned to:

.Spring
// spring-boot
- Spring Boot: 2.7.3

.Spring Cloud
// spring-cloud-kubernetes
- https://github.com/spring-cloud/spring-cloud-kubernetes[Spring Cloud Kubernetes]: 2.1.3

.Integration
- RESTEasy: 3.15.3.Final
// tomcat
- Tomcat: 10.0.23

.ORM
// hibernate
- Hibernate: 6.1.2.Final
// hibernate-validator
- Hibernate Validator: 7.0.5.Final

== Versioning scheme

This BOM is using the following versioning scheme:

`dev.snowdrop:snowdrop-dependencies:.[1-9]`

.Qualifiers, in chronological order:
- `Alpha` (first semi-stable releases),
- `Beta` (no more API changes, bugs might still occur),
- `CR` (Candidate Release, release quality but minor bugs or known postponed issues are possible),
- `Final` (release version),
- `SP` (Service Patch, post-release version for fixes needed after a release).

Qualifiers are numbered and we should try to limit their number to 9 but we should still be able to handle more than 10 versions for a given qualifier.

Until a version is released, the BOM version will be `-SNAPSHOT`. Once it's released, we will switch to `.SP-SNAPSHOT`.

So, right now, as we are targeting Spring Boot version 2.7.3.RELEASE, our BOM GAV will be:
`dev.snowdrop:snowdrop-dependencies:2.7.3-SNAPSHOT` until released. The released version will be
`dev.snowdrop:snowdrop-dependencies:2.7.3.Final` and the new version in the 2.3 branch will
be `dev.snowdrop:snowdrop-dependencies:2.7.3.SP1-SNAPSHOT`.

See https://issues.jboss.org/browse/SB-162[SB-162] for a discussion of BOM versioning.

== Releasing

The artifacts are released on http://central.sonatype.org/[Sonatype Open Source Software Repository Hosting (OSSRH)], which is
then synchronized to Maven Central. To perform a release, you need to activate the `release` profile.

0. Make sure that your computer is properly set up as explained in http://central.sonatype.org/pages/apache-maven.html. In
particular, this implies having a Sonatype JIRA account, added the appropriate configuration in your Maven `settings.xml` and
having GPG set up on your computer.
0. Check this README for outdated information, notably dependency versions.
1. Prepare the release: `mvn release:prepare -Prelease` on a "clean" repository (i.e. everything is committed and pushed). Note
that the project version in the POM file needs to end in `-SNAPSHOT` to be recognized as needing release.
- The release plugin will ask you several questions based on the current project version. Let's assume we're trying to
release the `1.5.8.Beta2` of the BOM. The current project version should be `1.5.8-SNAPSHOT` if the version conventions
(above) have been properly followed. Based on this, the release plugin will offer to release version `1.5.8` of the BOM.
- Override this version by type `1.5.8.Beta2`
- Override the tag name to use the same version: `1.5.8.Beta2` instead of the default suggestion
- Override the suggested next release version as appropriate, in this case, since we're haven't released a final version of
the 1.5.8 BOM, the next version still needs to be `1.5.8-SNAPSHOT`.
2. Once this prepare step is done, check that everything is as expected and then release: `mvn release:perform -Prelease`.
3. If everything went well, the new artifact should be available on Maven Central after a couple of minutes.

Note that the Sonatype release plugin is configured to auto-release the artifacts from staging, resulting in a faster, more
automated release process. This is not mandatory and can be changed in the plugin configuration.