[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: guava-libraries 18?



* Emmanuel Bourg:

> If the changes affect many reverse dependencies that's probably a good
> idea, but if it breaks only two packages I don't think we should
> duplicate the package.
>
>> I for one feel like manually checking 20+ packages would be a waste of
>> time.
> If you want I can check the first half and you the other half.

For me, it's not so much about the number of packages.

1. Testing whether a rebuild against the newer version still works is
clearly not sufficient: code can be loaded at run-time, for instance.

2. I wouldn't know what to check beyond that simple rebuild.

3. We (Debian) already know how to deal with ABI breakage in shared
libraries produced from (mostly) C and C++ code: Change the SONAME
(upstream's job) and adjust the name of the resulting library package
accordingly. 

In the short run, this increases the number of packages in the
distribution, but different versions of a given library can co-exist.
This generally saves work because checking a potentially large number of
reverse dependencies is not needed right away and needs to be done only
when the old version is removed.

Why can't we do the same for Java libraries where upstream authors in
general seem much less willing to watch out for API/ABI compatibility?

>From working on elasticsearch, I have at least seen three packages where
API/ABI compatibility had been broken: icu4j, spatial4j, guava. I fixed
the first two by providing the new version under a different name.

4. I don't really care about most of the packages that may or may not
break with the changed API/ABI in guava-18.

JFTR: Here are the interesting binary packages as listed by apt-cache
rdepends:

  checkstyle
  eclipse-mylyn
  epubcheck
  igv
  jajuk
  jython
  libandroidsdk-common-java
  libandroidsdk-sdklib-java
  libbiojava3.0-java
  libcarrotsearch-hppc-java
  libcarrotsearch-randomizedtesting-java
  libclosure-compiler-java
  libgradle-core-java
  libguava-java-doc
  libguice-java
  libjenkins-java
  libjsilver-java
  libmaven-stapler-plugin-java
  libmustache-java
  libowasp-java-html-sanitizer-java
  libplexus-containers1.5-java
  libplexus-containers-java
  libsisu-guice-java
  libsisu-plexus-java
  libsolr-java
  libstapler-java
  libuima-addons-java
  maven
  osmosis-plugin-borderextract

Cheers,
-Hilko


Reply to: