"What the CLA is actually used for is to give the project maintainers the ability to relicense your work under a more restrictive software license, up to and including making it entirely closed source."

Actually, it serves two main purposes[1] :

1. Protect the project from people who don't actually have the necessary rights to be contributing or wish to retract contributions later.

This is the most common case, and it happens all the time (though essentially all of it is resolved privately due to CLA's).

The law is full of interesting dragons. As a random example: Most open source is also too young, but in ~10-15 years, you will start to see copyright right terminations in the US (https://www.law.cornell.edu/uscode/text/17/203) for projects that have no CLA's.

It's inevitable.
(as is having to deal with the rights of people who are dead, which already happens)

Projects often need to do something to protect themselves over time (regardless of whether it's a CLA or copyright assignment or ...)

2. Protect the projects from patents in #1 when the license does not do so.

(this is also resolved privately)

It also resolves an issue that only has popped up recently, copyright trolling by folks like Patrick McHardy.

Relicensing is a very secondary concern, and mostly comes into play over time because the project screws up or grows larger than it expected.

The boogeyman of "corporation takes away my rights" is a nice boogeyman, but the infinitely more common case is "project screws up because they didn't think about licensing when they started". The number of "corporate relicensings" is vastly dwarfed by non-corporate ones.

One of the more interesting things to me is that the largest mass relicensing i'm aware of was the FSF force-relicensing projects to GPLv3 (sometimes quite against majority-contributor wishes), with no comment or discussion or allowance for dissent. So it wasn't a corporation doing it for whatever, it was a foundation doing it for ideological reasons.

The fact the article tries to make it seem like it's happening all the time is disingenuous at best, and honestly only serves to make the argument weaker (because it's unsupported by data).

I'd also point out a CLA or equivalent is also necessary to move a project from gpl-v2 only to gpl-v3 (IE not "restrictive software licenses") if the project later chose. Otherwise it is stuck in limbo forever.

The answer you usually get from anti-CLA folks is "they shouldn't do that in the first place" which is nice but doesn't actually fit with the fact that most people basically don't pay any attention to license choices in a meaningful way when they start projects. Or make mistakes. You know, one of the reasons we have version control in the first place - so we can change things we got wrong over time.

Even if you could cause them to not make mistakes, or never change viewpoints, you'd still have millions of legacy projects to deal with.

All this article tells me is that the person hasn't run a large enough open source project to have to deal with these in a meaningful way. That's okay.
But i've never found someone who did who has not run into the issues above and eventually moved to CLA's or an equivalent.

I've also spent a lot of time in my life fixing smaller projects that never had one, and then became larger, and then had to clean up the mess. It usually costs foundations/etc a lot of money and time to track down contributors or pull code.

I'd actually love to live in a world where CLA's aren't necessary (and copyright was sane). But pretending we do won't get us there.

[1] bradley kuhn wrote a much better article than this one (no offense to the author here!), though i disagree with bradley's view :P - https://sfconservancy.org/blog/2014/jun/09/do-not-need-cla/