-
Notifications
You must be signed in to change notification settings - Fork 186
Prepare 4.38 development #2467
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
Prepare 4.38 development #2467
Conversation
|
This pull request changes some projects for the first time in this development cycle. An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch. Git patchFurther information are available in Common Build Issues - Missing version increments. |
HannesWell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This automated update looks as intended, especially the individual parts introduced with
The only thing that's a bit bothering is the failure of all Github builds. The all fail with an API-error for the running platform:
Caused by: org.eclipse.tycho.core.exceptions.VersionBumpRequiredException: There are API errors:
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:133 The constructor org.eclipse.swt.graphics.Point.OfFloat.OfFloat(int, int) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:137 The constructor org.eclipse.swt.graphics.Point.OfFloat.OfFloat(float, float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:143 The method org.eclipse.swt.graphics.Point.OfFloat.getX() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:147 The method org.eclipse.swt.graphics.Point.OfFloat.getY() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:151 The method org.eclipse.swt.graphics.Point.OfFloat.setX(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:156 The method org.eclipse.swt.graphics.Point.OfFloat.setY(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:184 The constructor org.eclipse.swt.graphics.Point.WithMonitor.WithMonitor(int, int, Monitor) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Point.java:192 The method org.eclipse.swt.graphics.Point.WithMonitor.getMonitor() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:413 The constructor org.eclipse.swt.graphics.Rectangle.OfFloat.OfFloat(int, int, int, int) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:417 The constructor org.eclipse.swt.graphics.Rectangle.OfFloat.OfFloat(float, float, float, float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:425 The method org.eclipse.swt.graphics.Rectangle.OfFloat.getX() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:429 The method org.eclipse.swt.graphics.Rectangle.OfFloat.getY() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:433 The method org.eclipse.swt.graphics.Rectangle.OfFloat.getWidth() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:437 The method org.eclipse.swt.graphics.Rectangle.OfFloat.getHeight() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:441 The method org.eclipse.swt.graphics.Rectangle.OfFloat.setX(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:446 The method org.eclipse.swt.graphics.Rectangle.OfFloat.setY(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:451 The method org.eclipse.swt.graphics.Rectangle.OfFloat.setWidth(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:456 The method org.eclipse.swt.graphics.Rectangle.OfFloat.setHeight(float) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:487 The constructor org.eclipse.swt.graphics.Rectangle.WithMonitor.WithMonitor(int, int, int, int, Monitor) is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:500 The method org.eclipse.swt.graphics.Rectangle.WithMonitor.getMonitor() is no longer an API
Eclipse SWT/common/org/eclipse/swt/graphics/Rectangle.java:505 The method org.eclipse.swt.graphics.Rectangle.WithMonitor.clone() is no longer an API
META-INF/MANIFEST.MF:6 The major version should be incremented in version 3.131.100, since API breakage occurred since version 3.131.0
at org.eclipse.tycho.apitools.ApiAnalysisMojo.getApiError (ApiAnalysisMojo.java:284)
at org.eclipse.tycho.apitools.ApiAnalysisMojo.execute (ApiAnalysisMojo.java:251)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
at io.takari.maven.builder.smart.SmartBuilderImpl.buildProject (SmartBuilderImpl.java:206)
at io.takari.maven.builder.smart.SmartBuilderImpl$ProjectBuildTask.run (SmartBuilderImpl.java:71)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:572)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1583)
I think it's interesting to await results of the Jenkins build (I killed the last Y-build test for mac to speed that up).
@laeubi, @HeikoKlare or @akurtakov are those familiar to you or do you want to investigate them before submitting this? |
|
At a first glance, those API errors are strange: those nested classes and methods have been introduced with the current release. They are effectively part of the public API (even though they are marked as At least, I get the same errors when I set the current target platform as baseline in my IDE, so in that regard the errors appear consistently. I will probably not find the time to deepler look into what API tooling does here before somewhen next week. But in my opinion it should not prevent us from moving on. We could simply add API filters (even though they do not make sense) to work around this for now and ensure that we do not have misleading build errors in the builds and IDE. |
|
@HeikoKlare Please open an issue (at best with a small reproducer project) for API tools. Beside that
I assume you specifically reference to the javadoc annotation, I wonder if it would make a difference if we where using the code annotation
I think SWT is rather an exception than the norm, so even though it should be fixed I would not directly call it a major flaw given it was not detected or complained for years. Also this more shows to me that controlling API with non standard |
I will do as soon as possible, but I don't know when I will find the time for creating that reproducer.
Based on what I saw when debugging I don't think so. as the issue is not with the annotation itself but with the fact that the class that has the annotation does not even seem to be found in the baseline. But I just did a quick session to identify what needs to be done w.r.t. this issue and the code is not that simple, so maybe I just did not fully understand how it works yet.
I agree that SWT is rather an exception. What I meant with "major flaw" is that the described behavior may lead to actual API breakages not being reported if the classes to compare against are simply not found in the baseline. But as I said, it just "could indicate" it, as a deeper analysis would need to show what's actually going wrong. That's why I think we should probably not just say it's a flaw with the special structure of SWT and we should work around it but rather try to go into some analysis. |
e53b446 to
a6e6846
Compare
|
Thank you Heiko for looking into that.
I assume one can simpliy reproducing this with the current state of the swt project (maybe stripped by all other classes) and a simple baseline using the [RC2 repo](the natives are getting restless here (my husband)
I have added a commit that does that so that we can proceed with development right now. One should be able to reproduce the problems by simply deleting/reverting those filters. Should we submit this if the build is now fine? |
|
Seems like the two preexisting API filters for MonitorAwareRectangle/MonitorAwarePoint should be removed. Then this should be ready to go. |
They remained as stubs to work around API-tools problems: - #2349
a6e6846 to
eca2157
Compare
Yes, I just removed those filters.
I also removed these files in the commit to remove the filters and locally in my IDE I didn't notice any problem. Lets see what the builds says. |
No, it did just did not work before because of eclipse-tycho/tycho#5148 That's why I basically made those classes internal in the previous release cycle so that API tooling will not check them in this cycle anymore, allowing them to be removed. Seems like that works :-) Thanks for directly trying it out! |
HannesWell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's why I basically made those classes internal in the previous release cycle so that API tooling will not check them in this cycle anymore, allowing them to be removed. Seems like that works :-) Thanks for directly trying it out!
Understand. Actually I just removed them because a new warning pop-ed up on them and just removing them avoided adding a yet another new filter.
So then lets submit this now and look into the API-tools problems separately.
|
ftr: I have created a PDE issue with a more or less simple reproducer derived from this SWT example: Stripping down SWT turned out that is seems to be caused by an incomplete |

Prepare development of Eclipse 4.38.
This complements: