So, basically, what I'm used to for collaborative projects with good bots + CI is that committers can approve their own change, but regardless, the bot is going to test + merge it. Especially important if you target a bunch of platforms people can't just test locally easily.
Conversation
Even if just target 1 platform and the development testing environment is nearly exactly the same as production, which generally isn't the case, it's really useful to have the changes run through a build + test and merged automatically so you actually can't break the main branch.
1
2
The pain it requires is relative to build time. If build time is 1 minute, there's really no pain involved in that kind of system. There's the honor system of people approving their own changes for simple / obvious stuff but someone else doing it for more complex stuff basically.
1
2
The tooling needs to be really good though. I have a lot of problems with GitHub CI. If the builds are really long, it also starts getting increasingly annoying especially in combination with a fast moving project with many contributors. Need really good infrastructure for it.
1
2
GitHub workflow + UI + their CI is all around really bad / unreliable. I would happily pay $150 / month for GitHub if they actually gave me a really good UI and powerful CI infrastructure that worked really well. I wouldn't trust them to actually ever provide that though...
1
2
Just haven't had a good experience with those platforms / companies. It makes me dislike CI because their CI is so ridiculously bad. Same for code review. I don't exactly think Gerrit is an amazing UI for it's an order of magnitude better workflow + review UI than GitHub.
1
1
I only use GitHub because I weigh the cost of dealing with the hell of GitHub vs. having to set up and maintain infrastructure with Git, Gerrit and CI.
For open source stuff, I also feel it's lower barrier to entry since people have an account already but not relevant otherwise.
1
1
At some point, I'll get fed up enough with GitHub to start using Gerrit and my own CI as I'd actually want to do and I'll probably be happier. Maybe I should hire someone to deal with it.
1
1
Most of my work involves dealing with downstream patches so Git itself doesn't really work and has to be tortured via rebase / cherry-pick to make things sustainable, as I'm sure you're getting used to with your Chromium work. GitHub is bad at dealing with rebases so... yeah.
1
1
It's really hard to collaborate on downstream projects... you want to keep rebasing / cherry-picking to the new stable releases rather than having totally unmaintainable / incomprehensible merges... but then it makes having pending changes really horrible for everyone else.
1
1
When I'm doing the subset of my work where I'm the upstream maintainer of the project everything seems so pleasant and it's hard to get particularly upset at the tooling anymore even when it's terrible.
Linear history with 0 merges, no porting to new upstream releases... mmm.
