Create GlobalMentor bill of materials (BOM) POMs.
Description
Environment
Activity
Garret Wilson November 15, 2020 at 7:05 PM
An argument could be made that we don't even need a BOM, because if each project includes the latest version of e.g. Csar and then performs a version check before release, it will be evident that an older version is being used. Having a single dependency that lists all of the latest versions may be useful, but then there is the overhead of keeping that dependency up-to-date; it's unclear if the benefits outweigh overhead.
Garret Wilson November 14, 2020 at 10:25 PM
We should put globalmentor-ee-bom
inside globalmentor-ee
. But would we want to update globalmentor-ee
everytime we update the BOM? But maybe we should update globalmentor-ee
each time we update the BOM.
But we really can't put globalmentor-cross-bom
in globalmentor-base
, because many of the cross-cutting library descend from globalmentor-base
. There would be the chicken-and-egg problem of updating globalmentor-base
with an old version of the cross-cutting libraries because the newer versions couldn't be released before globalmentor-base
is.
Garret Wilson November 14, 2020 at 10:21 PM
Should these be named globalmentor-bom-xxx
or globalmentor-xxx-bom
? Probably the latter.
As discussed in JAVA-201, the
globalmentor-parent
POM (recently split out to another repository in ) is getting too much to manage; anything that changes inglobalmentor-base
requiresglobalmentor-parent
to be updated for all the child repositories.If we put the dependencies now managed by
globalmentor-parent
into a bill of materials (BOM) POM, then child projects could descend directly fromglobalmentor-base
. Then ifglobalmentor-base
changes, the child projects could simply update to the latestglobalmentor-base
without needing to update some intermediate repository. If course we could always update the BOM when needed, but it wouldn't be an immediately requirement.It might be a good idea to have more than one BOM:
globalmentor-bom-parent
: The parent project for all the BOMs (in that same repository).globalmentor-bom-infrastructure
: The cross-cutting concern libraries that are currently inglobalmentor-parent
. (Perhapsglobalmentor-bom-cross
or some other shorter word might be a better choice.)globalmentor-bom-ee
: The EE-related dependencies from JAVA-201. (Thenglobalmentor-ee
could simply importglobalmentor-bom-ee
, improving the changes made in JAVA-201.