4 ms·
What was the better option? Should small OSS projects have lived without CI for the last few years? Or should everyone who publishes an OSS project set up and m
by takluyver 6y ago
What was the better option? Should small OSS projects have lived without CI for the last few years? Or should everyone who publishes an OSS project set up and maintain a self-hosted CI service for it? Either option would be a massive drag on OSS development.
It doesn't actually matter much for this if you use an OSS CI service like Gitlab: the hosted service is still dependent on the generosity/marketing of the company hosting it, and switching to self-hosting is much more effort than porting config from one CI service to another.
- brodock 6y agomigrating GitLab from "cloud" to self-hosted is as easy as importing the project. You can even import in batch and things will "just work". https://docs.gitlab.com/ee/user/project/import/gitlab_com.html#project-importing-from-gitlabcom-to-your-private-gitlab-instance https://docs.gitlab.com/ee/user/project/import/gitlab_com.ht... hosting CI yourself is equally simple. The worker can be installed with few commands, and with a few extra you can configure autoscalling: https://docs.gitlab.com/runner/install/ https://docs.gitlab.com/runner/install/
- takluyver 6y agoI'm talking about setting up the infrastructure before you get to either of those points. I don't want CI running on my laptop - especially for an open project where anyone can submit a merge request - and I don't have a server to use for it, let alone a private Gitlab instance ready to import projects to.
- jrochkind1 6y agoSo, my experience as an OSS developer is indeed that I wouldn't have switched to CI in the first place if Travis hadn't existed. I had heard of CI testing, and sure it sounded good, but we had all been making due without it, and I didn't have time (and certainly the projects didn't have money) to set it up. But travis made it so damn easy and free to turn on, there was no reason not to try it. Once tried, there was no going back, we would never want to do otherwise. Travis really defined this market and opened up CI testing to entire communities. We owe them (employees, former management) a debt of gratitude for that. But then we come to depend upon it for sure. Which they had no obligation to supply it forever, and perhaps it wasn't even sustainable business to do so. So now what? Well, now we move over to other free options like Github Actions which fortunately exist. But is it dangerous to depend on the largesse of for-profit companies? FOR SURE. Is it, at this point, hard to figure out how to do otherwise? FOR SURE. So, what could we do instead? In my dream world, we'd have a non-profit collaborative project to provide CI to open source on an ability-to-pay basis. Is that likely? I dunno, raising money for open source is already a problem. And it's a hard project. As long as there are companies providing it to us for free, it's definitely less likely.
- takluyver 6y agoIf there was some big central fund to pay for CI for many open source projects, it would probably be for-profit companies donating much of the money to support that. Is that much different to for-profit companies making in-kind donations of free build time? You might hope you'd get a broader pool of companies paying in to the fund, so you're less dependent on any one company. But unless the donors throw almost infinite money at you, you would soon need to make some kind of restrictions on which projects can benefit and how much they can use per month. The best I can think of to do is to make your CI config a relatively simple wrapper around generic tools, so it's easy to move when you need to. This is often a trade-off with things like parallelism and caching, but at least if you know it's a trade-off you can make sensible decisions.
- jrochkind1 6y agoYes, I think it is much different.
- quickthrower2 6y agoUse containers for CI, run local, do merges on maintainers machine. Push to master once local CI passes.