Skip to content
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

Publish Eclipse features also to Maven central #1421

Closed
vogella opened this issue Oct 5, 2023 · 17 comments
Closed

Publish Eclipse features also to Maven central #1421

vogella opened this issue Oct 5, 2023 · 17 comments

Comments

@vogella
Copy link
Contributor

vogella commented Oct 5, 2023

AFAICS we currently do not publish our features to Maven central. https://central.sonatype.com/search?q=org.eclipse.e4.rcp

A target platform can include features from Maven, see eclipse-m2e/m2e-core#636 therefore it would be nice if we publish also our features to Maven so that a target platform can avoid using p2 update sites.

@merks IIRC you are handling the release to Maven? I hope that publishing the feature to Maven is a simple task, e.g., by just adding the artifacts to the publishing script.

@vogella vogella changed the title Publish Eclipse features also in Maven central Publish Eclipse features also toMaven central Oct 5, 2023
@merks
Copy link
Contributor

merks commented Oct 5, 2023

No, I doubt that is a simple task at all. In addition, I don't see significant value in this that would justify the time investment from my personal perspective. To my thinking, features are really only useful for installing a set of bundles into an Equinox runtime. So I have no plans to invest time into such an effort.

@vogella
Copy link
Contributor Author

vogella commented Oct 5, 2023 via email

@merks
Copy link
Contributor

merks commented Oct 5, 2023

Keep in mind that nexus as a bunch of rules for what can be published; rules that are more difficult than those for publishing to repo.eclipse.org which lets you dump pretty much anything...

@merks
Copy link
Contributor

merks commented Oct 5, 2023

Also keep in mind that the platform consumes features from other projects:

image

image

Without those also being on Maven central, I'm doubtful this will be generally useful.

@laeubi
Copy link
Contributor

laeubi commented Oct 5, 2023

@merks I think deploy the plain feature file is not what one really wants alone but the generated pom should simply list all requirements (like its already done for a bundle) and then it will be pulled from maven central as well.

Nerveless the only requirements are source+javadoc where we already have feature source jars and for bundles we already deploy a dummy javadoc so I won't expect anything different compared to deploy a jar if it contains a "bundle" or "feature".

@vogella
Copy link
Contributor Author

vogella commented Oct 5, 2023

Thanks @merks looks at if features are currently explicitly excluded. #==== remove features: ====.

Others are already publishing their feature, for example https://repo.eclipse.org/content/groups/jgit/org/eclipse/jgit/feature/org.eclipse.jgit/3.0.0.201305281830-rc2/

@merks
Copy link
Contributor

merks commented Oct 5, 2023

What's actually published to Maven central appears to be much reduced:

https://repo1.maven.org/maven2/org/eclipse/jgit/

I have no plans to publish EMF's features to a Maven repository.

vogella added a commit that referenced this issue Oct 6, 2023
Feature can be used in a target platform to retrieve the plug-ins listed
in them, see eclipse-m2e/m2e-core#636

Publishing these features would allow a user to use these features to
define their set of available platform plug-ins based on pure Maven
targets.

Fixes #1421
vogella added a commit that referenced this issue Oct 6, 2023
Feature can be used in a target platform to retrieve the plug-ins listed
in them, see eclipse-m2e/m2e-core#636

Publishing these features would allow a user to use these features to
define their set of available platform plug-ins based on pure Maven
targets.

Fixes #1421
@vogella
Copy link
Contributor Author

vogella commented Oct 6, 2023

@merks @laeubi Do you know how we publish to https://repo1.maven.org/maven2/? I see that our features are also missing their.

@merks
Copy link
Contributor

merks commented Oct 6, 2023

We only publish there after a release.

@vogella
Copy link
Contributor Author

vogella commented Oct 6, 2023

We only publish there after a release.

Looks like https://ci.eclipse.org/releng/view/Publish%20to%20Maven/job/PublishPlatformToMaven/ runs regulary, I see it running at the moment

@merks
Copy link
Contributor

merks commented Oct 6, 2023

It's almost as if you are not reading what I am writing. That makes this time consuming.

Please read what the job description says and please reread #1421 (comment)

vogella added a commit that referenced this issue Nov 21, 2023
Feature can be used in a target platform to retrieve the plug-ins listed
in them, see eclipse-m2e/m2e-core#636

Publishing these features would allow a user to use these features to
define their set of available platform plug-ins based on pure Maven
targets.

Fixes #1421
@merks
Copy link
Contributor

merks commented Nov 21, 2023

I continue to get the sense that you have not read what I have written. Moreover, you appear to be under the impression that correctly publishing features to a Maven repository is simply a matter of editing one simple shell script. In addition to that, you seem to believe that the best time to test this and to iron out inevitable problems is when the final publishing is actually being done. Publishing correct final results is a vital final step in our release process, one for which we cannot risk mistakes because cannot un-publish mistakes.

I really must strongly advise you to please take a step back and consider carefully the tasks involved in making this happen.

To start with, have you ever opened these resources to understand what this means and what it does?

image

Someone will need to edit this file:

https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/master/eclipse.platform.releng/publish-to-maven-central/SDK4Mvn.aggr

That someone will need to understand in detail what this file means and that someone will be best off to understand the purpose of this file:

https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/blob/master/eclipse.platform.releng/publish-to-maven-central/SDK4Mvn.aggran

and how its associated editor can be used to verify and analyze the aggregation definition.

Assuming we enhanced the aggregator to map features properly, assuming we configure all the mapping rules correctly for all the features, assuming we know how to massage feature artifacts into proper maven artifacts acceptable to Nexus, then we still have the problem that the Platform's features depends on features from EMF and ECF that are not published, so maybe we must assume too that only a subset of the "pure platform" features are to be published.

You see there are a significant number assumptions involved here and a significant number of prerequisite TODOs that will require a significant depth of understanding and a significant investment of time.

Are you prepared to make this significant investment? Such an investment must take place at the start of a release cycle, not at the end...

@vogella
Copy link
Contributor Author

vogella commented Nov 21, 2023

Are you prepared to make this significant investment?

In my experience things in Eclipse world are only requiring a significant investment because we continue to use our non customized technology. I plan to learn more about publishing to Maven central and return to this issue.

Such an investment must take place at the start of a release cycle, not at the end...

I tend to agree here, but as you said, it cannot be tested before the release cycle..... One option here might be to publish the features under a different namespace, e.g. vogellacompany (effectively a fork which would not affect the Eclipse standard) and if this works apply the learning to Eclipse.

Thanks again for you kind response, @merks. I understand your concerns and of course respect them.

@laeubi
Copy link
Contributor

laeubi commented Nov 21, 2023

One can deploy to a file based repository

mvn deploy -DaltDeploymentRepository=snapshot-repo::default::file:/tmp/test-repo

also sonatype has staging repositories that can act as a playground.

@vogella vogella changed the title Publish Eclipse features also toMaven central Publish Eclipse features also to Maven central Dec 19, 2023
@vogella
Copy link
Contributor Author

vogella commented Dec 20, 2023

Discussion for PDE eclipse-pde/eclipse.pde#936

@akurtakov
Copy link
Member

IIRC Lars gave up on this one in another issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants