Skip to main content

[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




Back to the top