Also, with some coordination, branches could be merged at a time when:
* Reviewers will looking at it and testing it *right* after the merge (in
addition to any branch review)
* The author is around to make fixes as it gets final review

People should try to be available after any large changes (from a branch or
from their local code). However, it may be the case that no one has the time
to specifically focus on reviewing a certain change set right after commit.
Maybe, for example, changes will only get seriously looked at a month after
the commit. If the author was available in the weeks after the commit, but
not when it gets serious review, then we still have a problem. This is also
were some advance notification and coordination could help (especially
looking at the examples Chad gave).


^demon wrote:
> 
> All,
> 
> While spending the past few days/weeks in CodeReview, it has become
> abundantly clear to me that we absolutely must get away from this idea
> of doing huge refactorings in our working copies and landing them in trunk
> without any warning. The examples I'm going to use here are the
> RequestContext, Action and Blocking refactors.
> 
> We've gotten into a very bad habit recently of doing a whole lot of work
> in
> secret in our respective working copies, and then pushing to trunk without
> first talking to the community to discuss our plans. This is a bad idea
> for a
> bunch of reasons.
> 
> Firstly, it skips the community feedback process until after your code is
> already in trunk. By skipping this process--whether it's a formal RfC, or
> just
> chatting with your peers on IRC--you miss out on the chance to get
> valuable
> feedback on your architectural decisions before they land in trunk. Once
> code
> has landed in trunk it is almost always easier to follow up and continue
> to
> "fix" the code that should've been fully spec'd out before checkin.
> 
> Also, the community *must* have the chance to call you crazy and say
> "don't
> check that in, please." Going back to my examples of Actions, had the
> community
> been consulted first I would've raised objections about the decisions made
> with
> Actions (I think they should be moved to special pages and the old action
> urls
> made to redirect for back-compat...rather than solidifying the old and
> crappy
> action interface with a new coat of paint). Looking at RequestContexts,
> had we
> talked about this in an RfC first...we probably could've skipped the whole
> member variable vs. accessor debate and the several months of minor
> cleanups
> that's entailed (__get() magic is evil, IMHO)
> 
> Secondly, this increases the load on reviewers, myself included. When you
> land
> a huge commit in trunk (like the Block rewrite), it takes *forever* to
> review
> the original commit + half a dozen or more followups. This drains reviewer
> time
> and leads to longer release cycles. I think I speak for everyone when I
> say this
> is bad. Small incremental changes are infinitely easier to review than
> large
> batch changes.
> 
> If you need to make huge changes: do them in a branch. It's what I did
> with the
> installer and maintenance rewrites, what Roan and Trevor did with
> ResourceLoader
> and what Brian Wolff did with his metadata improvements. Of course after
> landing
> your branches in trunk there will inevitably be some cleanup required, but
> it
> keeps trunk more stable until the branch merge and makes it easier to back
> out
> if we decide to scrap the feature/rewrite.
> 
> I know SVN branches suck. But the alternative is having a constantly
> unstable
> trunk due to alpha code that was committed haphazardly. Nobody wins in
> that
> scenario.
> 
> So please...I beg everyone. Discuss your changes first. It doesn't have to
> be
> formal (although formal spec'ing is always useful too!), but even having a
> second set of eyes to glance over your ideas before committing never hurts
> anyone.
> 
> -Chad
> 
> _______________________________________________
> Wikitech-l mailing list
> Wikitech-l@lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
> 
> 

-- 
View this message in context: 
http://old.nabble.com/On-refactorings-and-huge-changes-tp32143260p32143408.html
Sent from the Wikipedia Developers mailing list archive at Nabble.com.


_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to