-
Notifications
You must be signed in to change notification settings - Fork 74k
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
tensorflow/workspace: re2 dependency does not use release/master branch #34726
Comments
Here's where the dependency was changed: 517ad0e It's only since 1.15 and is present in 1.15, 2.0, and 2.1rc0. |
Can we find out who owns re2 and ask them when a release with absl support
will be available?
…On Mon, Dec 2, 2019, 14:18 Austin Anderson ***@***.***> wrote:
Here's where the dependency was changed: 517ad0e
<517ad0e>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#34726?email_source=notifications&email_token=AAEM57IBTJW4UWO2R25CXADQWWCRZA5CNFSM4JTKBAO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFWB6HI#issuecomment-560733981>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAEM57OP6LPXVDIXVIL44HLQWWCRZANCNFSM4JTKBAOQ>
.
|
Thanks to some insight from RE2 and Absl folks, I think I can explain more about these. The RE2
Since Abseil is normally used at head (LTS releases for Abseil are only tagged twice per year, and Abseil is currently difficult to package partly because of that), the RE2 For whatever reason, TensorFlow uses this Abseil-supporting RE2 soft-fork. It seems like the paths to support system libraries on Gentoo would be:
|
okay thats what i suspected was happening but thanks for confirming everything. :) I'd really like some more announcements directly from re2 / absl people tho instead of second-hand here. In the mean time I can bundle re2 when packaging TF on gentoo and then when things are packagable i''ll work with the maintainers of re2 on gentoo and change things over. Another part of using absl is that re2 should stick to using only the LTS branches so that things can be packaged easily on all distros that use it. and this means TF also needs to use the LTS absl branches. historically I've never packaged absl because TF bumped hte absl dep too often and there was no tag to package. Maybe absl should move to quarterly tags or something if TF constantly needs new updates from it. I dont actually know what TF uses from absl so not sure exactly how easily it can switch to the LTS branches. |
@sanjoy is it feasible for TF to depend on LTS version of absl? |
I suspect that won't be easy. The google3 build of TensorFlow uses absl at head, and so folks will have problems where TF builds fine internally but breaks in open source (when they use a feature available at HEAD but not in the LTS version, for instance). |
TF could not use features not available on the latest LTS. That's not hard
test or enforce. The bigger problem will be backwards incompatible changes,
and although I expect those to be exceedingly rare, absl is explicitly not
ruling them out.
|
Just so I understand: what are the problems with bundling re2 and absl with the TF gentoo package in perpetuity? Is it mainly a resource usage (disk space etc.) concern or are there other issues?
Can this can be done in a way that I agree with your point about the backwards incompatible changes. |
It's fundamentally the same process as we have for all other third party
libraries so I'm not concerned about that. If the LTS release is available
in addition to head it might be possible to test this without using open
source testing, but I don't think it is.
|
First off, this isn't a Gentoo issue, it will be an issue for any distro that packages TensorFlow (I know arch, nix also do, debian does not yet because of bazel issues) I just happened to notice first. Some more background about why bundling libraries is bad is here: #20284 , specifically https://wiki.gentoo.org/wiki/Why_not_bundle_dependencies https://fedoraproject.org/wiki/Bundled_Libraries the specific issue here is that chromium depends on re2-without-absl. and now TF depends on re2-with-absl. so, uh, which one would libre2.so be then? and then chromium and tensorflow become mutually incompatible on any linux distro? If it was some obscure library that only TensorFlow used then it might be fine, but many other packages depend on re2 as well so I cant just pull the rug out from everyone else. The re2 package installs headers in The other problem with re2 switching to absl is that in its current form, absl is not really packagable at all. I could make a package for it easy enough, but it I cannot package random git hashes, I can only package tags with actual version numbers. The LTS releases would work, but no one uses those so packaging it is currently pointless. How often would absl have to have releases for things to be fine on them? If absl made tags quarterly would that work? or monthly? |
tensorflow/workspace.bzl has this for the re2 dep:
That commit is google/re2@506cfa4 which is on some random branch called abseil (https://github.com/google/re2/commits/abseil) and incompatible with master or any released version of re2. This completely breaks building against system libs. On Gentoo we have re2-2019.09.01 packaged (and i cant and wont change the package to use a random branch because other packages (eg chromium) need the real released versions not a random branch).
TF wont build against master, it fails with errors about "StringPiece" vs "string_view". I cant figure out how to link properly to the diff but go here https://github.com/google/re2/compare/abseil#diff-6dc69df7618951357bb5fb674c66aa34 and click "files changed" then "showing 120 changed files" then click re2/re2.h. Its fairly obvious why its failing to build.
What even is the abseil branch? The stats say
This branch is 166 commits ahead, 167 commits behind master.
So its clearly not just some feature branch that is going to be merged in soon.TF should be using master, if TF needs some new functionality in deps then please make a new re2 release first? I (grudgingly) understand why for eigen and llvm, but re2 has monthly release cycles
@gunan @angerson @martinwicke
The text was updated successfully, but these errors were encountered: