On 06/08/2011 10:26 AM, Mark Wiebe wrote:
On Tue, Jun 7, 2011 at 11:52 PM, Fernando Perez <fperez.net
<http://fperez.net>@gmail.com <http://gmail.com>> wrote:
On Tue, Jun 7, 2011 at 4:35 PM, Mark Wiebe <[email protected]
<mailto:[email protected]>> wrote:
> I went ahead and did the merge today as I said I wanted to, that
pull
> request is some further development for someone to code-review
if they have
> time.
I'm curious as to why there was a need to push ahead with the merge
right away, without giving the original pull request more time for
feedback? If I'm not mistaken, the big merge was this PR:
https://github.com/numpy/numpy/pull/83
and it was just opened a few days ago, containing a massive amount of
work, and so far had only received some feedback from charris,
explicitly requesting a little more breakdown to make digesting it
easier.
This is all true, I'll try to explain what my thought process was in
doing the merge. This set of changes basically takes the codebase from
a basically unusable datetime to a good starting point for all the
design discussions that we've been having on the mailing list. I
opened the pull request with about half of the changes that were there
to try and get some feedback, and kept developing on a datetime-fixes2
branch. When I reached the point that I later merged in, nobody had
responded so I added the new commits to the same pull request.
Perhaps I should have more patience with git history-editing and
revisiting the development history, but I've basically come to the
conclusion that it's not worth the effort except on relatively minor
things, so I want to rather focus on the code and its design instead
of the particular series of commits that produced it. In doing those
commits, I had to repeatedly double back and implement new missing
functionality before returning to and finishing up what I was working on.
For the development I'm doing now, which is related to the multitude
of design discussions, I'm splitting it up into more topical branches
partially because the work I merged provides a solid foundation for
doing so, and because these are things diverging from the NEP instead
of being things I perceived as having already had a discussion process
during the NEP formation.
I tried to see if github would let me do a "dependent" pull request,
but it just included the commits from the branch my later development
was sitting on, and that's probably the main reason I wanted to do a
post-commit style review for this set of changes instead of
pre-commit. I wrote this email to try and communicate my transition
from pre-commit to post-commit review, but I think my wording about
this probably wasn't clear.
I realize that I'm not really an active numpy contributor in any
significant way, and I see that you've put a ton of work into this,
including a very detailed and impressive discussion on the list on
with multiple people. So my opinion is just that of a user, not
really a core numpy developer.
I think your opinion is much more than that, particularly since you're
actively working on closely related projects using the same community
infrastructure.
But it seems to me that part of having numpy be a better
community-driven project is precisely achieved by having the patience
to allow others to provide feedback and testing, even if they aren't
100% experts. And one thing that github really shines at, is making
the review/feedback process about as painless as possible (I actually
find it kind of fun).
Definitely true (except for not having dependent pull requests, unless
my search was too shallow...). That pull request also has nothing to
do with the discussion we're currently having, it's more of a
prerequisite, so anyone who is following the discussion and wants to
dig in and review the code I'm doing related to that discussion will
be lost in a swamp. By merging this prerequisite, and introducing
separated, cleaner pull requests on that base that are directly from
issues being discussed, this kind of community collaboration is much
more likely to happen. I've simply done a bad job of communicating
this, and as I'm doing the things we're discussing I'll try and tie
these different elements better to encourage the ideals you're describing.
For example, with this merge, numpy HEAD right now won't even compile
on x86_64, something that would easily have been caught with a bit
more review, especially since it's so easy to test (even I can do
that). It's been a long time since we had a situation where numpy
didn't cleanly at least build from HEAD, so if nothing else, it's a
(small) sign that this particular merge could have used a few more
eyes...
I apologize for that, I've grown accustomed to having little to no
review to my pull requests, except from Chuck whose time and effort
I've greatly appreciated, and has significantly improved the
contributions I've made. The only active C-level NumPy development
currently appears to be what I'm doing, and the great
clean-up/extension proposals that Chuck has emailed about. I would
like it if the buildbot system worked better to let me automatically
trigger some build/tests on a variety of platforms before merging a
branch, but it is as it is.
I realize that it's sometimes frustrating to have a lot of code
sitting in review, and I know that certain efforts are large and
self-contained enough that it's impractical to expect a detailed
line-by-line review. We've had a few such monster branches in ipython
in the past, but at least in those cases we've always tried to ensure
several core people (over skype if needed) have a chance to go over
the entire big picture, discuss the main details with the author so
they can know what to focus on from the large merge, and run the tests
in as many scenarios as is realistic. And so far we haven't really
had any problems with this approach, even if it does require a little
more patience in seeing that (often very high quality) work make it to
the mainline.
That approach sounds great, and NumPy needs more active core developers!
Cheers,
Mark
Regards,
f
_______________________________________________
NumPy-Discussion mailing list
[email protected] <mailto:[email protected]>
http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion
I am sorry but github pull requests do not appear to be sent to the
numpy dev list. So you are not going to get many people to respond to
that type of 'closed' request. Further any discussion for things that
get merged into the master really should be on the list especially as
many people do extensive testing.
Bug fixes probably do not need further notification but feature
additions or API/ABI changes should have wider notification. So an email
to the list would be greatly appreciated so that interested people can
track the request and any discussions there. Then, depending on the
nature of the request, a second email that notifies that the request
will be merged.
I can understand Windows failures because not that many people build
under Windows but build failures under Linux are rather hard to
understand. If you do not test Python 2.4, 2.5, 2.6, 2.7, 3.1 and 3.2
with the supported operating systems (mainly 32-bit and 64-bit Linux,
Mac and Windows) then you must let those people who can and give them
time to build and test it. That is really true when you acknowledged
that you broke one of the 'one of the datetime API functions'.
Bruce
_______________________________________________
NumPy-Discussion mailing list
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion