Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-dev] Recent API Removal breaks clients

Wim,

I empathize with these concerns.  To prevent such problems, EMF's builds and test against a great many target platforms:

  https://ci.eclipse.org/emf/job/all-target-platforms/

This job builds the latest source and runs all the tests against helios and higher.  This was of course a lot of work to implement and is significant work to maintain; EMF takes Long Term Support very seriously.

Every time yet another thing is deprecated I cringe.  I maintain warning free code so I notice!  And then the threat of removal always looms on the horizon.   So when IProgressMonitorWithBlocking was deprecated, I notice, and then I notice too that it's in EMF's API, so the threat of removal means that I must break APIs should that come to pass.  But I don't break EMF's APIs, and I don't want break EMF's APIs.  Do I have a choice?  Does my opinion matter?  Not so much. 

In this case, when I point out that if I were to actually try to remove my uses, that I would break behavior because the platform as a whole has not altered the code to make implementing IProgressMonitorWithBlocking redundant, I'm told that will happen later in the next release cycle. 

  https://bugs.eclipse.org/bugs/show_bug.cgi?id=552683#c25

I don't comprehend the deprecate-now-but-don't-do-anything-about-it-until-later reasoning and I'm super frustrated by the constant threat of breakage.  As a word of caution, if IProgressMonitorWithBlocking is removed, EMF's build will become the progress monitor that blocks it.  I will make my opinion matter.

While I'm ranting and making myself unpopular, I look at p2's bug list and see that it's never reduced.   Instead there are disruptive changes that I'd rather not see:

  https://bugs.eclipse.org/bugs/show_bug.cgi?id=566070
  https://bugs.eclipse.org/bugs/show_bug.cgi?id=567030

Does my opinion matter?  Not so much.  Unfortunately Oomph has many wickedly-evil dependencies p2 so, in some ways, lack of change there is good...

I'm not being paid to maintain EMF/XSD, Oomph (and the installer), and JustJ, but others are being paid and while it's most definitely none of my business, I'd so much rather see the time spent fixing bugs than on constant cleanup activities, especially the disruptive ones.  If I were to spend a lot of time on cleanup activities, I would try to eliminate the 20,000 warnings I see in my SDK workspace. 

I apologize in advanced to those whose shorts get in a knot over these comments.  No offense is intended.  This is an issue of community perception and the broader community doesn't perceive the vibrant, active developer community we have on the platform; one that I'm very grateful to have and to be a part of.  The key take-away is that the community generally only perceives the end result. 

For example, the community doesn't perceive the goodness from this:

  https://bugs.eclipse.org/bugs/show_bug.cgi?id=527378

But rather perceives the bug that it causes:

  https://bugs.eclipse.org/bugs/show_bug.cgi?id=566642

Every time we delete something (even if it's internal non-API), we will definitely break something and someone, sometimes even our own stuff.  Typically the end user is the first one who notices that, after the release, and that user perceives this problem as "Eclipse".  Even at Eclipse, not every project downstream from the platform has a rich, active, vibrant community to maintain their code base and release 4 times a year.  Many, if not most, rely on the stability and quality of the platform, and when things are deleted 4 times per year, at arbitrary points in the cycle, it's hard to keep up with the goodness.

Even the move to Java 11 has been super disruptive to our community; at least I assume so because it was super disruptive for me personally.   Of course this move is totally justified and is arguably goodness, but how many things will be broken by the move to Java 11, like this:

  https://www.eclipse.org/forums/index.php/mv/msg/1105256/1832430/#msg_1832430

Probably not so many because this is a corner case.

I definitely worked my assets off to ensure that the installer would run out-of-the-box for 2020-09 and would even install a JRE if the user doesn't have a Java 11 installation available because I'm well aware that the failure to do so would reflect poorly on "Eclipse".  And I take LTS very seriously.

Again, I apologize in advance for any offense taken.  None is intended.  We all want "Eclipse" to be great and do what we do to help ensure that's the case.  I just feel that the various points of view involved could be more balanced if more of them would be considered relevant.

Regards,
Ed

On 18.09.2020 10:26, Wim Jongman wrote:

Should we not support older versions of Eclipse?

There is 2 years notice period so I would say do not support versions older than 2 years.

We provide LTS so it is not possible for everyone. It would also not catch the API break in the i-build.

1. The person that proposes the API change makes an impact analysis by searching all the Eclipse repositories, removal is abandoned if used > x%
2. Removal of API is sent to the mailing list of the project that uses the API so that we can fix things in time, especially when the project is in maintenance mode.

1. and 2. are not realistic if we go that path why don't we add Spring Tools or JBoss Tools which are one of the widely used plugins out there. Why not add Pydev too? Requiring to subscribe to project list to notify is a bit too much for me. There is a reason we have cross-project list. Effectively this proposal is to never ever change anything and let Eclipse Platform collapse under its own weight where we keep shipping multiple ways to do things - each with its own oddities.

Yes, we should add them as well. It is also about the thousands of consumers that we don't know.

And I really don't think that leaving three lines in Platform will cause Eclipse to collapse under its own weight. Java has never removed a deprecated method or an API class. AFAICT, they are fine :)

Cheers,

Wim


_______________________________________________
platform-dev mailing list
platform-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/platform-dev

Back to the top