On Wed, 27 Jun 2012, Stephan Kulow wrote:
On 27.06.2012 10:01, Michal Vyskocil wrote:
Hallo all,
as a Java package maintainer I did a lot of work to avoid bootstrapping issues (aka build cycles) in openSUSE. That ends in a situation we have been never able to submit maven into build service, because it creates a **huge** list of dependencies, so with rebuild="transitive" it will kill any cluster we will find a budget for ;-)
However with a newly introduced Scheduling Strategies feature, collo have used rebuild="local" for Factory, so now we have the cycles in Factory [2]. But probably because of the changed scheduling strategy, coolo did not blame me as in a past for cycles I've introduced in a past. But maybe both are tiny comparing to acl->zlib.
Did we changed the approach here? Especially Java packages, where cycles exists in upstream and no one other takes a care it will be a huge step forward. And in this case it even do not block the bootstrapping to an another architecture, as packages are mostly noarch, so can be used everywhere.
BTW: for Java packages we can be even more relaxed and use rebuild="manual" and did it only on major jdk change as we did yet jdk6->jdk7.
I do care for cycles as they are a problem. Not for factory, but for staging project(s). But I basically gave up on java, that's true. I spent so many hours trying to find a solution for it, that it's just not worth it ;(
But unless we leave java stuff out of factory, we have to find a way to build it in projects with transitive rebuilds.
Well - we do have another rather big cycle already - you can view it
inside Base:build. It's the cycle that contains GCC. Obviously
there is some existing magic in obs or the project configs that
ignore selected edges in the build dependency graph ... why not
add appropriate java-cycle-edges here?
(oh yes, Base:build uses rebuild=local - so much better than to
never finish building ... ;))
Richard.
--
Richard Guenther