Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-releng-dev] [Publish to Maven] The less Orbit, the better

Hi all,

I'm working on the story of improving the process of publishing p2 artifacts to Maven, https://github.com/eclipse-platform/eclipse.platform.releng/issues/50 ; and while I could implement some interesting POC for the aggregator to rely more on p2 metadata created by Tycho https://github.com/eclipse-cbi/p2repo-aggregator/pull/9 , I realized something that I believe needs to be shared and considered for further planning:
*Orbit is a major trouble when it comes to publishing to Maven* and as a consequence, we should probably consider abandoning as many as possible Orbit artifacts when they're directly available on Maven.

The reason is that most issue we've faced recently, and will face in the future, with p2->Maven conversion are caused by the MavenMappings that define how to translate a bundle symbolicName into Maven coordinates. This list is hardcuded in
https://github.com/eclipse-platform/eclipse.platform.releng/blob/master/publish-to-maven-central/SDK4Mvn.aggr and requires maintenance. It lists some general rules for what Platform does create and publish, but also some workarounds to replace Orbit deps by the plain Maven counterpart.
Those mapping definitions are IMO useless and counterproductive nowadays (thanks to Tycho having incorporated many interesting features): for Platform's own artifacts, the p2 metadata do contain the GAV that's used to build and that should be used in order to publish so the mapping can be abandoned (and mapping is even a source of inconsistencies), other mappings basically define how to replace Orbit bundles by upstream GAVs. However, if one does *not* use Orbit but instead directly Maven artifacts as Tycho is capable of doing; then we have the proper Maven coordinates in p2 metadata and do not need the mapping rules.
Bascally, everything is much simpler, no more workaround, no more inconsistencies...
I think for this specific technical reason, it could be a good time for Platform to start abandoning as much as possible of Orbit. This will greatly facilitate interaction with the Maven world.

Cheers,
--
Mickael Istria
Eclipse IDE developer, for Red Hat Developers

Back to the top