The problem isn't that GitHub isn't free, the problem is that for some reason the open source community collectively decided that all development must occur on GitHub: a proprietary platform.
There are several alternatives to GitHub that you are able to self-host that would not be subject to US law (hosted out of countries that don't sanction Iran), and even though it might be too much for a solo developer to do on their own the open source community should band together and fund efforts to spin up GitLab/Gogs/Gitea/Sourcehut instances in places that aren't subject to these sanctions.
This issue will happen with any service hosted out of the US, it's the laws that are broken in this case. Not GitHub.
Totally this. A website isn't even necessary for collaborative development, all you need is git software and a group email!
For issue tracking, you can use something like self-hosted bugzilla (or one of the several free instances out there). And for discussions, there are always things like mailing lists, forums, IRC, social networks, reddit, etc. That's how it used to be in the good old days. I don't understand why one even needs a code hosting facility.
That's a step back, Github and Gitlab did lower the barrier of accessing and then getting started to contribute to open source.
The old days is not that good. Mailing lists solve the problem of group communication, but with a twisting mental model. In my opinion, email should just be for announcements, doing public communication by email is like writing embedded software in JS, it works, but not great. Another fuss, we can't modify email that has been sent, it let people think more before posting, but people will be more afraid of posting. Forum is just better for every communication.
Bugzilla is ugly. I think issue tracker should just be a git repo with hooks to enforce its integrity. Then we can have many front-ends for it (GUI, CLI, web).
Github and Gitlab glue things up, they work on integrations so we developer have better experience, that's why we use them
GitLab, Gogs, and Gitea are all self-hostable and offer the same tools that GitHub does, if it's the convenient packaging you're after.
Sourcehut can also be self-hosted but they promote a mailing list based workflow, which I think is less of a problem than you make it out to be but then we don't have to agree on this point either :) That's the beauty of FOSS, we're free to choose for ourselves.
I spin my own git server with raspberry pi and I also use gitea. Github has nothing to do with this restrictions they're merely following US laws they don't have a say in that. All US companies have to comply with trade restrictions. Whatever you do please do not host all your code in one single point of failure.
In an ideal world, decentralization would be the best solution.
But as how as you know, GitHub is not a simple Git hosting these days.
All of the options I mentioned offer everything github does, and they're all open source too and you can self host them.
I know github isn't just git, but we don't need github to do exactly what we are doing today.
None of the solutions mentioned are decentralized. Git is decentralized but those services are not, even if self hosted. There are very early projects like codeonchain.network/ and others starting out that are.
Different instances of X can replicate between each other, so you're not siloing your development, and by decentralisation I was referring more to the fact that not all open source development has to happen on a single platform.
It's OK if some projects are on GitLab, some on Gitea, and others on Sourcehut.
True decentralisation can be a worthwhile goal down the road, but right now we can solve the problem using the tools we already have.
Then we agree 😄
IMHO, the problem ain't in GitHub; it is in the US.
Or maybe just a bunch of persons in the US, who happen to take these decisions.
They don't happen, they were elected 😬
Fair enough... But still, they haven't been voted by the whole population. Far from that, actually.
Even if they are voted by the whole population of US, why on earth should they have control over a world-wide community!
Technically, they don't. They have control over US-based companies like Microsoft, in the sense companies have to abide by the laws that prevent them to do any kind of business with embargoed countries. GitHub happened to be in the line of fire.
It's a grim game of international politics and I don't want to dive into that. But, as I said, it's a two-way route, as GitHub has been often blocked over local censorship laws. Not to mention Twitter, Facebook, Whatsapp, Telegram, Youtube, etc.
I'm sure you're aware of that. The point is that the community is affected, but not out of options. As other mentioned, there are alternatives - although not as good, I'm afraid 😟
Github was a free platform for everyone since many years ago
Github was a free platform for everyone since many years ago
And then Microsoft - the most valuable company on earth - purchased them. If they get fined by the US government they could stand to lose billions, just as Facebook did this week.
As for why the US is singling out Iran, and applying pressure to Microsoft, which in turn sets Github policy, is a matter I'll need experts in geopolitics to explain to me.
The problem isn't with Microsoft acquiring Github, the problem started when Git became centralized in the form of Github! The more centralized a system is, the easier it is for authoritarians to control.
Git cannot be centralized by design. I don't get how people can host all of their code on some company's servers without a backup and blame it when something goes wrong due to politics. And you have to really try to not have a backup when using git.
One problem on GitHubs side of things was the sudden suspensions without warning or notice. GitHub could've at least gave them a heads-up to backup they're current repositories before being suspended. It does not affect me but man I'd be some pissed if it was sudden and without notice.
P/S: why @maciek134
's post don't have reply button but a 'thread' word in that position instead?
That's the problem of identity, our repos, our projects is identified by URLs control by these hosting services anyway.
A solution is having our URLs redirecting to those URLs. But I don't feel so good about it.
Git is a software anyone can host in any server. People choose github for repository hosting but that's not git.
I think he meant that these days, when so many developers and projects are on GitHub, this is the place to be to take part of the community.
Tomorrow it can be any country, it’s time to get out of Github and get a really free alternative that is not subjected to US’s proprietary laws.
There is already a bunch of countries and territories that are subject to such sanctions, not just Iran.
But the opposite also applies, it's GitHub that's blocked by other countries...
There's has always been a solution. Host your own git server.
Well collaboration does not work easily with own git server, integration with many other tools and it is as good as doing private development.
Gitea is the closest thing to github. Obviously you'll need to point your team to the server to collaborate but you won't be dealing with nonsense government bans on github. Is just a solution not a perfect one, but a solution nevertheless.
Maybe the next country is Turkey (My country). Because our government bought S-400 missiles from Russia. That explains why software must be free and open source.
Gitlab, BitBucket, and GitHub is a dependency today. Maybe you can't use Jira tomorrow.
Iranian or Cuban people, they didn't have a chance to choose their nationality. Even if they have a chance, freedom can't be disallowed.
I think in general, as the population of the world, we should make an effort to be beyond the politics, and not let few leaders to define our relationships.
The global world allows us to connect to each other directly, and it's awful when this connection is restricted.
I agree with you completely. You might know, our governments always fighting. This shouldn't be restricted us. I don't know why this happens. We're just a group of human. Like the others.
I hope everything will be fine.
I wish a company with the size of Microsoft would've taken a stand against such measures.. this behavior doesn't promote dialog and peaceful way of living, very sad for you brother.
It isn't fair that several people in the US and Iran can cause these life altering crap for the masses =/
Sending love from Israel <3
It's the law. A stupid law, but it's still the law and when the US government enforces it; they don't really have a choice but to comply. Let's be careful about making this a constructive dialog; most of us in America are not proud of the way our government acts, ever. Offline backups and choice of a self-hosted platform could have prevented this.
I agree with you and thank you for your support. ❤️
No, not at all - it's not a right, it's a privilege extended by a private, proprietary system (GitHub).
I feel your pain in losing access to your private repos, but best in mind that keeping anything in only one place defies the laws of redundancy.
What you might have done (and I realize that at this juncture that is woulda coulda shoulda) it's a little late to implement such redundancy, but you can easily mirror your GitHub and Gitlab.com repos on your own Gitea instances.
Gitlab is a service with free accounts just like GitHub, except that it's not proprietary software like GitHub's (they have a self-hosted community FOSS edition).
That gives you a convenient web frontend to git, and although you are correct that GitHub is still the defacto 'place' where people search for publicly archived projects, I fail to see the point in thinking it's, "the place" for private repos in anyway.
Most people out things up at GitHub so they can be found and have their repos mirrored elsewhere.
If you deploy a Gitea instance, you can also take advantage on Android of the Gitrex app which is available on F-Droid.
I hope that helps :)
Thanks for the explanation you gave. But unfortunately, this is not a simple issue that could be solved by a change in our hosting solution.
GitHub is a large part of the open-source community. Consider you are part of an international open-source project and you lost access to their repository.
This is what that happened to one of my fellow who works in the nuxt.js project.
Our core team member @_pi0_ cannot access our private repositories anymore on @github because of US Sanctions...What do we do now? 😐
19:25 PM - 26 Jul 2019
How would changing your hosting not solve it? If the project is hosted on something that's not GitHub and outside US sanctions then all your contributors can access it just fine.
I'm not saying that moving the project is trivial, but it would solve the problems...
what's the point of limiting access to services like google cloud for a developer that knows how to change his ip address with a click of a button?
as a developer currently working from iran i have my vpn connection open all the time to bypass restrictions both from inside and outside. 😫
Based on the comments here tons of devs don't know about vpn or ip spoofing. Github has nothing to do with freedom as this post talks about. Is just politics and tradition restrictions laws which github has no control over.
Almost all of the Iranians use a VPN on a daily basis. GitHub has blocked Iranian users based on their nationality, not their location, so using a VPN doesn't solve the problem in this case.
yeah just read on the other comment about this, I know is difficult dealing with politics and all that, I don't follow none of it.
So no chances of bypassing, some other way? I can't remember but was nationality asked when the account was created?
Ah well, yup. That's a really bad thing. I'm sorry.
However, decentralization doesn't actually work. I saw the same arguments after Microsoft bought GitHub and everybody envisioned a proprietary disaster (which didn't come btw) and with WhatsApp being bought by Facebook and everybody tried to switch to Threema and the like.
Decentralization just doesn't offer the comfort and inclusiveness as a central platform like GitHub.
As sad as this may be.
So only a central platform on a full open source base without financial bounds led by a elected flock of people would be the only thing working.
You might see some problems in that statement. 😉
Decentralisation worked fine back when every project self-hosted their VCS/webpage/mailing list/bugtracker/build servers...
I wouldn't call that "fine". It was just like that back in the days but platforms like GitHub really gave open source projects and the complete community a major lift imho by providing visibility, simplicity and a lot of features that made organizing the projects a lot better.
And do we really want to go back to Bugzilla and mailing lists? Brrrr! 😉
There are other bugtrackers than bugzilla, and there are three providers of GitHub-like tooling that you can self-host anywhere (GitLab, Gogs, Gitea). No need to involve yourself with mailing lists if it's such a bother.
We've put too many eggs in the GitHub basket and we're paying the price now.
Imagine what happens when Rust crates are orphaned because of something like this, since they tied their infrastructure to GitHub.
GitHub is a crappy company focused on releasing proprietary software. They comply with the regulations of the US government, and are based there. Also, they were bought out by Microsoft, so expect things to get worse there. They matched other git hosting providers with free private repositories to make themselves look good by doing the most basic thing.
There's an alternative, gitlab. In my opinion it's much better than GitHub, which misses plenty of its features. The community version of their software is released under the GNU GPL, and it's stupidly easy to set up your own instance if you need to.
GitLab hosts on Google Cloud servers and, Google blocked access of Iranians IPs over Google Cloud servers since a couple of years ago.
Also as I mentioned before, GitHub centralized Open Source, and Software Development worlds these days, just think about all that services that depend on GitHub. Also, GitHub is the largest developers social network as we know.
I'm not talking about gitlab.com, as I don't trust them after that incident where they lost data they had 5 backups of. You can host your own gitlab instance pretty easily, provided you have a server powerful enough to run it. It's hard to trust something you haven't set up yourself.
I have gitea setup on a raspberry pi and works great.
I think this can be the starting point for a true companion to Fit; one that is as decentralized as Git is. A project that has the likes of Mastodon, but for code sharing. Spin up instances for groups of repos and also general purpose ones. Should an instance go down for whatever reason, the others are still there.
i remember not too long ago when freecodecamp changed something relating to content and @ben
(the founder) and a lot of people made so much fuss that they reversed it, i hope we can see a similar rally here
the move really stinks tbh.
Yeah, no, not possible, this is out of MSs hand. This is the US government. The only way to fix this is that the US rolls back, or we do everything to hold the status quo until the new elections. I really wish this wasn't a political issue, but it is.
So the point that's overlooked is if you have repos on GitHub you have a backup of that repo as a Gift repo. That's how it works. GitHub has brought together more freely available software than any other service. There's a reason they're so popular.
The other issue is about GitHub and American company being forced to follow laws of the US.
I have never been a believer in economic sanctions. I have Iranian friend just as I have friends from other countries.And I hate these sanctions, but I don't blame GitHub for following the law, even the dumbest ones.
There are decentralized options in the works. Git is distributed source, but uses centralized servers. There are projects in IPFS and git for example the following:
Don't let government dictate who can communicate and share ideas.
Being a dev in Iran is a sad story :(
what other alternatives do the persian devs have besides Github?
Perhaps self-hosting, but as you know GitHub is not just a git hosting anymore. GitHub is the infrastructure of many things these days.🤷♂️
And that's the problem.
We shouldn't let it be part of our infrastructure, we should be building things to be platform agnostic.
"but it has decided to restrict Iranian accounts."
"but it has decided to restrict Iranian accounts."
No, it has not decided anything. International law is the cause, not GitHub. It's more than what you are saying.
In the sanctions laws, sanctions have been introduced that, if there is no financial transaction account, there is no problem and the server should not restrict access to your personal account. But as we can see GitHub decides to restrict all accounts.
Isn't gitlab.com already just the base software? It seems that most of these projects just need to move to a non-US GitLab instance.
That's right, and I think the GitHub platform should not effected by the political issues.
The tragedy of being a Software Developer in Iran, and now add GitHub sanctions to the list.
It is Shuthub than GitHub.
Also I restricted yesterday.
Focus that many alternatives restricted Iranians people, for example Gitlab and...
Did GitHub obey this law BEFORE it was bought by Microsoft? Or is this a new thing?
And if not, what has changed that GitHub claims to now 'have' to obey this law?
I could be mistaken but I believe this sanction was only recently re-enacted after a treaty between the US and Iran was broken by the US.
I wonder if other countries were being blocked before?
Theres a simple solution. Use a proxy. There's nothing Github can do.
It is not a simple IP restriction, they blocked every account that logged in from one of the sanctioned countries in the past year.
Or self host your own instance of gitlab, I've covered that in a previous post.
Hosting companies, Slack & now the GitHub :(
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.