-
Notifications
You must be signed in to change notification settings - Fork 74
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
Eclipse 4.29 Prerequisites: Orbit #1199
Comments
No new orbit for M1 |
Ideally we would use bundle org.hamcrest 2.2: https://repo1.maven.org/maven2/org/hamcrest/hamcrest/2.2 which is available now but there is some use of org.hamcrest.core that needs to be cleaned up: |
Yes please, that would be great. |
I ran into a problem and had to update the BND instructions. JDT and likely many others assume that one can just require bundle org.junit and be done. But Orbit was doing this:
So I added this such that one could still use org.hamcrest 2.2 instead...
Ideally I'd not need that, but asking everyone downstream to add a package import or a bundle require is probably wishful thinking. And I'm not sure it makes sense to also add this thing for the org.hamcrest bundle... You can see the second failing build here: https://ci.eclipse.org/platform/job/eclipse.platform.releng.aggregator/job/PR-1233/ Note I still need to update this PR to use a stable repository URL... I'll finalize that tomorrow morning... FYI @jonahgraham |
FYI, see for related issues: |
Note that this makes me wonder why a consumer of a bundle must duplicate the package imports of that bundle. Or is this a Tycho problem? I haven't tested if PDE gets confused too, but I do recall "the package in directly required" errors in the past that always tempted me to reexport my required bundles... |
I think the root of this problem is that problem is that the class org.junit.Assert has methods that have for example But actually when the
Hamcrest claims that the class API has not changed with version 2: https://github.com/hamcrest/JavaHamcrest/releases/tag/v2.1 Btw. I've written a StackOverflow answer to this topic a while ago: https://stackoverflow.com/a/65611538/14542697 |
Maybe @vogella can also share his opnion since he has a Hamcrest tutorial and might know how it is used out there in the wild. |
@MohananRahul to be clear there is no new "old style EBR" Orbit for M2 so nothing for you to update @merks is doing amazing stuff getting the p2 sites to consume working. As you'll see when the PR from Ed is ready that the new URL will start with https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation instead of https://download.eclipse.org/tools/orbit/downloads/drops |
I think before I can further change the org.junit bundle that the platform and JDT need to stop relying the org.hamcrest.core bundle. Perhaps package imports and bundle requires need to be added... |
@merks please don't reexport required bundles, this creates a lot of headache for the resolver as its leading to others using require bundle (and possibly reexporting) and then produces a whole large chain of dependencies unnecessarily.
The best would be to drop require-bundle at all and replace it by import package (with proper version range!) instead because otherwhise you are exposed to many problems you recently seen noticed here. I recently added two new features to PDE that make migration/working with package imports more convenient:
If there are still issues / missing features we should solve them, using |
Unfortunately the reality is:
So yes, I know it's far, far less than ideal. I did remove it, but that made it not usable in the Platform's build which suggests that unfortunately the ideal and reality are often disjoint. As such, I added it back, but I watered it down to make it optional greedy so that folks can actually use org.hamcrest 2.0. So in the ideal world, the platform would set the example and the tend by migrating fully to org.hamcrest 2.0 such that we can eventually produce a org.junit without exported bundle requires without the very first project to use it falling flat on its face. |
This is to enable migration to use org.hamcrest 2.0, though it's not clear if this bundle specifically actually need to import anything else. eclipse-platform/eclipse.platform.releng.aggregator#1199
Reality is also if you say "because of this I do that" without any further explanation it:
Therefore I think its still good to explain that this is not recommended and should be avoided for new designs. |
This is to enable migration to use org.hamcrest 2.0, though it's not clear if this bundle specifically actually need to import anything else. eclipse-platform/eclipse.platform.releng.aggregator#1199
It really, really annoys me that I had to do this. I was so eager to clean this thing up once and for all. It is really a terrible practice. To do that in such a fundamental core bundle that is used in pretty much every project is especially appalling and galling. Now the Platform needs to set an example such that it no longer requires the org.hamcrest.core bundle anywhere. It will need to start by removing that from the features as already described above; I already fixed p2. Probably it would be good for JDT to lead the charge... Both hamcrest versions are available in the updated target platform: |
Btw. PDE also has |
With eclipse-pde/eclipse.pde#684 PDE is updated to not rely on a specific hamcrest bundle name respectively a re-export for its own test-plugins as well as in its PDE Classpath container that adds Junit5 runtime bundles to a projects classpath. |
eclipse-platform#1197 eclipse-platform#1199 Use version of com.sun.jna with signed libraries: eclipse-orbit/orbit-simrel#7 Update net.bytebuddy to 1.14.6
eclipse-platform#1197 eclipse-platform#1199 Use version of com.sun.jna with signed libraries: eclipse-orbit/orbit-simrel#7 Update net.bytebuddy to 1.14.6
#1197 #1199 Use version of com.sun.jna with signed libraries: eclipse-orbit/orbit-simrel#7 Update net.bytebuddy to 1.14.6
The the release contribution this effort is done for 4.29. |
Tracking issue for Orbit. M1 is scheduled for July 7th.
The text was updated successfully, but these errors were encountered: