[Python-Dev] PEP 481 - Migrate Some Supporting Repositories to Git and Github
glyph at twistedmatrix.com
Sun Nov 30 17:36:52 CET 2014
> On Nov 30, 2014, at 11:17, Chris Angelico <rosuav at gmail.com> wrote:
> On Sun, Nov 30, 2014 at 8:54 PM, Nick Coghlan <ncoghlan at gmail.com> wrote:
>> On 30 November 2014 at 15:23, Chris Angelico <rosuav at gmail.com> wrote:
>>> Python is already using quite a bit of non-free software in its
>>> ecosystem. The Windows builds of CPython are made with Microsoft's
>>> compiler, and the recent discussion about shifting to Cygwin or MinGW
>>> basically boiled down to "but it ought to be free software", and that
>>> was considered not a sufficiently strong argument. In each case, the
>>> decision has impact on other people (using MSVC for the official
>>> python.org installers means extension writers need to use MSVC too;
>>> and using GitHub means that contributors are strongly encouraged,
>>> possibly required, to use GitHub); so why is it acceptable to use a
>>> non-free compiler, but not acceptable to use a non-free host?
>> Relying on non-free software to support users of a non-free platform
>> is rather different from *requiring* the use of non-free software to
>> participate in core Python community design processes.
> But what non-free software is required to use the community design
> processes? The GitHub client is entirely optional; I don't use it, I
> just use git itself. Using a free client to access a proprietary
> server isn't the same as using non-free software.
Also keep in mind that unless you are using a very esoteric hardware setup and dedicated leased lines that you purchased yourself, you are likely to be using copyrighted, patented, proprietary software at a number of levels:
the microcode implementation in your CPU
the firmware in your GPU
the firmware in your network card
the boot code (e.g.: BIOS or EFI implementation) of your motherboard
the firmware in your router
or the firmware in your cable or DSL modem, if you thought to get a free router with OpenWRT or something in it
the firmware in your ISP's router
the firmware in the backbone's routers
the firmware in the PSF's ISP's routers
Does this sound like ridiculous nitpicking? Of course it does! If you refused to use all that stuff you just wouldn't be able to access the internet at all, regardless of your personal choices. Most layers of this stack are _less_ constrained to open standards and open data access than Github, and can require layers and layers of additional proprietary software or reverse engineering (ask anyone who has tried to play a video game on a Linux computer what the experience is like without gobs of proprietary blobs from nvidia or ATI).
And as the story of BitKeeper shows, if a proprietary platform decides to do something bad, if the cost of migration is within your means, you can just leave. This is far more true of Github than Bitkeeper - Linux had to create a totally new VCS to migrate off of that, we just have to install Trac or Roundup or something again. (Which, as per the presently-proposed PEP, we don't even have to install them again, just change some configuration to put a few repositories back.)
The monoculture about Github concerns me. I also have concerns about the long-term consequences of not having an all-free-software stack. But focusing on avoiding services like Github at this point in history is just a gigantic waste of time; it's resolving dependencies in the wrong order.
The only reason to avoid Github is ideological purity, and even then it's not even "purity" because you still have to accept this other ideological contamination. Except, what about other ideological concepts that are important to the Python core developers, like equitable representation for women and minorities, and compassionate and polite interactions within the community? Clearly we can't require the use of Linux. If we treat these ideals as an equivalent priority as free software (even if we ignore the "invisible" dependencies like the list I just made above), then there is literally no software left that we can use to develop Python. Linux kernel and GNU low-level user-land development are a perpetual cesspit, and their leaders serve as a continuous embarrassment to our community.
And speaking of equitable representation, one proven technique we have learned for dealing with that problem is making it for newcomers of all stripes to access the community. Like it or not, Github's popularity means that it's a place where most newcomers to programming are learning to use version control and bug tracking. This is a network effect that can have a real impact on people's lives. Requiring newcomers to learn our weird technology religion before they can contribute creates a real barrier to entry, which in turn makes our community more insular and homogenous.
Some days you get the Git, and some days the Github gets you. The sooner we, as a community and a culture, can accept this and move on, the more time will be available to actually build replacements for these things.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev