ovirt-engine dependency on ovirt-engine-extensions-api

Hi, In ovirt-engine pom.xml there's a requirement for build time on ovirt-engine-extensions-api = 1.0.0. This dependency is available on maven central so online build works. Any clue on why we are not requiring 1.0.1 <https://search.maven.org/artifact/org.ovirt.engine.api/ovirt-engine-extensions-api/1.0.1/jar> instead ? We are packaging ovirt-engine-extensions-api during the development but it ships 1.0.2.SNAPSHOT so when building in offline mode (needed for building on CentOS Virt SIG) it fails as the 1.0.0 artifact was never downloaded. I can rebuild ovirt-engine-extensions-api from 1.0.0 or 1.0.1 which are available in maven central too as requiring explicitly 1.0.2.SNAPSHOT fails with: Failed to execute goal on project common-dependencies: Could not resolve dependencies for project org.ovirt.engine.core.manager:common-dependencies:jar:4.5.0-SNAPSHOT: The following artifacts could not be resolved: org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT, org.ovirt.java-client-kubevirt:java-client-kubevirt:jar:0.5.0, org.apache.sshd:sshd-common:jar:2.6.0, org.apache.sshd:sshd-core:jar:2.6.0, net.i2p.crypto:eddsa:jar:0.3.0, org.ovirt.engine.api:metamodel-server:jar:1.3.7, org.ovirt.vdsm-jsonrpc-java:vdsm-jsonrpc-java-client:jar:1.6.0, com.fasterxml.jackson.core:jackson-databind:jar:2.12.1, org.jboss.resteasy:resteasy-jaxrs:jar:3.9.3.Final, com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1, org.apache.httpcomponents:httpclient:jar:4.5.13: Could not find artifact org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT -> [Help 1] Any recommendations on how to proceed? -- Sandro Bonazzola MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV Red Hat EMEA <https://www.redhat.com/> sbonazzo@redhat.com <https://www.redhat.com/> *Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*

On Fri, Nov 26, 2021 at 6:39 PM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Hi, In ovirt-engine pom.xml there's a requirement for build time on ovirt-engine-extensions-api = 1.0.0. This dependency is available on maven central so online build works.
Any clue on why we are not requiring 1.0.1 <https://search.maven.org/artifact/org.ovirt.engine.api/ovirt-engine-extensions-api/1.0.1/jar> instead ?
We are packaging ovirt-engine-extensions-api during the development but it ships 1.0.2.SNAPSHOT so when building in offline mode (needed for building on CentOS Virt SIG) it fails as the 1.0.0 artifact was never downloaded.
I can rebuild ovirt-engine-extensions-api from 1.0.0 or 1.0.1 which are available in maven central too as requiring explicitly 1.0.2.SNAPSHOT fails with: Failed to execute goal on project common-dependencies: Could not resolve dependencies for project org.ovirt.engine.core.manager:common-dependencies:jar:4.5.0-SNAPSHOT: The following artifacts could not be resolved: org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT, org.ovirt.java-client-kubevirt:java-client-kubevirt:jar:0.5.0, org.apache.sshd:sshd-common:jar:2.6.0, org.apache.sshd:sshd-core:jar:2.6.0, net.i2p.crypto:eddsa:jar:0.3.0, org.ovirt.engine.api:metamodel-server:jar:1.3.7, org.ovirt.vdsm-jsonrpc-java:vdsm-jsonrpc-java-client:jar:1.6.0, com.fasterxml.jackson.core:jackson-databind:jar:2.12.1, org.jboss.resteasy:resteasy-jaxrs:jar:3.9.3.Final, com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1, org.apache.httpcomponents:httpclient:jar:4.5.13: Could not find artifact org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT -> [Help 1]
Any recommendations on how to proceed?
So in spec file we are requiring >= 1.0.0: https://github.com/oVirt/ovirt-engine/blob/master/ovirt-engine.spec.in#L440 So it means that an RPM providing the necessary requirements should be installed. And AFAIK maven should detect we have ovirt-engine-extensions-api-1.0.z installed and it should use it for building. Or am I missing something? I see that you built snapshot version on CBS: https://cbs.centos.org/koji/buildinfo?buildID=36134 But wouldn't it be better to build the stable 1.0.1 release instead?
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.

Il giorno lun 29 nov 2021 alle ore 08:02 Martin Perina <mperina@redhat.com> ha scritto:
On Fri, Nov 26, 2021 at 6:39 PM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Hi, In ovirt-engine pom.xml there's a requirement for build time on ovirt-engine-extensions-api = 1.0.0. This dependency is available on maven central so online build works.
Any clue on why we are not requiring 1.0.1 <https://search.maven.org/artifact/org.ovirt.engine.api/ovirt-engine-extensions-api/1.0.1/jar> instead ?
We are packaging ovirt-engine-extensions-api during the development but it ships 1.0.2.SNAPSHOT so when building in offline mode (needed for building on CentOS Virt SIG) it fails as the 1.0.0 artifact was never downloaded.
I can rebuild ovirt-engine-extensions-api from 1.0.0 or 1.0.1 which are available in maven central too as requiring explicitly 1.0.2.SNAPSHOT fails with: Failed to execute goal on project common-dependencies: Could not resolve dependencies for project org.ovirt.engine.core.manager:common-dependencies:jar:4.5.0-SNAPSHOT: The following artifacts could not be resolved: org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT, org.ovirt.java-client-kubevirt:java-client-kubevirt:jar:0.5.0, org.apache.sshd:sshd-common:jar:2.6.0, org.apache.sshd:sshd-core:jar:2.6.0, net.i2p.crypto:eddsa:jar:0.3.0, org.ovirt.engine.api:metamodel-server:jar:1.3.7, org.ovirt.vdsm-jsonrpc-java:vdsm-jsonrpc-java-client:jar:1.6.0, com.fasterxml.jackson.core:jackson-databind:jar:2.12.1, org.jboss.resteasy:resteasy-jaxrs:jar:3.9.3.Final, com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1, org.apache.httpcomponents:httpclient:jar:4.5.13: Could not find artifact org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT -> [Help 1]
Any recommendations on how to proceed?
So in spec file we are requiring >= 1.0.0:
https://github.com/oVirt/ovirt-engine/blob/master/ovirt-engine.spec.in#L440
So it means that an RPM providing the necessary requirements should be installed.
Yes, 1.0.2-SNAPSHOT from master is being installed *at runtime*. But here we need it *at build time*. So we need to add a BuildRequires line there.
And AFAIK maven should detect we have ovirt-engine-extensions-api-1.0.z installed and it should use it for building. Or am I missing something?
The issue is that pom file is requiring exactly 1.0.0 and not >= 1.0.0. So if a different version is installed, it fails.
I see that you built snapshot version on CBS:
https://cbs.centos.org/koji/buildinfo?buildID=36134
But wouldn't it be better to build the stable 1.0.1 release instead?
Sure, I'll do. The build was a test to ensure CBS is able to build the package. I'll build 1.0.1 and then adjust the pom to require it instead of 1.0.0.
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.
-- Sandro Bonazzola MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV Red Hat EMEA <https://www.redhat.com/> sbonazzo@redhat.com <https://www.redhat.com/> *Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*

On Mon, Nov 29, 2021 at 8:10 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Il giorno lun 29 nov 2021 alle ore 08:02 Martin Perina <mperina@redhat.com> ha scritto:
On Fri, Nov 26, 2021 at 6:39 PM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Hi, In ovirt-engine pom.xml there's a requirement for build time on ovirt-engine-extensions-api = 1.0.0. This dependency is available on maven central so online build works.
Any clue on why we are not requiring 1.0.1 <https://search.maven.org/artifact/org.ovirt.engine.api/ovirt-engine-extensions-api/1.0.1/jar> instead ?
We are packaging ovirt-engine-extensions-api during the development but it ships 1.0.2.SNAPSHOT so when building in offline mode (needed for building on CentOS Virt SIG) it fails as the 1.0.0 artifact was never downloaded.
I can rebuild ovirt-engine-extensions-api from 1.0.0 or 1.0.1 which are available in maven central too as requiring explicitly 1.0.2.SNAPSHOT fails with: Failed to execute goal on project common-dependencies: Could not resolve dependencies for project org.ovirt.engine.core.manager:common-dependencies:jar:4.5.0-SNAPSHOT: The following artifacts could not be resolved: org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT, org.ovirt.java-client-kubevirt:java-client-kubevirt:jar:0.5.0, org.apache.sshd:sshd-common:jar:2.6.0, org.apache.sshd:sshd-core:jar:2.6.0, net.i2p.crypto:eddsa:jar:0.3.0, org.ovirt.engine.api:metamodel-server:jar:1.3.7, org.ovirt.vdsm-jsonrpc-java:vdsm-jsonrpc-java-client:jar:1.6.0, com.fasterxml.jackson.core:jackson-databind:jar:2.12.1, org.jboss.resteasy:resteasy-jaxrs:jar:3.9.3.Final, com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1, org.apache.httpcomponents:httpclient:jar:4.5.13: Could not find artifact org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT -> [Help 1]
Any recommendations on how to proceed?
So in spec file we are requiring >= 1.0.0:
https://github.com/oVirt/ovirt-engine/blob/master/ovirt-engine.spec.in#L440
So it means that an RPM providing the necessary requirements should be installed.
Yes, 1.0.2-SNAPSHOT from master is being installed *at runtime*. But here we need it *at build time*. So we need to add a BuildRequires line there.
And AFAIK maven should detect we have ovirt-engine-extensions-api-1.0.z installed and it should use it for building. Or am I missing something?
The issue is that pom file is requiring exactly 1.0.0 and not >= 1.0.0. So if a different version is installed, it fails.
Well, I'm almost sure that xmvn is capable of using a newer version from RPM if the project requires an older version. For example mockito 3.12.4 <https://cbs.centos.org/koji/buildinfo?buildID=35544> requires junit 4.12 and we have only 4.13 <https://cbs.centos.org/koji/buildinfo?buildID=35160> provided as an RPM. So isn't the problem in the SNAPSHOT version availability?
I see that you built snapshot version on CBS:
https://cbs.centos.org/koji/buildinfo?buildID=36134
But wouldn't it be better to build the stable 1.0.1 release instead?
Sure, I'll do. The build was a test to ensure CBS is able to build the package. I'll build 1.0.1 and then adjust the pom to require it instead of 1.0.0.
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.

Il giorno lun 29 nov 2021 alle ore 08:45 Martin Perina <mperina@redhat.com> ha scritto:
On Mon, Nov 29, 2021 at 8:10 AM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Il giorno lun 29 nov 2021 alle ore 08:02 Martin Perina < mperina@redhat.com> ha scritto:
On Fri, Nov 26, 2021 at 6:39 PM Sandro Bonazzola <sbonazzo@redhat.com> wrote:
Hi, In ovirt-engine pom.xml there's a requirement for build time on ovirt-engine-extensions-api = 1.0.0. This dependency is available on maven central so online build works.
Any clue on why we are not requiring 1.0.1 <https://search.maven.org/artifact/org.ovirt.engine.api/ovirt-engine-extensions-api/1.0.1/jar> instead ?
We are packaging ovirt-engine-extensions-api during the development but it ships 1.0.2.SNAPSHOT so when building in offline mode (needed for building on CentOS Virt SIG) it fails as the 1.0.0 artifact was never downloaded.
I can rebuild ovirt-engine-extensions-api from 1.0.0 or 1.0.1 which are available in maven central too as requiring explicitly 1.0.2.SNAPSHOT fails with: Failed to execute goal on project common-dependencies: Could not resolve dependencies for project org.ovirt.engine.core.manager:common-dependencies:jar:4.5.0-SNAPSHOT: The following artifacts could not be resolved: org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT, org.ovirt.java-client-kubevirt:java-client-kubevirt:jar:0.5.0, org.apache.sshd:sshd-common:jar:2.6.0, org.apache.sshd:sshd-core:jar:2.6.0, net.i2p.crypto:eddsa:jar:0.3.0, org.ovirt.engine.api:metamodel-server:jar:1.3.7, org.ovirt.vdsm-jsonrpc-java:vdsm-jsonrpc-java-client:jar:1.6.0, com.fasterxml.jackson.core:jackson-databind:jar:2.12.1, org.jboss.resteasy:resteasy-jaxrs:jar:3.9.3.Final, com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.12.1, org.apache.httpcomponents:httpclient:jar:4.5.13: Could not find artifact org.ovirt.engine.api:ovirt-engine-extensions-api:jar:1.0.2.SNAPSHOT -> [Help 1]
Any recommendations on how to proceed?
So in spec file we are requiring >= 1.0.0:
https://github.com/oVirt/ovirt-engine/blob/master/ovirt-engine.spec.in#L440
So it means that an RPM providing the necessary requirements should be installed.
Yes, 1.0.2-SNAPSHOT from master is being installed *at runtime*. But here we need it *at build time*. So we need to add a BuildRequires line there.
And AFAIK maven should detect we have ovirt-engine-extensions-api-1.0.z installed and it should use it for building. Or am I missing something?
The issue is that pom file is requiring exactly 1.0.0 and not >= 1.0.0. So if a different version is installed, it fails.
Well, I'm almost sure that xmvn is capable of using a newer version from RPM if the project requires an older version. For example mockito 3.12.4 <https://cbs.centos.org/koji/buildinfo?buildID=35544> requires junit 4.12 and we have only 4.13 <https://cbs.centos.org/koji/buildinfo?buildID=35160> provided as an RPM. So isn't the problem in the SNAPSHOT version availability?
mmm I noticed I was using mvn --offline instead of xmvn --offline :-/ yes, it should be only the SNAPSHOT version availability.
I see that you built snapshot version on CBS:
https://cbs.centos.org/koji/buildinfo?buildID=36134
But wouldn't it be better to build the stable 1.0.1 release instead?
Sure, I'll do. The build was a test to ensure CBS is able to build the package. I'll build 1.0.1 and then adjust the pom to require it instead of 1.0.0.
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.
--
Sandro Bonazzola
MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV
Red Hat EMEA <https://www.redhat.com/>
sbonazzo@redhat.com <https://www.redhat.com/>
*Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
-- Martin Perina Manager, Software Engineering Red Hat Czech s.r.o.
-- Sandro Bonazzola MANAGER, SOFTWARE ENGINEERING, EMEA R&D RHV Red Hat EMEA <https://www.redhat.com/> sbonazzo@redhat.com <https://www.redhat.com/> *Red Hat respects your work life balance. Therefore there is no need to answer this email out of your office hours.*
participants (2)
-
Martin Perina
-
Sandro Bonazzola