While beeing offline again (some talk rooms are not covered by WLAN) I
finally implemented my idea of the alternatives table which is now even
enhanced by distribution and component columns according to the fact
whather at least one alternative is in Debian main or contrib/non-free,
etc. I think this implementation does in no way conflict with your idea
and thus I'd suggest to keep this as long as we are not sure what way we
might go. My idea was to enable an alternatives table that can fully
replace the dependencies table and you might try some tests whether this
enables the same results as with your implementation where you only use
the "lookup alternatives" way. This experiment might lead to the right
solution, IMHO. The weak part in my approach remains that there is no
good way to find out whether the distribution / component information is
valid for a given architecture and this could be an advantage for your
approach. If this turns out to be the case we might strip the table
again some bit in a final stage.
I think I git your point but for completenes here is now all information:
udd=# SELECT * from blends_dependencies_alternatives where alternatives like '%k3b%' or alternatives like '%brasero%';
blend | task | alternatives | dependency | distribution | component
-------------+---------------+--------------------+------------+--------------+-----------
debian-edu | desktop-other | k3b | brasero | r | debian | main
debian-edu | desktop-other | k3b-i18n | brasero | r | debian | main
debian-ezgo | multimedia | k3b | d | debian | main
debian-ezgo | multimedia | brasero | d | debian | main
Well, this was my idea from the beginning and I obviosly failed to
> Also I have
> one question: why does this table contain the k3b and brasero packages as
> standalones? what I mean is that the blends_dependencies_alternatives in
> the alternatives field should only have strings into this format "package1
> | package2" so strings which contain the logical OR "|" inside them.
explain without implementing it - hope it becomes clear now. I went the
abstract route that even single packages are some "special case" of
alternatives. This is was I tried to say initially by "storing
verbosely all what you find between ',' signs" which might be single
packages or '|' separated sets of packages ("real" alternatives).
When thinking about it this approach might spoil your approach a bit -
but this could easily solved by a view showing only
SELECT blend, task, alternatives, dependency from blends_dependencies_alternatives where alternatives like '%|%' ;
which should exactly reproduce the content of your proposed table.
Lets create the according control files
and check whether they reproduce the content of the tasks file. BTW, for
experimenting with side case you can always experiment with the "fun"
Blend - which exists just for debugging fun.
> > udd=# SELECT (SELECT count(*) from blends_dependencies_alternatives) asProblem solved.
> > altcount, (SELECT count(*) from blends_dependencies) as depcount ;
> > altcount | depcount
> > ----------+----------
> > 5764 | 5022
> >
> > I'd like to check why this is the case to this extend before I commit
> > this to the public Git repository.
> This is probably happening because the importer might include all theWell, the alternatives table should have "a lot" of entries but simply
> packages into the blends_dependencies_alternatives along with the
> alternatives into the format "package1 | package2". Like the results you
> got above:
not more than the dependency table. This is now fixed:
4987 | 5080
udd=# SELECT (SELECT count(*) from blends_dependencies_alternatives) as altcount, (SELECT count(*) from blends_dependencies) as depcount ;
altcount | depcount
----------+----------
The reason was actually that in the dependency table importer those packages
> So the reason you get more lines in the alternatives table is (maybe)
> because the 5022 single package dependencies from blends_dependencies
> table are also added in the blends_dependencies_alternatives and you also
> add the strings which contain "|" so the raw strings "package1 | package2"
> which maybe are 742 (5764- 5022). So the blends_dependencies_alternatives
> should not contain single packages only boolean "|" package strings
that are not inside UDD at all are simply thrown away. Obviosly there are
a lot of them - because after I implemented this for the alternatives I've
got the numbers as expected. Now some more reasonable number because the
"view" above has 69 entries where some have more than one element in the
alternatives string - so a difference of 93 makes perfectly sense (without
having checked the actual numbers).
So it seems at least in this respect I was not totally insane. ;-)
> In openjdk they do it more or less the same way as you say above, so I
> think if we can also do it that way :-)
First talk provided. ;-)