Helloooooooooo Andrew !

> I'm sure that I should drop this but...

At this level it may not hurt anymore :-)

> When ever anything gets big enough I think this starts to break down. For
> example, when I whined about the lack of documentation for the pickle jar
> the people who put this is place didn't feel the need to step in and
address
> this. Even though I am just a sage-combinat customer:), I posted a patch
on
> trac and it is being reviewed (really!).

HMmm..   I don't agree with that. I do not work with that many Sage
developpers but I am totally convinced that any of them feels responsible
about his own code to fix it when a bug is found. But you talk of
documentation, and there I totally expect that it may not work anymore, as
it is less "urgent and dangerous". At least for the classes I am patching
now, I am pretty convinced that the explanation lies in the fact that
"nobody here wrote them". I think that we are rather on the ascending path
than the final explosion.

> I agree that's nice, but what I am complaining about is a general lack of
> documentation in sage, particularly for the metaclass framework, rather
than
> documentation for code in sage/combinat. If you check, the code in
> sage/combinat has a relatively high coverage rate.

Well documenting the methods when it comes to categories is not really
helping, it asks for a more detailed explanation. This way of writing
doctests works nicely for the graph stuff, where you only want to know what
the method parameters mean and what the output is quickly, but the category
stuff only asks for a 10 pages explanation with paragraphs, definitions and
a long list of corner-cases situations.

>> One other point I really do not like about the combinat model is that,
>> unfortunately, you all know each other.
>
> I am really quite amazed that you see this as a bad thing!

Ahhah. Sorry. I love to present as a bad thing something that is definitely
good, and the opposite too. Sometimes I get convinced that it helps to
think... There are many situations where you do not see the very bad sides
of a good situation. "It looks so good, it just has to have good sides only
!". But I insist that it is not only good in this case, especially when
documenting code. Florent and I have done the same thing a couple of times
: he has a patch to write and I do not know what is it, or barely, and I
try to write its documentation while he explains it to me, and while I ask
him questions.
This way, you know what a totally ignorant users needs to know when he
first meets the class. But the same way that -- after a while -- Sage
developpers are totally unable to see things through the eyes of a newcomer
and take a LOT for granted, it is hard to explain to somebody new something
that you have taken for granted for weeks while talking with a colleague.

Of course it is great to be able to talk together. I like this very much,
even though I keep complaining about everything. Nicolas and Florent teach
me many things quicker than I would have been able to teach myself
otherwise(we find bugs by just doing that), but there is, in this way of
working, a problem that does not exist when you cannot talk with each other
: the guy who does the review will get the very same input the users will :
the doc, and nothing else.

>  I think that was you are really complaining about are bug fixes which end
> up in the sage-combinat queue but are not posted to trac.

Yep

> I fully agree that
> patches should be posted to trac as soon as they are ready for review and
> that people shouldn't keep half finished patches lying around in the
> sage-combinat queue, or elsewhere. I don't see any harm, however, in a
patch
> being both on trac and also in the sage-combinat queue if it is relevant.

Oh. I'm talking about the development model, and actually of... politics.
If you keep adding fixes to the combinat queue, the bug will be fixed as
far as the combinat guys are concerned, and they will not have any need to
send it to trac. There is no need, and so it does not get done. Of course
there is nothing wrong with having bugfixes in Sage-combinat. There is, for
instance, no problem at all with including inside of Sage combinat a
positively reviewed patch that will be merged ..... later, when Jeroen will
feel like doing it. But the point is that if you insist a bugfix patch
should not be there unless it is already positively reviewed, or not at
all, then I am pretty sure everybody will send those patches to trac,
because like everybody you need to have the bugs you meet FIXED in the code
you work with.

>> 2) Something I discussed with Florent : everybody in Sage-combinat should
>> have at most 2 or 3 patches in the queue. Nothing more. If you want to
add
>> another one, get your patches merged into Sage
>
>
> As Anne said, "it would be a good idea to try to integrate patches in the
> sage-combinat
> queue more quickly."

That will not happen by just asking, though. That's what a development
model is. That's what politics is all about. There are ways of doing things
which infuence the way things are actually done. With the current combinat
model, there is no need for the combinat developpers to send their code to
Sage. That's why I call it a fork.

>> 3) Why the hell do you need to have your own fork anyway ? (just my own
>> thought, but I still don't exactly get it)
>
>
> For me one of the key advantages of the sage-combinst queue is that it
> allows code to be used and tested while it is being developed and before
it
> is reviewed. The best way to test code it to use it, so this actually
saves
> a lot of time and leads to better code.

I know, I know. But look at the bad sides too ! Look at what you have to
pay in exchange for that ! And did you ever really work with the REAL Sage
? Things can go pretty fast there too. And you can trust each other's code
because it is fixed, and the documentation gets written too. It's not
thaaaaat bad. But please, see that your development model has many good
sides, like the one you mentionned, but that it comes with a load of
problems that cannot be solved without changing the way you work. That's
totally one of those ! This advantage is what makes combinat behave like a
fork of Sage ! You are totally independent of Sage, you don't *NEED* to
contribute to have your version of it evolve, and that's the problem !

>> 4) Just look at the TRAC section named combinat. Each time I go look at
>> the patches, I just dream to put them all on "need_work" state.
>
>
> I think this is a little spurious: you see a similar picture with every
> component of sage, especially when you adjust for the size of the
> components.
> I think that this is a fair criticism of the sage-combiat patch
> queue but not of the patches on trac.

Well. To me it gave an idea of how patches can be as good as dead, even
though you already use them in combinat.

> Btw, many of these posts on trac come
> from the general sage community and in addition to patches being reviewed
> there are also feature requests

> Let me end by saying that I thought it funny that you make such a big
> distinction between sage and sage-combinat as I don't really see a
> difference.

That's a problem.

> As I see it, the development model of sage and sage-combinat,
> which is after all just a subset, is exactly the same.

NOooooooooooooooooooo pleaaaaaaase !! IT IS NOT ! That's my whole point ! I
always say that combinat is a fork of Sage, because even if you say that
patches will get merged eventually (and they sometimes do), in practice it
behaves as a totally indepedent software with its developent model. You do
NOT review patches internally as we do in Sage. In Sage, we actually have
no way to share code unless it is clean and documented. You do NOT do that
in combinat, for you work on those patches. You do not have this need, and
so you work with your own copy/fork of Sage, and we don't get the bugfies,
and we don't get the features that are not ready for a Sage review, etc,
etc.. It's a fork, because it CAN behave so independently. Please, do not
just stay convinced that "all combinat patches eventually get merged". Look
at how it is in pactice ! It is much slower than that, and this is because,
then again, you CAN share code without reviewing it, without writing
documentation, without testing the cases the author has no interest in !

> The sage-combinat
> patch queue makes it easier for people working on applications in
algebraic
> combinatorics to talk with each other and to exchange ideas.

Yes. That's the good side of your development model. That's also why you
behave like if you were working on a fork.

> The queue is a
> pain to maintain sometimes but I think it's infinitely better than
emailing
> patches back and forwards or pushing half finished patches to trac.

YES, but if you were working with the Sage TRAC server the patches would
HAVE to be finalised. Please please, that's the whole point !

> The bottom line, which is completely independent of the sage-combinat
patch
> queue, is that if you don't like something in sage then you have to jump
in
> and fix it -- or convince some one to do it for you!

Ahahaha. That's why most bug reports begin with "Am I doing anything wrong
or is there a problem with [...]" :-)

And I forwarded a bug report just yesterday to a french developper who
wrote some code we use in Sage, to get as an answer "Nono, it's not
unpleasant for a bit to getbug reports ! I am glad to know this code is
useful !" :-)

Have fuuuuuuuuuuuuun !

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to