On 22/03/15 19:07, Ian wrote:
> On Sat, Mar 21, 2015 at 7:42 PM, Matthew Toseland <matt...@toselandcs.co.uk>
> wrote:
>
>
>> 0. Stupid stuff. E.g. committing jars to repositories.
> Committing jars to repositories is kind of careless, don't people have
> sensible .gitignore files?  Can a .gitignore be committed to the repo?
>
> But regardless, nothing in the process I've outlined would inhibit
> correcting problems like this.  Ideally they'd be corrected at the code
> review stage, but if they make it past that then they can be corrected with
> a new branch, just like any other bugfix.
No, they can't.

Removing binaries (or worse, copyright-infringing files) requires
rewriting the history.

Rewriting the history is *BAD*. It makes it impossible for a third party
to follow what is going on. It makes life extremely difficult/messy for
our own developers, breaking their unfinished work when they pull from
master.
>>>> 2. Disruptive changes to APIs.
>> This has also happened. Especially if the description is incomplete,
>> there is a significant risk of refactoring breaking other code (e.g.
>> plugins; this was part of the problem with Xor's changes), introducing
>> new APIs that don't make sense etc.
> Both code review and a decent continuous integration system should address
> this.  This is a good continuous integration service that is free for OSS
> projects: https://travis-ci.org/  You can see how I use it on this other
> OSS project of mine: http://quickml.org/
Not all problems can be detected by automated tools.

Sometimes it is necessary to change classes that are used by plugins,
and some of those plugins are unofficial, i.e. third party.
>> I agree that review capacity is potentially a bottleneck. There are
>> different ways to solve this:
>> - Have paid staff who review and merge stuff.
> That seems very unlikely to happen, we barely have budget for actual
> developers, let alone dedicated QA people.  And really, who'd want that job
> anyway?
>
> Even setting aside budget and finding suitable people, coders should have
> primary responsibility for ensuring that their code is good.  It's
> unhealthy to have a situation where coders think that ensuring their code
> is clean and robust is someone else's problem.
That is precisely how every mature project works. Just because neither
your business ventures nor your involvement in open source are mature
doesn't mean there aren't projects out there - both open source (Linux,
Wine) and businesses (Steve's employer, presumably Google, etc) - which
care about code quality.

I repeat my earlier point: If we allow everyone to commit without
review, we will spend a lot of our time (and commit history) undoing
stuff. This is one of the reasons behind the rise of distributed version
control in the first place. Git, and Github, are specifically designed
to support pull requests. The implication is that the person merging the
changes is not the same as the person posting them, and that they should
be signed-off, i.e. reviewed.
>> - Don't accept pull requests if nobody can review them right now.
> This will absolutely cause a severe bottleneck, causing development to
> grind to a halt, and probably destroying morale in the process.  Who wants
> to work their ass of on some code only for it to sit in a branch
> indefinitely?
>> - Allow the reviewers to make reasonable demands for clear code. A pull
>> request is a negotiation between the contributor and the maintainer.
> Of course, reviewers can point out unclean code, and a conscientious
> developer will want to commit good code so they'll fix it.  If a coder is
> ignoring reasonable code review feedback then that might be grounds for
> removing commit access.
We are not using SVN. We are not using CVS. NOBODY uses Git and then
gives everyone push access. It just doesn't make sense. The correct,
standard workflow used by just about everyone is to fork and post a pull
request, which may or may not be merged.

I will reply to your points about big changes separately.

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Devl mailing list
Devl@freenetproject.org
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to