-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Validate all poms are resolvable #53
Comments
https://ci.eclipse.org/releng/view/Publish%20to%20Maven%20Central/job/CBIaggregator/ creates jars and poms in "ready for publication" state. you can see them in the built artifacts of the job run for example https://ci.eclipse.org/releng/view/Publish%20to%20Maven%20Central/job/CBIaggregator/125/artifact/repo-125/ |
Copying the relevant part of #50 (comment): "I suggest to implement a sanity-check if the generated dependency really exists at However checking if the entire poms resolves would of course be better, just in case there are other erroneous parts. |
Best place to add such sanity check would Maven itself or repository manager (Nexus). |
@mickaelistria What is the status of this one? |
As described here, I've added such verification support to complement the cbi p2 aggregator: |
Would the maven pom generator fail if some incinsistency is detected (so build would fail), or do we need some extra steps in the consuming scripts to check some logs? |
At this point, only the *.aggran (in the Aggregator Analysis Editor) does deeper analysis of the generated poms to check that all dependencies resolve. I'm not sure I understand fully how the platform does the publishing, but effectively the aggregator builds a Maven repository with everything in the Platform's p2 repository, but then some other process only publishes a subset of those things to Maven. Which subset is actually published is not know to the CBI aggregator. In the *.aggran I tried to capture that information to the best of my knowledge looking also at what I see published previously by the Platform in Maven. This way I avoid checking dependencies of things not actually published to Maven by the Platform. In any case, there is room for further for improvement over the manual checking of the *.aggran in the editor,though that interactive approach is useful for ensuring that the *.aggr itself has specified appropriate/correct mapping rules. |
Here's what I started, expanding on @mickaelistria approach, to do better testing of resolution:
As described in #136 (comment) it is possible to do this testing on the local repository before promoting it. So after EclipseCon I plan to expand on this idea to add a build job/stage to run these kinds of tests before the build jobs that do the promotion are kicked off. |
eclipse-platform#53 The latest version used from Orbit, 2.2.2.v201501141630, is newer than the one latest available from Jetty: https://repo1.maven.org/maven2/org/eclipse/jetty/orbit/org.apache.jasper.glassfish/2.2.2.v201112011158/
#53 The latest version used from Orbit, 2.2.2.v201501141630, is newer than the one latest available from Jetty: https://repo1.maven.org/maven2/org/eclipse/jetty/orbit/org.apache.jasper.glassfish/2.2.2.v201112011158/
I created this new job: https://ci.eclipse.org/releng/job/RepositoryValidator/ It's triggered by the aggregator job: https://ci.eclipse.org/releng/job/CBIaggregator/ The RepositoryValidator job does a https://ci.eclipse.org/releng/job/PublishJDTtoMaven/ This validation uncovered one additional failure fixed by the above pull request. One outstanding issue is the handling of the source for ecj but that's an orthogonal issue. |
Discussion started in #50 .
Goal is to have poms verified/validated to be resolvable by Maven independent of the way these poms are generated
The text was updated successfully, but these errors were encountered: