Hello,
First of all, thanks to Armel, Eric and Manolo for your replies, I
appreciate having your different point of views (although the impossibility
to find a magic solution seems to be a common point :-).
On Sun, 9 Jun 2013 23:16:10 +0200 Eric Jensen wrote:
EJ> Judging from the differences between my code and the final code, i
EJ> estimate that you still had to spend at least 2-3 hours on it before
EJ> you applied it to wx.
FWIW I'm pretty sure you overestimate it in this case. I did change some
things but mostly this was just trivial refactoring IIRC. Your initial
patch was fundamentally sound and I didn't do any really big changes. But
then it was a relatively small patch (albeit an important one).
EJ> I think it can be expected from potential patch submitters to make
EJ> changes to their code on demand. Even if not to a stage where it
EJ> can applied immediately, but at least to a stage where it's relatively
EJ> close to that. If they just want to fire-and-forget a piece of code at
EJ> Trac, they must be prepared that eventually their code might not be applied.
I'm afraid I have to agree with this. I simply won't ever have time to be
able to do it myself. It may be difficult to justify this to people who did
make an effort to submit a patch but all we can do is to try to be more
pedagogical about it, probably.
EJ> I'd like to add that missing new features are hardly any show-blockers.
In principle, I agree, but in practice any sufficiently big patches bit
rot relatively quickly, i.e. it's pretty rare to be able to apply them a
year after they were made, even manually -- there are just too many changes
happening to all parts of wx code. So not applying them now may mean not
doing it ever (or at least until someone else comes and redoes them). Which
could still be the right thing to do, but it's hard to ignore the appeal of
a new shiny feature sometimes.
But, just for the record, wxExecute() patch is mostly a bug fix and not a
new feature, even though it does allow to do some things which were
impossible before as a kind of side effect.
On Mon, 10 Jun 2013 02:35:38 +0200 Manolo wrote:
M> IMHO the main problem for a patch to be applied is not only if it works
M> or not. It's the way it's coded.
I don't really agree with this. The trivial problems such as indentation,
spaces and variable naming are not really show stoppers and can be dealt
with easily and quickly. They do annoy me because I still have to do it and
I often have a feeling that if a person couldn't be bothered to indent his
code properly, it's unlikely that the other things were done well neither.
But in this sense "the way it's coded" is more a symptom of other problems
rather than a problem on its own.
M> But the dark side of this story is that he knows very very well that
M> sooner or later he will meet some problem from another guy's code. And
M> trying to repair a code you're not used to, becomes hard (try it and
M> you'll see why).
Yes, exactly, you've really put a finger on it here.
M> Therefore, wxWidgets needs more people like Vadim. Let me reword it:
M> more people that code like Vadim does, or close to. Patchers may be
M> trained in wx-style if they want their code to be applied.
I don't think it's necessary to code as I do (I don't even know if I have
any specific personal style, just the general principles which are, I
think, pretty well accepted in the wider community, e.g. things like "don't
repeat yourself" and "opened/closed principle").
What we really need are people who would be co-maintaining (parts or
whole of) wxWidgets all the time. So, once again, if anybody would like to
become a maintainer of some of the subsystems, you're very welcome to
apply.
Just as an example, when Paul Cornett became wxGTK maintainer, this really
helped a lot as I didn't have to deal with tons of wxGTK bugs and patches
that he took care of (this is in addition to doing most of the work of
porting wxGTK to GTK+3 which I would have never had time for anyhow).
And right now we basically have Paul, Stefan, who maintains wxOSX to the
best of his availability, Julian who works on wxRTC and Steven who takes
care of wxWebView. But, and even though many other people contribute more
or less permanently to wx, all the other areas, including the notorious
wxAUI, wxDVC and wxGrid components, don't have any dedicated maintainers,
i.e. somebody who would be always available to at least give an advice
about dealing with the problem, if not solving it. And taking important
decisions, such as the one recently discussed in wxAUI thread.
M> Any patch for a control should fulfill the protocol, extending the
M> tests, sample, and docs.
This is already de facto the case. The samples part is still somewhat
optional but I don't apply any patches adding new features without the
tests and the docs any more. It probably could be improved, i.e. adding
extra questions to be answered when submitting a patch might be a good idea
but I'm not really sure what could these questions be.
On Mon, 10 Jun 2013 02:36:14 -0700 (PDT) Armel wrote:
A> I believe that one of the main problem is the lack of publicity of target
A> specifications and design choices for a particular release.
This is definitely a problem (and my own fault, too). But I don't think
it's really related to the question about how to deal with the
not-quite-ideal patches and avoid spending too much time on them
accidentally, which was the point of my original email. Unless you think we
should stop accepting any patches at all and just make the release. Which
is actually something I've been seriously thinking about. But OTOH it's
hard to decide to ignore a patch fixing a real problem and knowingly
let it be present in a new major release.
A> In your mail, you write about the AddSourceForFD() which should have been
A> the principle to improve existing wxExecute code, how could Rob know at
A> first?
He couldn't, of course.
A> What I could find when searching is merely a list of 10 to 100 words long
A> subjects in a TODO list (that is:
A>
http://wiki.wxwidgets.org/Development:_Todo_List), the document about wxTNG
A> (
http://wiki.wxwidgets.org/Development:_wxTNG) was not modified for 3 years
A> (last update may 2010). In fact I realise when reading again that the TODO
A> list is in the same state, is it abandonned as well?
I've never touched these pages on that wiki, I try to maintain only the
"official"
http://trac.wxwidgets.org/wiki/Roadmap page. And even with it I
fail more often than not.
A> My own contributor experience was typically quite good, except for the
A> search highlighting in HTML; that is the only 'big' feature that I
A> proposed, I just could not catch what was wrong finally with what I
A> proposed, communication is not always simple by mail. The patch is still
A> living well in my own tree BTW.
This is an example of the same problem I mentioned above: lack of
maintainer for this particular area. Vaclav does take care of some wxHTML
patches still but he doesn't always have time for them...
A> From that angle, the point is probably that wxWidgets team does not tighten
A> enough what is wanted as contributions for a release x on certain subjects
I think we do, but this is not how the contributions happen. I don't think
we're going to find much success by loudly proclaiming that we need this
and that. Instead, people work on things they are affected by, i.e. scratch
their own itch. And I think it's quite all right, this is how all the
original open source projects worked and I remain convinced that it's a
viable model. We just need to learn to deal better with it than we do now.
If possible.
A> If I was in charge of WX, my first action would be to tell what I expect
A> from contributors, not just in term of mechanics of contribution but really
A> what is in your wx-team mind of the exact target of next stable release.
A> The perimeter of releases should be tight enough to fit a schedule.
A> Did I missed good documentation establishing all of that?
The roadmap I linked to above is the closest thing we have to this.
A> You all wx team (and contributors), your work is excellent so we need to
A> continue this great work. We just need a bit more of anticipation in the
A> work coordination.
Yes, I can't disagree with this. We need to do something concrete about it
though, and I'm not sure what exactly. Any suggestions -- or contributions
-- would be very welcome, as always.
Thanks again for your replies (and for all those who read my original long
message even without replying to it :-)!
VZ