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

Support jars.extra.classpath in the Manifest editory to avoid confusion with additional.bundles #1407

Open
laeubi opened this issue Sep 14, 2024 · 11 comments
Assignees
Labels
good first issue Good for newcomers

Comments

@laeubi
Copy link
Contributor

laeubi commented Sep 14, 2024

Currently there is no UI support for jars.extra.classpath in the Manifest editor and du to its prominent placing people instead use often additional.bundles to add something that should be there for compile but not imported (what serves a different purpose) leading to confusion.

Even though jars.extra.classpath theoretically supports different styles, we should only support the form where one can specify a single bundle platform:/plugin/<Bundle-SymbolicName> as this is also supported by Tycho and easy to adapt by other tools.

@merks
Copy link
Contributor

merks commented Sep 14, 2024

This is a good idea.

I'm not suggesting one needs to make things more complicated so this is just an FYI...

The scheme generally supports

platform:/plugins/<bsn>_<version>/

as parsed by org.eclipse.core.internal.boot.PlatformURLConnection.parse(String).

@laeubi
Copy link
Contributor Author

laeubi commented Sep 14, 2024

The scheme generally supports

Officially also relative path is supported as well as inner jars:

extra classpaths used to perform automated build. Classpath can either be relative paths, or platform urls referring to plug-ins and fragments of your development environment (e.g. ../someplugin/xyz.jar, platform:/plugins/org.apache.ant/ant.jar). Platform urls are recommended over relative paths;

I just think that if one really requires a version or relative path one can do it manually, but e.g additional bundles do only support a BSN and people seem happy with that already (but using it for a different purpose).

@merks
Copy link
Contributor

merks commented Sep 14, 2024

I 100% agree to keep this simple for the common case!

@Nicolasgarbarino
Copy link

I'm working on this.

@HannesWell
Copy link
Member

I'm working on this.

Great. You are one of the students from CodeDays, aren't you?

Much success on this task and don't hesitate to ask for help if you need any.

@Nicolasgarbarino
Copy link

Thank you, yes I am from CodeDay. I wanted to reach out for clarification. In build configuration I am able to add jars by using Extra ClassPath Entries and using the add Jars feature, is there anything specific you wanted on top of having this available in the build section?

@HannesWell
Copy link
Member

In build configuration I am able to add jars by using Extra ClassPath Entries and using the add Jars feature, is there anything specific you wanted on top of having this available in the build section?

Indeed there is already some UI support in the Build section:
grafik

And it even seems to handle relative and 'absolute' URLs properly already.

So maybe we should just move it to the Dependencies section, maybe below the Automated Management of Dependencies to make it more visible?
@laeubi or @merks any remarks from your side?

@merks
Copy link
Contributor

merks commented Oct 26, 2024

Do what you think best.

@laeubi
Copy link
Contributor Author

laeubi commented Oct 27, 2024

Indeed there is already some UI support in the Build section

I never noticed that, its interesting how many features PDE has people often just don't recognize :-D

So maybe we should just move it to the Dependencies section, maybe below the Automated Management of Dependencies to make it more visible?

I think the first thing should be to make it expanded by default currently it is simply to easy to overlook, beside from that I think it makes sense to have it in the "build" section because it is related to the build.properties.

Next I think we should add a link in the description of the "Automated Management of Dependencies" with a link that jumps to that tab, that should be enough for people to discover it, if we then also add a N&N entry for that change it should be enough.

And it even seems to handle relative and 'absolute' URLs properly already.

I think it currently does not work as expected (for me), e.g. it only allows to add inner jars from workspace projects, it should also allow to add bundles (either from workspace or target platform) so that needs to be improved to be useful.

If we then have a way to even mark some of them as test-only that would probably already help with

but that's a different topic of course.

@HannesWell
Copy link
Member

So maybe we should just move it to the Dependencies section, maybe below the Automated Management of Dependencies to make it more visible?

I think the first thing should be to make it expanded by default currently it is simply to easy to overlook, beside from that I think it makes sense to have it in the "build" section because it is related to the build.properties.

With #1469, the section is now expanded by default, thanks to @anviik.

@laeubi
Copy link
Contributor Author

laeubi commented Nov 12, 2024

Great so next step would be that it allows to select any bundle from the target platform, if that is in place we should add this to the N&N to make people more aware about this "new" way of specify compile only dependencies.

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

No branches or pull requests

5 participants