-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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: