Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-136306

mavenBom breaks gradle's "compile,api,implementation" types of dependencies

    Details

      Description

      mavenBom 'com.liferay.portal:release.portal.bom:7.4.0'

      This change, besides semantically incorrect, enforces maven style "provide" behavior.
      A pre OSGi scenario, moving the kernel and others modules out of OSGi runtime version control.

      It is semantically not sound because, "compileOnly" becomes maven's "provide",
      while the version used as tag is just a baseline,
      that might be aligned, or not, with the indicated releases. (2 factors here)

      This requires projects, new or in migration, to use:

      • compileOnly 'com.liferay.portal:com.liferay.portal.kernel'

      Projects built with "compile", "api" and "implementation" break in runtime.

      (no breaking change documentation or reason to enforce compileOnly, breaking the other gradle dependency types).

      Seems like we can enable OSGi version control by overwriting the BOM, but what is the point of BOMs with versions if they do not follow the release indicated?

      I know some engineers might think it is ok, but why not provide the possibility to use other types, "compile,api,implementation", while also being aligned with the tag used in the BOM?

        Attachments

          Activity

            People

            Assignee:
            support-lep@liferay.com SE Support
            Reporter:
            victorlima02 Victor de Lima Soares
            Participants of an Issue:
            Recent user:
            Victor de Lima Soares
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Dates

              Created:
              Updated:
              Days since last comment:
              8 weeks, 3 days ago

                Packages

                Version Package