Code Shelter: A Maintainer Community for Abandoned FOSS Projects
codeshelter.co
codeshelter.co
As one of the creators of a distributed package manager for C++ and friends [1] we made a funny discovery:
Many C libraries that a big chunk of the ecosystem depends on, have not been updated for many years. Some of those can only be downloaded from sourceforge or ftp server.
Even worse, some libraries are copy and pasted from project to project and have no actual home.
We uploaded them to github and started maintaining them.
If you know any abandoned C/C++ projects or C/C++ projects you need a hand in maintaining, we are happy to help.
EDIT: I made one: https://opencollective.com/code-shelter
What do people think the collective should be used for? I haven't used OpenCollective much.
The degree to which the word shelter has negative associations for some people is not something I would see as deal breaker territory.
I will add that there are far more uses for shelter than just homeless shelter or animal shelter. Just a few examples:
A book about a New York woman's house hunt was titled "Gimme Shelter." (Author: Mary Elizabeth Williams)
The basic essentials in life are typically listed as food, shelter and clothing.
Shelter from the storm is a well known positive expression for sanctuary during a crisis.
Shelter magazines is the umbrella term for magazines having anything to do with homes, such as home plans, bed and bath, kitchen makeovers etc.
The format "(noun) shelter" is similar to and might more readily bring to mind "animal shelter" and "homeless shelter" than a phrase in the "(verb) shelter" and "shelter _____" formats.
The mind is very pattern-happy after all :)
They sound negative when you start to look at the reason for them existing. Not because shelters are bad, but because homelessness and abuse and abandonment is bad.
From a UK perspective, shelter to me makes me think of a bus stop or an awning to get out of the rain, or to get some shade.
How would this project approach FOSS projects that were abandoned, then sort-of-picked-up by another maintainer, but with no actual continued development?
Example: Meteorite MKV repair engine
Original site: http://www.mkvrepair.com/
Original code: https://sourceforge.net/p/meteorite/code/HEAD/tree/
"New" code (last activity 3 years ago): https://github.com/abarnert/meteorite
I would love to see this project continued, and even added into other FOSS projects like VLC.
Fixed, thanks for the heads up (there was an inopportune line break).
> How would this project approach FOSS projects that were abandoned, then sort-of-picked-up by another maintainer, but with no actual continued development?
The idea is that Code Shelter increases the bus factor, ie if the developer (or developers) of a project all drop off, there's a way for people to continue the project through Code Shelter.
What will usually happen is that a CS member will be interested in a project and notice that it's unmaintained. If the project is already in CS, they can just start maintaining it, or ask the maintainer to add it to CS. Since maintainers are volunteers, there's no guarantee that someone will take the project up, but the aim is to have a large enough pool of both maintainers and projects that matching is frequent.
I would totally apply to do this but my OSS contributions are pretty sparse and go back a couple of jobs. I'm sure that I have the requisite experience but my GitHub profile for the last year and change is pretty empty. The application process totally discourages me from applying.
Currently it's based a lot of "is this person already a maintainer of widely-used OSS libraries", as this is both a good signal and (hopefully) effectively foils malicious people, since, if you wanted to deploy some malicious code, you'd probably do it on the libraries you already have.
If you have any better ideas for how to "interview" maintainers, please let me know!
eg 3 months or 10 patches (whichever takes longer)
only after that they become a trusted member.
it's like joining any other project. new members need to show their will to contribute, and that doesn't necessarily relate to past contributions.
even if you limit that extra work on repos you personally don't care about to once a month you can help one person to join the community per year, which is enough for the membership in the community to double each year.
Identity verification, similar to what Keybase supports, where people add a verification code to their social platforms might work here. Enough to verify to a certain degree whether someone is who they say they are. Maybe add a call to their employer to verify that they hold the role that they say they do also.
To me that would be enough skin in the game.
For completely abandoned projects, it may not matter as much, but for projects that just need more eyes/hands, it's a larger consideration.
Maybe add an agreement that if the community calls for a changing of the guard at some point that pending a review the maintainer will step down if the review process agrees.
They review dev teams and attest they have seen personal information that matches the persons while the developers still can keep pseudonymous nicknames.
Maybe an inspiration?
.com doesn't actually strike me as the best choice since it used to mean commercial businesses. .co sounds better at least since it matches the first letters of code
.space .info .online .world .care .directory .community (i love that one) .support (also great) .help .cloud .network .codes (maybe shelter.codes :-) .software (shelter.software?)
just some ideas.
there is also codeshelter.fail, but i think it was established that negative connotations are a bad idea :-)
300000$/6years = 50000$ yearly
For this money you can hire around 0.5 developer.
This line of questioning (or accusation) is a good example of the phenomenon where people often expect a disproportional amount of your future time because they once gave you a one-time quantity of money, or possibly by pointing to money that other people gave you.
Look at it another way: $300k got us Light Table which was a pretty cool editor. I used it to help people get started with Clojure and I didn't pay them a dime. It didn't get us eternal paid support and maintenance, though. How could it? It also unfortunately never developed the ecosystem around it like Atom and VS Code were able to, so now it's here trying to find maintainers.
Also, pretty much all editors are dependent on volunteers to create plugins and ecosystem, even ones you directly pay money for like Sublime.
and it found one
Also, I think it's definitely a touching story to review how us evolve and obsolete code and algorithms, it's like a genetic and natural selection and we can learn from it to not let history happen again.
I have more free time lately and a difficulty I have found is easily locating places I could contribute without a huge time commitment.
For example I found some pretty minor changes needed to make testing work on puppet samba, it was a 15 minute task but helpful in any case.
I have added several of my abandoned projects, here is a quick summary of them if there is any interest:
https://github.com/satoshinm/WebSandboxMC: Bukkit plugin providing a web-based interface with an interactive WebGL 3D preview or glimpse of your server - this bundles the NetCraft frontend in a Minecraft server plugin. There are requests from Spigot users https://github.com/satoshinm/WebSandboxMC/issues/100 to make it active again, which is what inspired me to add it to Code Shelter.
https://github.com/satoshinm/NetCraft: Web-based fork of https://github.com/fogleman/Craft . Craft has been featured on Hacker News before, but it is pretty much abandoned, so I forked it into NetCraft, but then in turn ran out of time/interest to update it. The summary still applies: "Voxel game for modern web browsers (Chrome, Firefox, Safari) and desktop operating systems (Windows, macOS, Linux). Just a few thousand lines of C using modern OpenGL (shaders)." Heavily inspired by Minecraft, but much smaller and simpler.
https://github.com/satoshinm/pill_serial: Triple USB-to-serial adapter firmware for flashing onto an STM32F103C8T6 "blue pill" minimum development board . With this firmware you can make your own USB-to-serial adapter, times three, by flashing a <$2 blue pill board.
https://github.com/satoshinm/pill_duck: Scriptable USB HID device for STM32F103 blue pill (inspired by USB Rubber Ducky) . Another project for the "blue pill", this one lets you make an automated USB keyboard/mouse device, an imitation of the popular Rubber Ducky hacker tool, but a lot cheaper.
https://github.com/satoshinm/pill_6502: emulated 8-bit 6502 CPU and 6850 ACIA for STM32F103 blue pill . Want to build a retrocomputer but an authentic 65C02 chip is too much? Play around with a classic processor without buying old hardware? Emulate it with the cheap blue pill, with enough support at least to run the Microsoft OSI BASIC ROM.
I have started a few more abandoned projects on https://github.com/satoshinm?tab=repositories&type=source but these seem to have generated the most interest (especially the NetCraft/WebSandboxMC combination, but the pill_ projects can be quite handy), no longer can maintain them myself but would be great to see continued maintenance provided a community finds them valuable.