[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [egit-dev] Source compatibility of egit?
|
On 09.06.21 08:12 , Carsten Pfeiffer wrote:
Hi,
I just noticed that org.eclipse.egit.ui.Activator#getRepositoryUtil()
was removed for 5.12 (see here:
https://github.com/eclipse/egit/commit/86708b62d5e4b1d707c4384b0267b60b6d8549a5#diff-c695789612e2970179ac9105515193450cdbdf6673bc3cbfd59813c80e6d77d0L340)
getPluginId() was removed for 5.11. Isn't this class part of the public
API and supposed to stay source or even binary compatible?
No, it's not API.
EGit UI has no API except package org.eclipse.egit.ui.history.[1]
The package org.eclipse.egit.ui is x-internal, like all the others.
(Well, it's actually visible to some other EGit bundles via x-friends.)
EGit core is similar. Only packages that are not restricted by
x-internal or x-friends are API; those are currently
org.eclipse.egit.core.attributes
org.eclipse.egit.core.info
org.eclipse.egit.core.revisions
org.eclipse.egit.core.settings
org.eclipse.egit.core.storage
org.eclipse.egit.core.util
Due to historical reasons, not all non-API packages have "internal" in
their name.
EGit is usable only within Eclipse platform, which is an OSGi
environment, so we rely on OSGi mechanisms to state what is API.
I couldn't find a statement regarding compatibility in the contributor
guide or the FAQ.
Until 5.7, EGit UI had no public API at all.
EGit core historically had only the .revisions and .storage packages as
API, .attributes and .settings were added more recently. The newest
additions are .info and .util.[2]
All that said: what do you need RepositoryUtil for? Depending on your
use case, org.eclipse.egit.settings.GitSettings might be useful, or
the new GitInfo interface.[2]
If you need other things, feel free to open enhancement requests to
expose more things as API. We can try (within limits) to expose other
things if we can define useful stable narrow APIs.
[1] https://wiki.eclipse.org/EGit/New_and_Noteworthy/5.7#API
[2] https://wiki.eclipse.org/EGit/New_and_Noteworthy/5.12#API
Cheers,
Thomas