
Why GitHub Can't Host the Linux Kernel Community - okket
http://blog.ffwll.ch/2017/08/github-why-cant-host-the-kernel.html
======
clarkevans
As I understand, Daniel Vetter is proposing a "monotree" as a source code
control pattern where a monorepo (and its branches) is not the primary place
where development is done, but is rather where works are integrated from
subordinate repositories. In particular, he's asking for GitHub to support
coordination (issues and pull requests) spanning upstream repositories that
are indicated by a particular change request.

I was hoping to see discussion of the merits of this proposal here on HN...
not a regurgitation of Torvalds' positions and personal demeanor. What other
projects use a monotree? does it work well? How do those projects coordinate
changes across subordinate repositories?

~~~
rattray
Especially in a world where GVFS is a thing (not quite yet), I fail to see the
advantage of a monotree over a monorepo with lots of branches and scripting
around a MAINTAINERS file.

What's wrong with branches and folders? Why are upstream repositories needed?
(My hunch is the answer is just "it's slow with that much code" to which I
again say "not when GVFS is ready").

Not to say Linux should change their ways, just that I wouldn't adopt them as
part of a company.

~~~
hobarrera
GVFS has been working for years, but it's not even used related to the linux
kernel at all. It's actually a GNOME-thing.

~~~
ahupp
I think it's referring to this:
[https://blogs.msdn.microsoft.com/devops/2017/02/03/announcin...](https://blogs.msdn.microsoft.com/devops/2017/02/03/announcing-
gvfs-git-virtual-file-system/)

------
jacquesm
I'm fine with that. Github is 'too large to fail' already, adding the Linux
kernel to the pile and forcing the kernel team into Github's workflow are two
big negatives. It would be great for Github but bad for everybody else.

~~~
ghrifter
Personally I'm a fan (and user) of gitlab since GitHub's recent policies and
that GitHub takes forever to implement simple things that all users would love
(like free private repos)

~~~
adrianratnapala
I would like a free, private Aston Martin, but the manufacturer is taking for
ever to implement that too.

But I take your point. This is why I drive a Nissan.

~~~
linkmotif
I'd say GitHub is not Aston Martin if GitLab is Nissan...

~~~
adrianratnapala
Well, my Nissan wasn't free either and I don't use GitLab at all.

------
snakeanus
I can't really see the obsession that everyone has with centralised and closed
services like github. We need to start moving away from them, not move more
projects to them. Mailing lists and NNTP make decentralisation quite easy
while being open standards and without having the need to have any account in
any centralised service, why drop all these features away?

~~~
BinaryIdiot
> We need to start moving away from them, not move more projects to them.

It seems this topic comes up quite frequently on HN. Unfortunately, while it
sounds great in theory, no one ever has a practical way of doing this. The
main problem here is the user experience.

When using GitHub I can find an open source project, copy the URL, pull it
down, make changes, push and click a button for a pull request. A little bit
convoluted but overall it's a very simple workflow. Now try decentralizing
away from GitHub. If you have to add any steps then you increase friction
likely lowering the UX and making adoption harder.

Now, if you can figure out a way to decentralize a service while maintaining
the same level _or less_ friction from the centralized version then you have a
real winner and things can start happening. Until that happens the idea of
decentralizing things is just going to remain a pipedream.

In my opinion, of course. I _love_ the idea of decentralizing things like
GitHub I just can't imagine a good UX way of doing it.

~~~
roblabla
There's git-appraise[0] which decentralizes issues and PRs by putting them as
objects inside of git. It also features a webui[1]

[0] [https://github.com/google/git-appraise](https://github.com/google/git-
appraise)

[1] [https://git-appraise-
web.appspot.com/static/reviews.html#?re...](https://git-appraise-
web.appspot.com/static/reviews.html#?repo=23824c029398)

~~~
david-cako
This is actually the one good way of handling it IMO.

Decentralizing git without losing the UX benefits of using a site like github
is done by handling it like torrents and packaging everything into the
repo/technology itself. The Linux kernel is already part of the way there,
it's just the "local client" aspect that's missing, along with a focus on
actually making it intuitive and fully integrated into git itself.

The repo _itself_ should contain all of the bookkeeping, and git should host a
local UI (web and CLI) that allows you to interact with it as you would with
github, rather than the send-mail rituals, the relative difficulty of
following development on mailing lists, and the "here's how to set up one of
20 different email clients to send mail as plain-text". Imagine
get_maintainer.pl and send-mail being replaced with a built-in pull-request-
like interface that is disseminated to everyone that pulls from the remote.
That's what git-appraise is trying to accomplish.

The traditional mailing-list-based development is tried and tested, but at
risk of displaying my appy app iPhone youth naïveté, it's really inconvenient
IMO.

~~~
tenken
I think you just described the Fossil dvcs.

------
mi100hael
There's also Linus's personal aversion to how GitHub implements many
opinionated workflows.

    
    
        > I don't do github pull requests.
        >
        > github throws away all the relevant information, like having even a
        > valid email address for the person asking me to pull. The diffstat is
        > also deficient and useless.
        >  
        > Git comes with a nice pull-request generation module, but github
        > instead decided to replace it with their own totally inferior version.
        > As a result, I consider github useless for these kinds of things. It's
        > fine for hosting, but the pull requests and the online commit
        > editing, are just pure garbage.
        > 
        > I've told github people about my concerns, they didn't think they
        > mattered, so I gave up. Feel free to make a bugreport to github.
    

[https://github.com/torvalds/linux/pull/17#issuecomment-56546...](https://github.com/torvalds/linux/pull/17#issuecomment-5654674)

~~~
Waterluvian
He really talks in extremes. I see all his points but it doesn't make these
things pure garbage.

~~~
jacquesm
Progress relies strongly on unreasonable people like Linus. Keep in mind that
Github mutilated his baby so that's a pretty good reason to be upset.

~~~
kibwen
Progress relies strongly on people working together toward a common goal. If
being "unreasonable" works for Linux, that's fine. But before others go trying
to blindly emulate Linus, I'd suggest attempting to be reasonable first.

~~~
jacquesm
What people really don't seem to get is that Linus' cultural background is
Finnish, and that Finns tend to be _extremely_ outspoken and that they
couldn't lie or polish their words if their life depended on it.

[http://www.karelia.fi/welcomingguide/the-finnish-way-of-
life](http://www.karelia.fi/welcomingguide/the-finnish-way-of-life)

What to American sensibilities are grave insults to Linus is most likely just
him speaking his mind without any filter in place, the way he was brought up.

~~~
eridius
That's not a very good excuse for someone who's communicating with other
people outside of his culture. He's had many many years to learn that his
style of communication doesn't mesh with most people.

~~~
jacquesm
> He's had many many years to learn that his style of communication doesn't
> mesh with most people.

Well, considering that Linux is pretty much powering the world it seems to me
that his style of communication tends to mesh perfectly well with the people
that he's working with and that they actually get the job done. As opposed to
a whole pile of floundering competitors which are of course _much_ better from
a technical perspective and tend to have more polite maintainers.

The man gets the job done, in a similar way that an army general will get the
job done. Whether he would be equally effective if he would polish his words
on those occasions where people get offended is something we probably will not
know.

If you're easily offended don't contribute to the Linux kernel.

~~~
eridius
He surrounds himself with people that are willing to put up with his
communication style. That doesn't mean he has a good communication style.

> _If you 're easily offended don't contribute to the Linux kernel._

That's a pretty shitty attitude to take. And you don't have to be "easily
offended" to dislike interacting with Linus.

~~~
jacquesm
> That's a pretty shitty attitude to take.

Why?

The Linux kernel is mission critical, that means that _tons_ of business and
individual depend on it for all kinds of stuff that if it went down would be a
major event with the losses likely hard to put a figure on.

Developing for such an environment tends to be a fairly harsh affair, Linus
was not bred for this, he more or less accidentally found himself the leader
of a substantial software effect, the likes of which had not been seen before
outside of very large corporations. The fact that he managed to make this work
and managed to get together a band of developers that work well with him -
regardless of style - speaks volumes to me, I know I couldn't do it, work the
best part of my life to _give away my work_ and to be scolded for the form of
my delivery would be reason enough for me to throw the towel in.

Personally, I've known bosses that were a lot less reasonable than Linus is
who tends to simply be direct, to the point and sometimes (rare enough that
people feel the need to point out their favorites) makes social faux-pas that
I feel are minor issues, stuff that if it is part of someone's personality you
can easily step over.

I've yet to be in a work environment where there aren't one or two 'hard
cases' and typically they have their reasons for being short tempered, such as
that when the shit hits the fan it is their shoulders that a disproportionate
helping of manure will land on.

Being the maintainer of a large open source project has to among the the most
thankless jobs in the world, being the chief maintainer of the Linux kernel is
probably one of the worst of those.

The only other person in the open source community that gets such treatment is
RMS and I really fail to see what the big deal is.

~~~
eridius
Correlation is not causation. Just because Linus managed to become BDFL of a
hugely successful project doesn't mean Linus's communication style in any way
caused this. And it doesn't mean that he should get a free pass on treating
people badly.

A lot of people subscribe to the idea that if you don't have a thick skin you
shouldn't be in tech. That's a terrible attitude to take, there's absolutely
no reason why that should be true, and it discriminates against a lot of
people (including women). This attitude just contributes to the current toxic
tech culture.

~~~
jacquesm
> Correlation is not causation. Just because Linus managed to become BDFL of a
> hugely successful project doesn't mean Linus's communication style in any
> way caused this.

Just as it does not prove the opposite.

> And it doesn't mean that he should get a free pass on treating people badly.

From you? Or from those people?

If you're not the one that he was talking to why do you feel so strongly about
it?

> A lot of people subscribe to the idea that if you don't have a thick skin
> you shouldn't be in tech.

I didn't say that. And I don't subscribe to that. But if you want to be in a
project with a BDFL that tends to be a bit coarse then it certainly won't
hurt.

> That's a terrible attitude to take, there's absolutely no reason why that
> should be true, and it discriminates against a lot of people (including
> women). This attitude just contributes to the current toxic tech culture.

Yes it would. But that is something that you mixed in all by yourself and
you're making Linus the scapegoat for this particular shortcoming of the tech
community, whereas Linus is just one person in an arguably un-enviable
position who gets a lot of shit thrown at him for a few minor gaffes which the
_participants_ took a lot better than the bystanders. And personally I'm more
inclined to see these as in the heat of the moment and soon forgotten
afterwards, the fact that they are archived forever doesn't take away the
dynamics of the original situation. Heck, if I got the kind of hate that Linus
gets for his occasional flare-up I'd stick to solo projects. It's bordering on
the ridiculous how this is pulled out of proportion.

------
mmagin
I imagine after the Bitkeeper fiasco, Linus and others are disinclined to
become dependent on a proprietary service.

~~~
jordigh
Hm, I don't think so. Linus never had a problem with bitkeeper being
proprietary, and he actually was annoyed when Andrew Tridgell tried to
reverse-engineer the bitkeeper protocol. Linus seemed very unhappy with
Tridgell, not with Larry McVoy for making bitkeeper proprietary. He built git
out of necessity, not out of some desire to have free software.

~~~
Shorel
> He built git out of necessity, not out of some desire to have free software.

History has proven that necessity is a much better incentive, and produces
better products than ideology.

~~~
jordigh
I don't know about that. Hg was built at the same time for the same reason but
seems to have more ideology around it, and I would argue it's a superior
product that just was unlucky enough to not have github built for it.

~~~
Shorel
For people who seriously care about performance like me, git is by far the
superior product.

I don't care much about the github website, because 99% of the time I use git
from the command line.

------
liaukovv
This font gave me a headache Why not write with white on white? It would be so
stylish

~~~
Sodman
If things like this bother you, you should check out the chrome extension 'Dom
Distiller'[0]. I saw it in another HN comment last week and it's already one
of my favorite plugins!

It drops all of the non-article content on most sites and leaves you with a
centered, decent width, blank-and-white version of the article that's almost
always easier to read than the original.

[0][https://chrome.google.com/webstore/detail/dom-distiller-
read...](https://chrome.google.com/webstore/detail/dom-distiller-reading-
mod/oiembdaoobijmdmeobkalaehgifealpl?hl=en)

~~~
askvictor
Unless you're on mobile.

------
monorepoman
Lost me at "And lots of people learned that monorepos are really painful,
because past a certain size they just stop scaling." Plenty of counterexamples
of monorepo projects much larger than Linux kernel.

~~~
the_duke
True, but only in large organizations that can devote massive amounts of
manpower and infrastructure and have extensive tooling to make it work.

------
mpd
Frankly, I think the Linux kernel is too important to even consider subjecting
itself to the Github T&C, community guidelines, etc.

------
ericfrederich
Someone desperately needs to come up with an open source replacement for
GitHub that is completely decentralized. Sure GitLab exists and the repo is
decentralized since it's Git, but issues, merge requests, comments, etc aren't
Git based (though they could be)

~~~
neandrake
Check out Phabricator -
[https://phacility.com/phabricator/](https://phacility.com/phabricator/)

~~~
closeparen
Phabricator is awesome but GitLab is more similar to Github if you're looking
for a direct replacement.

These are still centralized, but each organization can host its own server. A
true decentralized solution would federate issues/tasks, pull requests/diffs
and their comments, etc. similar to how Git federates changes.

------
hyperion2010
Here is another overview of how the kernel uses git and why no emails is
simply not possible (or sensible).
[https://www.youtube.com/watch?v=vyenmLqJQjs](https://www.youtube.com/watch?v=vyenmLqJQjs)

------
taeric
I actually really like the MAINTAINERS file. Keeps the metadata literally in
the repository and doesn't rely on an external system.

~~~
devrandomguy
Yes, this is similar to how I would like to handle issues: just an issues
directory full of yaml-markdown files. That way, issues are a part of the same
history as the code. They can be specific to a branch, they can diverge as
different solutions are attempted in parallel, and they can be deleted and
retrieved after resolution.

~~~
taeric
I've actually been fine with to-do lines in files. Have a metric for the
number you have, and don't abuse it, but they are easy to find and literally
next to the code they relate to.

------
tomschlick
The kernel seems better suited to something like Phabricator instead of
Github. Keep Github simple and clean for our "normal" projects.

~~~
neandrake
What makes Phabricator not suitable for "normal" projects?

------
IceDane
This website is completely fucking unreadable on mobile. But hey, at least
it's stylish or something.

------
shmerl
Is there some similar reason why Debian doesn't use more convenient bug
tracking system that would allow a Web frontend?

I don't mind periodically using reportbug, but using something like Bugzilla
is way more convenient.

------
vbernat
Not mentioned in the article, but work is also coordinated by maintainers with
the use of patchwork. For example, for the network subsystem:
[http://patchwork.ozlabs.org/project/netdev/list/](http://patchwork.ozlabs.org/project/netdev/list/).
This enables tracking the status of a patch and not loose them.

------
sytse
At GitLab we're looking into addressing this use case
[https://gitlab.com/gitlab-org/gitlab-
ce/issues/36239](https://gitlab.com/gitlab-org/gitlab-ce/issues/36239)

~~~
pdimitar
Love the effort and the dedication, but "Make Monotree Merging Magnificent",
really? :D

Made me giggle.

------
web007
> Please support pull requests and issue tracking spanning different repos of
> a monotree.

Issue tracking you can already file against one or more repos and link them
together. It's not ideal, but it'll do the job.

Is "pr against different repos of a monotree" not what submodules let you do?
Update whatever things you want in whatever repos, and pull the submodule
pointer update(s) as a single change in your monotree repo.

~~~
LoSboccacc
I bet he knows git technical options.

The issue tracking just won't fly for a community that large. Imagine the
hours spent keeping everything aligned relevant and updated: all that is
wasted time, plain and simple.

------
Boothroid
Ugh that font is unreadable on my phone.

------
feelin_googley
Off-topic:

Why does this blog need to be whitelisted with Adblock Plus? See data-
adblockkey in HTML source. Are there any ads in this page? (Maybe owner wants
revenue from domain parking?)

Why is this blog not working with simple user agents that do not process
javascript (e.g., curl, etc.)?

~~~
jwilk
curls works for me; so does Firefox+NoScript and elinks.

~~~
feelin_googley
Thank you for checking.

Problem is misconfigured DNS:

    
    
       1 blog.ffwll.ch:
       77 bytes, 1+2+0+0 records, response, authoritative, noerror
       query: 1 blog.ffwll.ch
       answer: blog.ffwll.ch 3600 CNAME danvet.github.io
       answer: danvet.github.io 3600 A 192.64.147.142
    

I mistook 192.64.147.142 as the correct IP address.

Try that one with curl, firefox or elinks.

Correct address is 151.101.53.147.

------
mcs_
> Like pull requests, issues can be relevant for multiple repos, and might
> need to be moved around

Not sure about the Linux kernel (no enough experience) but same issue across
multiple projects looks something necessary...

------
linkmotif
Oh wow, the MAINTAINERS file is a work of art:
[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/MAINTAINERS)

~~~
wiremine
Hehe, never read through it, enjoyed Linus' info at the end

THE REST

M: Linus Torvalds <torvalds@linux-foundation.org>

L: linux-kernel@vger.kernel.org

Q:
[http://patchwork.kernel.org/project/LKML/list/](http://patchwork.kernel.org/project/LKML/list/)

T: git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

S: Buried alive in reporters

------
TheChosen
I love using GitHub, but there is an established process and home for the
kernel that works and I see no reason to change it.

------
eridius
> _If you don 't do something because of a personal dislike, and expect others
> to cater to your culture and personal preferences, then the problem is you._

Are you serious? If Linus is a complete asshole and tells you to fuck off, and
you don't like that, the problem is with _you_? How can you possibly defend
that statement?

~~~
jacquesm
> If Linus is a complete asshole and tells you to fuck off

Consider that he might be right and not a complete asshole. Also, consider
that you are not the person he insults but someone else. You're making up this
strawman very craftily but it is still a strawman: people are coarse in their
conversation all the time, it's not a big deal until the _recipient_ declares
it to be a big deal. And then they - not you, unless you are the recipient -
have all the right in the world to feel offended and to respond in kind if you
feel like it or to do it a bit more precise and with more grace if that's your
make-up.

But for all the weight given to 'free speech' the fact is that all you're
doing is trying to control someone else's language and I find that a far
bigger problem than someone throwing out the occasional insult in the process
of communicating with others, there are plenty of reasons why that could
happen, personality, lack of patience, culture and so on and all of those
would be less of an issue than someone _deliberately_ trying to control how
others communicate.

Now if Linus had said something like 'you're dumb because you're a woman' or
something to that effect I could understand the outrage. But calling someone
an asshole - justified or not - when you're not the person being addressed is
not enough grounds to embark on a moral crusade and is not enough grounds to
lie the diversity problem in tech at that persons feet.

~~~
eridius
Speaking as someone who has been insulted personally and publicly by Linus, on
a topic that Linus was completely wrong about, he's a real asshole. And it's
_extremely well documented_ that he's an asshole. I don't need to "consider
that he might […] not be a complete asshole", because that's already a given.

> _You 're making up this strawman very craftily_

I'm not making a straw man at all, and I resent your attempt to frame my
argument in this way. Since this is how you choose to argue, I'm not going to
engage with you any more.

~~~
jacquesm
Well, you could have put that gem out front instead of pulling a rabbit out of
your hat. Otherwise to me you're just another anonymous person arguing on a
forum rather than someone with a specific and relevant gripe.

If there is a specific case where you disagreed with Linus and he insulted you
then I understand why you want to take this up in this way but I notice that
Linus is not a participant in the discussion here so you're going to get the
general case, not the specific one.

You've made up your mind about a person based on an online interaction that
clearly left you seething and I'm perfectly ok with that. For all I know it
was the defining point of your career and you've chosen to go into crusade
mode, there is a good reason why I don't contribute to open source, I don't
feel like getting heat from both maintainers _and_ users. At the same time if
I would go and do that I'd wear my flameproof jacket to work just in case. In
short: lighten up, likely everybody but you has forgotten this interaction and
it is a huge deal to you and hardly anybody else noticed. You should have seen
some of the stuff that came my way on a public website, heck, even on HN I've
been threatened with bodily harm.

Question: Did you contact him about this off-line, and did you try to work it
out somehow? If not I'd suggest you do that, maybe you can get this behind
you.

------
hgdsraj
Can we get a trade on this font, gosh it's bad. Color and weight both need to
be increased. Seriously #00000 on #FFFFF makes life easy with a font weight of
at least 400

