From the FAQ, forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo", Esperantese for Forge. A fork of Gitea [0] but managed via a non profit, no premium upsells, all freely licensed [1](GPL) etc.
Good to see their community outreach is via Matrix and Mastadon. My kind of nerds.
Apparently this is what Codeberg is running out, if you click . Looks like gitea/github to me, nothing wrong with that [2] source code is available from the little branch icon in the top right corner, hosted on codeberg which TIL is a forgejo instance [3]
From my understanding the fork was done because gitea created a company to build custom-features for companies if they ask. Not really many indicators for a rugpull
The pricing page (https://about.gitea.com/pricing/) talks about paywalled "Enhanced enterprise-level features and experiences". Are you sure that doesn't count as a premium upsell?
> and never actually does anything new afaik, it's just Gitea under another name, while taking money too
This is really unfair to the many people who spend their free time working on Forgejo, please stop spreading nonsense. They have worked hard on "boring" improvements like translations, accessibility and proper unit and e2e testing, but also UI improvements, federation support, and other genuinely new features (asset quotas, wiki search, ...). Take a look for yourself: https://codeberg.org/forgejo/forgejo/pulls.
Regarding the money part, Forgejo is not monetized. It is a true FOSS project (recently re-licensed as GPLv3), not open-core like Gitea. The only funding they receive is from donations and grants, they are not selling a product.
> (and never actually does anything new afaik, it's just Gitea under another name, while taking money too)
What evidence do you have for this strong claim? I’m using Forgejo and contributed to the docs once. It seems to me real work is happening in Forgejo. A lot from what I can see is stabilizing infrastructure and fixing bugs. Seems perfectly reasonable to me.
The money that Forgejo takes is €60/month in Liberapay donations, and some grants to develop federation features so I think it's a little disingenuous to compare it to Gitea's pivot to open core and hosted cloud service.
> Gitea goes commercial, making previous community contributions into essentially free labor for their profit
Gitea (like Gogs) is under MIT license, which allow commercial applications. Is the new expectation of open source that we grant everyone license terms that they shouldn't use? I don't understand this at all.
Forgejo is under GPL-3.0, which also allows commercial applications. Should we expect the Forgejo community to start name-calling any company that would use Forgejo according to its license terms?
There's a bit of a difference between a downstream commercial host and turning the open-source project into open-core. Gitea went from a rotating governance to deciding half of the decision-makers must now come from a for-profit company that now competes with the open-source offering.
Actually, they thought that the Esperanto word for forge, is «forgejo». When somebody pointed out, that «forgejo» (fora gejo -> forgejo) is «faraway gay person», it was already too late. So, now they say that it is inspired by «forĝejo», which is the word for forge.
I was kind of passively wondering the other day what the main differences were between gitea and forgejo at this point, since they've been separate projects for a bit now. It seems there aren't any direct comparisons I could find, though.
I got curious about why Forgejo split off from Gitea, and it seems like yet another case of broke FOSS creators/maintainers getting screwed from above (and maybe below too).
From the Gitea incorporation announcement (below), it looks like they couldn't pay their bills as FOSS, and there were wealthy free-riders (which the MIT license allows).
> "Over the years we have tried various ways to support maintainers and the project. Some ways we have tried include bounties, direct donations, grants, and a few others. We have found that while there have been many wonderful individuals, and a few corporations who have been incredibly generous, and we are so thankful for their support, there are a few corporations (with revenues that are greater than some countries GDP) are building on Gitea for core products without even contributing back enhancements. [emphasis added]
I'm not a fan of Bruce Perens, but he kind of nails the problem when he says:
> "We have a great corporate welfare program, our users are the richest companies in the world. Indeed, we've enabled companies like Google to be created.
> "In contrast, if our developers aren't working for those companies, they probably go un-compensated."
----
On the flip side, the community rebelled when the creators formed a company, but not supposedly because they formed a company, but because that co held the domain and trademark. Seems like a small hill to die on to me, but I don't know the details.
Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
FOSS isn't a business model. It never was and never will be.
What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom. Nowhere in "users should have the freedom to do what they want with software" does it say "and we should be able to pay a few developers a salary for their work towards that fundamentally ethical goal". Under the original paradigm and goals, any income streams are just cream on top of doing the right thing.
According to the OSI's history of itself [0], at some point people got it into their heads that the open development model was inherently a good one for business, too—Netscape jumped on board, and then some people got together and decided to rebrand Free Software:
> The conferees decided it was time to dump the moralizing and confrontational attitude that had been associated with "free software" in the past and sell the idea strictly on the same pragmatic, business-case grounds that had motivated Netscape. They brainstormed
about tactics and a new label. "Open source", contributed by Chris
Peterson, was the best thing they came up with.
The word FOSS reminds me a lot of American corporate Buddhism—mindfulness and meditation totally removed from its original deeply religious context and turned into some sort of self-help program, with the result being something that would be barely recognizable to the original practitioners. Free Software was never about sustainable development. It was about doing the right thing—enabling user freedom—because it is right. Everything else was just means to that end, but at some point along the line the means became the end and we started wondering why FOSS wasn't paying the bills like it was supposed to.
> FOSS isn't a business model. It never was and never will be.
This seems an interesting point and one I share. Yet it seems equally unethical to enable the corporate extractavism that we now see. It's time the "users should have the freedom to do what they want with software" be updated to something like 'users and makers should be free of coercion and exploitation by software.' What, after all, are the grounds for such freedoms? Are they issues of property? Or are they ones of the dignity of the persons involved? It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent. In personal actions, many act as if they believe this. Yet corporations consistently do not act with those values. You're right: we should strive toward a system not in which it's viable to create businesses out of FOSS but in which both users and developers are not exploited or used unwillingly.
>Yet it seems equally unethical to enable the corporate extractavism that we now see.
If someone uses and benefits from your product, at what point does it become "unethical extractivism"? If I as an individual figure out a way to build a business centered around your product that you make for free, is that already unethical, or is it at a later point?
>It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent.
But you gave your consent by publishing software for anyone to use.
> What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom.
This actually illustrates the key flaw in Stallman's understanding. To him, "user" encompassed both humans and megacorporations. But a corporation is an abstract legal convenience, cannot feel the pain of being "thwarted" in its use of software, and thus, want freedom. Freedom is only an ethical good for humans.
Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself. Encouraging otherwise borders on encouraging exploitation.
tl;dr Nobody should go broke to enrich Bezos in their spare time, and encouraging THAT is unethical.
Stallman's reasoning wasn't flawed (at least, not in the respect you state). Corporations are simply a group of humans. I don't think there's a good argument to be made that humans should have a right to X, but suddenly lose that right when they get together as a group.
> Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself.
Nobody is "providing megacorporations with unpaid labor". People are making an effort to put something out there for the benefit of the entire human race, and if that includes corporations that's fine. Not one person is harmed if Amazon takes my open source project and uses it to turn a profit, even if they make it into closed source. My project remains freely available for the benefit of all, just as it was before Amazon used it. So who exactly has been harmed? Not me, I'm in the same state as I was before. Not my (non-Amazon) users, they are in the same state as they were before. Not Amazon, of course. If every single person is no worse off or even better off than before, I don't see how you can argue that the corporate users are doing something unethical. It seems to me that really this isn't about ethics, but is about "we don't like those icky people" masquerading in pretty sounding language.
> tl;dr Nobody should go broke to enrich Bezos in their spare time...
Nobody should go broke to make open source software, period.
Fully agreed. This attitude—that someone making money off my freely published work is somehow hurting me—was, I think, best captured by the inimitable Matt Mullenweg in his response to DHH [0]:
> DHH claims to be an expert on open source, but his toxic personality and inability to scale teams means that although he has invented about half a trillion dollars worth of good ideas, most of the value has been captured by others.
There's a certain type of open source maintainer that is in it for the money—in it to "capture value"—and those people see it as a personal affront if someone else "captures" more "value" from their project than they do. This is not a healthy way to approach life, and it's not an effective way to approach free software. It's especially not an effective way to approach Open Source, which rolls back the GPL's copyleft provisions and makes it very explicit that you're doing this work for the collective benefit of everyone, including people who want to make proprietary stuff on top.
Society, because your free work gives big tech the continuous headstart to focus on bottom line and forget about externalities. Look at current society and how much everyone is cranking their tech out fast as possible, including free software folks who start coding on the first hint of an idea. Starting hobby, then comes popularity and subsequently big tech adoption (read: harvesting of low-hanging fruit) so they can do more of their thing: ruthless value extraction.. from society. We are not talking healthy circular money flows, big tech is billionaire class leaning stuff, imho.
This is incorrect, and it's obvious with even a little bit of reflection.
Corporations are effectively unkillable, for starters. No corporate charter has been revoked since the 19th c. iirc.
Corporations cannot be jailed, for another, and extend their limited liability protection to the people under their umbrella. So corporations have way more latitude to commit crimes and escape punishment than a human.
Corporations lack human morality. In fact, if you believe in fiduciary duty, corporations can, and have been, sued for failing to pursue profit above all else. In a corporation, this is "good"; in a human, this is psychopathic. And the humans making these decisions enjoy diffusion of accountability.
In fact, this distinction between humans and corporations was well understood back in the day; it wasn't until court decisions like Santa Clara County vs Southern Pacific Railroad, that the fiction of corporate "personhood" really took off.
----
> Nobody is "providing megacorporations with unpaid labor".
That's literally what FOSS used by AWS is. Unless Amazon employs you, they didn't pay for it. You might not personally mind it, but it's still unpaid labor by definition.
> Not one person is harmed if Amazon takes my open source project and uses it to turn a profit, even if they make it into closed source.
Again, your personal opinions are not universally shared. Lots of people are trying to do FOSS, pay their bills at the same time, and don't want to work for a FAANG. They're most definitely harmed by free-riders who could be paying, like AWS.
Even worse, I suspect that all the free hobbyist FOSS labor artificially depresses dev salaries, hurting everyone else. Otherwise, the FAANGs would have to hire people to replicate what they currently get for free.
So while it's fun, and I certainly do my own fair share of FOSS, I'd prefer a completely different license environment. Honestly, I'd love to see a switch to noncommercial/commercial distinction. I'm not sure AGPL/commercial dual-licensing cuts it.
Many open source developers has misread the room and thinking the environment is still like it was 15~20 years ago where open source software were the works of hobbyists who has a well-paid day job and only here for street credit.
You know who read the room correctly? GitLab. They've found a balanced way to offer their product under an open source scheme while keeping their lights on. They've earned trust as well as income, that's a job well done.
If one wants to live off of their open source work, then they need to run it as a business and perform appropriate business tricks. Otherwise their own effort may one day become their own rip-off. Not saying anything sinister, but fairness is a balancing game, if you hard work don't treat you well, then it's unfair too.
GitLab has collected a few severe CVEs. I would choose "v4 final final actually final" folders as a versioning scheme before I used them. It is surprising to me that they have any users at all.
Copyleft licenses are supposed to prevent to an extent this sort of free riding, but they are no longer "fashionable".
I don't see the point of refusing to add additional (copyleft) terms to a license, only to end up hoping companies act as if the terms existed out of good will.
Companies like Google love the permissive licenses, and go as far as to sponsor MIT/BSD-licensed replacements to common building blocks like toybox.
EDIT: I see that Forgejo v9+ is indeed GPL-licensed.
I released a tiny toy fun project under the GPL. It’s the kind of thing that no one could possible want to monetize, but the first PR was someone pleading the case that I should relicense to something more friendly, like MIT. I’d never before been so instantly tempted to ban someone from a project.
I agree that copyleft is less fashionable these days, but I think big companies have figured out all the tricks they need.
Case in point: Amazon offers a hosted Grafana service, which is AGPL. They may not be able to meaningfully change the code in secret, but they can still impoverish the actual Grafana creators trying to sell Grafana as a service.
> Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
Forks that survive after splitting off are cases of FOSS succeeding, not failing. Failing would mean closing down, in this case it's replicating with changes, we (the public) are getting even more options.
The idea behind choosing a license like MIT is that people can create forks from your work, requiring not much more than attribution. If what the license calls out as valid is considered a failure in your eyes, don't choose a license like MIT.
This paints it as if Gitea was not a fork of Gogs specifically to turn a profit out of something they did not make on their own. I might be more sympathetic if they'd created Gitea, but given it's a fork of another project, it looks a lot like they're playing the same game that beat them.
I don’t think this is quite correct. Gitea was a community fork of Gogs, because Gogs was limited by its single maintainer, who was often unresponsive for months. See https://news.ycombinator.com/item?id=13296717
In a way that makes it worse. A community fork that is repurposed by a select few to make money off of work that those few did not do for the most part.
It's not that FOSS fails, it's that unethical corporations worth billions of dollars go unpunished for abusing it (because the law exists to protect them).
FOSS is fundamentally anarchy (the good kind that shows that human beings are not all pieces of shit). Anarchy can't exist in a capitalist society because it shows people that they don't HAVE to live like slaves. They can live as members of tribes, as evolution intended for us.
So as always the organism is originally healthy and successful until the parasite that is capitalism spreads and suffocates it for its own reproduction.
> They can live as members of tribes, as evolution intended for us.
Please, quit the cheap sophistry.
Evolution doesn't intend or plan anything for us, and you will have a very hard time convincing people that we would be better off living in a tribal/clan society than whatever we have today.
Evolution intends in the sense that it follows an abstract fitness function. I didn't think I'd have to explain that here. I know how to implement evolution algorithmically.
And no matter what you think about tribal societies, we still live in tribes every day. You and your close friends are a tribe. Your family is a tribe. Forums and now social media communities are tribes. HackerNews is a tribe. Open source projects are tribes, indeed they fork over ideological differences all the time. Political parties are tribes, indeed they split and antagonize each other all the time. Nationalities are tribes. Companies are tribes. Social classes are tribes. Subcultures and "identities" are tribes.
We are not built to handle global contexts, so we collapse them into tribal ones. We do that for everything. There's always an in-group and an out-group and a hierarchy if we're talking about a cluster of people.
My issue with capitalism is fundamentally split in three parts: that profit is the driving force behind action; that short term effects are prioritized over long term ones; and that global markets operate at a scale that does not allow individuals to have any real agency in their environment due to the points outlined in the previous comment.
It just fosters the kind of behavior that goes against my idealized version of what society should be according to my understanding of the conditions in which we thrive.
i.e. it turns people into selfish venal assholes and it destroys our chances at a better future with each passing day
Perhaps I'm also using a wrong definition of anarchy then. But it's honestly the closest label I know for this concept. A less centralized society.
This smears out the definition of profit beyond usefulness.
I can pretty much guarantee hunter-gatherers hunt to not starve, children play for sheer joy, and nobody's thinking of profit.
There are better psychological/anthropological terms to apply to human drives than calling them "profitable". That's weird economist thinking, trying to bring everything under their purview.
Worse, it’s an attempt to get us to agree that humans only do things for profit, in order to advance an ideology and make our thought more malleable when an author turns around and starts writing about public policy and ethics applied to things that actually are about profit.
At least that’s what is going on when the schools of “thought” this kind of stuff comes from attempt it. This particular poster might not be. But usually it’s a cheap rhetorical trick, coming from folks who present themselves as simply following logic. Gross.
"My issue with capitalism is fundamentally split in three parts", then you go on to describe things that are not exclusive to Capitalism AT ALL.
Again, please quit the cheap sophistry.
> the kind of behavior that goes against my idealized version of what society should be
Are you listening to yourself? You sound like a college sophomore who is sure has a solution to all of humanity's problems...
> turns people into selfish venal assholes
... and can only assign blame on others.
I can bet you nourish some well-developed fantasies about what you would do if you were given enough power over any "less centralized society", and they are a lot more about imposing your view over everyone than ensuring your small community can prosper and be happy.
> I can bet you nourish some well-developed fantasies about what you would do if you were given enough power over any "less centralized society", and they are a lot more about imposing your view over everyone than ensuring your small community can prosper and be happy.
Damn, you sound very angry for someone who is having a calm discussion on the internet. More importantly, you seem to be assuming a lot of stuff about me but we've never met. And you have no clue about how much of it is right.
So please just, kindly, shut up. You look like an ass.
"then you go on to describe things that are not exclusive to Capitalism AT ALL."
Why are they required to be exclusive? If I said that uncontrolled train crossings lead to more train crashes, would you retort that train crashes aren't exclusive to uncontrolled crossings?
They are not required to be exclusive, but it would require that we can establish cause and effect.
If you tell me that your "issue with Capitalism" is that "we have people driven by profit/greed and wealth is unevenly distributed", but a quick look through history tells you we can always find "people driven by personal gain and wealth inequality", then what does "Capitalism" has to do with it?
"A quick look through history" is what I'd expect from someone who skims over a book and completely misses the point because they think they know it all.
Indeed I gave you three constraints but you're only looking at one independently.
When else in history were markets global? Why am I arguing with someone who can't even read?
Right, so the fundamental issue is that we are living in a globalized world, which reduces any room for nuance and imposes an uniform and homogenized culture, top-down policy-making, and a totalitarian approach by the ruling class.
Thing is, this would still be our reality regardless of the economic system. Globalism would be a problem even if the Soviet Union had won the cold war.
We would still be subjected to uniform culture, top-down policy-making and totalitarianism.
The people would still be acting by their own personal interests.
People would still favor short term benefits over long term prosperity.
So, again: what does Capitalism has to do with it?
The fact that Open Source is about sharing, and they don't share. They only take. It doesn't have to be written in legalese somewhere, it's the spirit of what makes Open Source what it is.
And I'd argue that doing something for profit is also against the spirit of open source, but that's a different argument. The thing is that open source is for the most part an effort from hackers, hobbyists and professionals who want to foster a positive ecosystem for people like themselves. To make their passion better and simpler and more fun and more accessible and more interesting and safer and more efficient and more general... So that more people might fall in love with it.
It's not to push a product or to convince people that they need it.
And that sentiment comes from the fact that open source is the reason many people got into programming in the first place! Thanks to all the free resources out there. So they want to give back to the community. That's how I feel about it at least.
But then again, when huge corpos contribute to open source it's great because they have a lot of inertia. So I think that's a good thing, it's a positive feedback loop. My previous point is not black and white, even though I am obviously bitter about a lot of things.
A regular user who just downloads a build and runs it on their system (i.e. the most common use case, because it's the one that takes the least effort) also doesn't share anything. Why is it worse if a company does the exact same thing?
Licenses are about legal agreements, not about ethics. Legality doesn’t imply ethicality (nor vice versa). If this was about legality, people would say so.
Then why is there not a file outlining the ethical expectations, alongside the legal agreement? The companies using the products have no way of reading the developers' minds regarding expectations of reciprocity.
The idea really isn't so far fetched, lots of projects today have non-legal outlines of expectations of community members. For a single example, codes of conduct are very common.
I don’t think this is a discussion about what the project owners specifically expect ethically (users would be free to disagree), but about what we collectively find to be ethical or unethical in this space. If there is disagreement about the ethicality, then one party having it written down doesn’t change anything about the disagreement. And there is nothing that binds one party to submit to the other party’s notion of ethicality, unless you turn it into a legal matter by making it part of the license.
Again, this thread is about whether we as a society, or as the software development community at large, consider the behavior ethical or not. It is not about the specific open source developer imposing specific rules.
I'm sympathetic to some of what you're saying, and I believe the original hacker ethos spurred some of the original FS impulses, but...
FOSS licenses don't, and can't, embody anarchism (or any socialism) because they make no distinction between humans and capital-holding entities, lumping them all under the term "users".
How exactly does that apply? What's the "corporate welfare" here? Almost nobody is profiting off Gitea, especially not big tech. I know using the big tech boogeyman is useful to justify open source projects rugpulling on their licenses, but it doesn't even apply here. Not that it usually makes sense[0], but in this case it's not even something that the maintainers themselves ever alluded to.
[0] projects like MongoDB, ElasticSearch or Redis only became popular because they were OSS, and probably limited competition for years simply because competing with free is hard. only to then switch on their users years further down the line. So any money that they ever got was due to them being OSS in the first place since absolutely nobody would've used MongoDB 1.0 if it was a commercial product.
It's a shame "federation" these days basically just means "implement activitpub". So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs). Nobody needs federation between Forgejo and Mastodon - what would that even mean??
> So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Well, you either use an existing standard so you can federate with existing implementations, or you come up with a new standard and ask others to implement that. Seems they chose the simpler way, thankfully.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
What about federation between more software than just your own? Once you've done those things, you basically end up with another spec (but informal instead of formal) that others also need to implement. So instead of going the informal way, they aim for the formal one. That does sound appropriate to me.
Slightly besides the point, but for someone who dealt more with decentralized/distributed systems than bloated authentication systems, it seems both simpler and easier to map+implement ActivityPub than implement OIDC+"a few webhooks", but that might just be because of my familiarity.
I'll say that ActivityPub is a pretty simple standard though, compared to what's out there.
When I saw “federated github”, sharing activity feeds is not what I had in mind. I thought maybe making pull requests across instances or things like that.
I tend to agree that ActivityPub seems pretty horrifying to work with (as an outsider). At least it works, though, and is implemented by a large amount of different projects and not owned by any single one.
> seems pretty horrifying to work with (as an outsider).
As someone who both made my own implementation + hacked on others, what was/seemed to be the horrible parts? It's a pretty simple standard that is basically RSS with some added stuff (very simplified of course, before I got jumped) for facilitating the federation parts.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
That would only solve the problem of "I don't have an account on this forge yet". The much more relevant problem is identity + reputation. With ActivityPub-based federation you can use your domain-bound identifier to contribute to various projects across servers and gain reputation and trust. If we use OIDC, then it is a lot less clear if the server, you authenticate with, is hosting the real franga2000.
Over the years I've come to the conclusion that all these UIs on top of Git make little sense. Git itself is already distributed, which goes beyond federation. Exposing a Git repo over the network is trivial with HTTP or SSH. It supports code review workflows via email, though I really like the approach of storing reviews inside the repo itself via something like git-appraise[1]. Integrating it with CI/CD pipelines _can_ be simple, if the pipeline can be triggered by pushes.
Instead we've created these centralized UIs over Git, and are trying to get them to integrate with one another. This seems backwards to me since Git is already decentralized.
There's value in quickly browsing files of a project without needing to clone it first -- especially for quickly linking others to specific lines, API docs linking to implementation, etc. That needs to expose content at every commit, for stable links. So, some sort of a "web git viewer" is very useful.
Unfortunately, the more minimal read-only ones have ended up with far worse UX than the Github clones, or are a scary tangle of shell scripts and/or C. :-(
(Anyone want to collaborate on a Rust-based read-only git browsing web UI that aims for great usability? I'm all in, I want one. I know how to make it handle search etc, I'm not great at wrangling CSS to will or getting navigation right.)
Yeah, there's a reason why stuff like the git manpage generator (https://git-man-page-generator.lokaltog.net/) is funny, and it's because git's CLI doesn't have a learning curve. It has a learning brick wall that you smash your face into.
The link you posted looks pretty helpful. I guess my needs for "interesting" git operations are low because I've never felt the need to move beyond the CLI. (Mostly, that is. I do click the colored bars in VS Code to stage commits and then commit from the command line.)
Occasionally I need to search for help when I screw something up. More often the solution is in the git warning message ("You need to 'git pull' before you can push" - paraphrasing.)
I needed something like this 16 years ago at work to manage shared code, tickets, and code review of private code across a team of engineers. Code review for formal quality assurance was the most important need. I started with trac, then Phabricator, then GitHub enterprise. I just checked out git appraise to see how my nuclear and mechanical engineer friends would like it, and from what I see, I'm guessing they would not. We were using eclipse back then so maybe if that eclipse UI plugin still works it could work.
Although the last mention of federation in a monthly update was in October, where they stressed that federation was and is their 'highest priority'.[0]
FYI: Just last Friday there was a call/meeting to coordinate and build out the federation efforts in Forgejo. More work is coming and more help is appreciated! There will be a presentation at FOSDEM on this topic and there is a matrix room dedicated to Forgejo Federation.
Really looking forward to the federation, hosting Forgejo for my own stuff while having discoverability/issue tracking with other instances would be the best of both worlds. As of now I'm mirroring stuff across self-hosted forgejo/github.com/gitlab.com where the forgejo instance is just part of my self-hosting hobby and not "load bearing".
I think that Gitlab Cells[1] might go into the same direction, there is a mention of federation in the design document.
I would expect Gitea to merge back in federation functionality once it's stable if they get some help with it. IIRC that initiative started in gitea and I'm not aware of that level of animosity or divergence of goals between the two?
I’ve migrated over the years from Gogs to Gitea to Forgejo. It’s such an excellent piece of software.
90% of the time, I can get by with hosting my personal git repos on an SSH server I have. When all I’m trying to do is put my Chezmoi repo somewhere that all my computers can access it, Forgejo and friends don’t add much to it. For the 10% of the time when I want to share my code privately with some friends it’s brilliant (and free beats a GitHub paid plan). And if I’m going to have it running anyway for those 10% projects, might as well use it as my personal git repo of record for everything else, too.
You run that locally on your own machine, or you host it yourself somewhere? If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
I'd never consider running my code editor as infrastructure, but certainly interesting to see that others seems to do.
> If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
It's privilege and probably a dose of luck but I can tally up on one hand the number of hours my house and/or phone hasn't had internet in the last 5 years, including total power losses. I also wouldn't run my editor as a hosted service but I can understand why someone in a similar position might take that gamble. It's certainly no bigger of a risk to me than being limited to working on something physically at a workplace and needing to rely on transportation to get there, which also has maintenance concerns and infrastructure congestion and reliability issues that have caused more productivity losses to me than my utility providers ever have.
I just install the container remotely, cicd remotely etc and code locally. My use case is the opposite, I might need to do some adhoc support and not have the laptop with me so then I use the online code editor
I've used Github's built in VSCode for quick one-line PRs or docs cleanup. I'm lazy enough to appreciate the feature even if I would never do deeper work in it.
Not my thing but I see why others would like it. Forgejo is freaking tiny by comparison resource-wise, though. It’s a Go program that runs comfortably on a Raspberry Pi with a dozen other services. That alone makes it super attractive to drop onto any spare computer you have laying around.
My first stab at running a git server was Gitlab CE (because I was using it at work.) I tried running it on an Atom based server with insufficient RAM and it just crawled. Page loads just timed out. I switched to Gitea and it was a breath of fresh air.
Forgejo got to my attention when Fedora chose it for their repo server. My needs are pretty simple - just some centralized file storage of notes and some source code. I've tested a migration from Gitea 1.21 to Forgejo 9 and it was frictionless.
I'm seriously consider migrating, but I still wonder which will be better supported (and suitable for free-as-in-beer use) in the long run.
Gitea 1.22 will be the last release with guaranteed migration support to Forgejo. The next Forgejo LTS release, v11, is due out around April. Migration from Gitea 1.23 will not be supported, and since it was released in December those on the fence are now at the fork in the road.
You still have time to figure out what to do, but you'll need to choose sooner than later.
Yes, I'm aware of that. I'm on a Gitea version that will migrate easily (and have confirmed that) and will not upgrade or migrate until I have decided. (I am leaning toward migrating to Forgejo.)
Thanks for that. I hadn't followed closely because right now I don't have a real desire to go back to Gitea. I'm glad to know that deadline to commit is coming up soon.
Did you notice any important differences between gitea and forgejo (besides ideology)? Although it seems like forgejo has added actions in the meantime
Gitea actually got actions before Forgejo did. That was part of what motivated Forgejo to become a hard fork instead of just a rebrand—there was some sort of disagreement about the way in which actions were rolled out and Forgejo decided from there to stop trying to be fully compatible.
I've missed that part. AFAIK both are forked from nektos/act and can't be dramatically different. All this story is an unnecessary dichotomy for me. Still hosting production code on a Gitea instance and will happily pay a dime but didn't get why yet.
I initially had a Gogs install, but moved to GitLab because of GitLab CI and some other features. It was a bit too heavyweight in comparison and the updates became difficult to keep up with, so I eventually moved over to Gitea and Drone CI (some might also like the Woodpecker CI project).
Honestly, my eventual next move will be either Forgejo with their Actions https://forgejo.org/docs/next/user/actions/ for CI/CD or maybe going off into the deep end with moving back to Jenkins.
I will never go back to Jenkins. It was my job across several shops over the last decade to keep that thing slogging along and I’m beyond done with it.
Really? What’d you dislike the most about it? In my experience, the syntax was actually more user friendly than that of GitHub Actions and the file based approach a bit easier to carry across projects than what Jenkins and the likes do.
Drone CI and Woodpecker both felt similar in that regard, at least to me. Though the docs of GitLab CI definitely make me consider it for group projects across an org.
One of my biggest headaches is that the pipeline cache never seemed to work predictably (e.g. not pulling cached data that was available, it uses zip so the permissions are messed up, etc), so I ended up writing my own caching system. It was important for my use case because full runs could take 2 to 3 hours.
Then there is the YAML config which is too convoluted. It took me several attempts to get things right.
What works better, IMO, is to have each CI step as a script or a Make target that can run anywhere (CI or dev PC) and in the CI configuration have a single line in each step that invokes the script.
The tag line isn't the most informative. It took me a scroll or two on the main page to figure out its purpose. (Self hosted GitHub alternative). I'd suggest making that clearer earlier as the word "forge" in terms of software could have a variety of interpretations.
The only time I ever see Sourceforge mentioned is in advertisements on /.. I think most young developers today have no idea what it is, if they even know what /. is.
Excuse? This whole thread is about you people making poor assumptions. Sourceforge isn’t an answer on a history test. At best it’s a cautionary tale but it has been followed by and preceded by so many nearly identical ones it’s not really relevant.
Therac-25 is a name every developer should remember. Osborne computers is another. Sourceforge is irrelevant. Nobody cares.
Yet when posts online described it as an alternative/clone of GitHub/gitlab/gitea it was alsa received with criticism and complains that "what if I don't know what gitea is".
Naming and creating descriptions is not trivial, I wish more complaints would also simply come with proposals of better taglines, so we can bash those ideas quickly in comments and cut that long feedback loop.
Disagree. SourceForge was established in 1999. The term "software forge" was in widespread use, until Github started gaining mainstream attention. But the term "hub" doesn't necessarily always refer to the same thing - e.g. certain adult entertainment website is also using it.
> SourceForge was established in 1999. The term "software forge" was in widespread use...
Not trying to be contentious, but I've got a 5-digit slashdot ID and I've never heard that phrase explicitly used in my entire life as a term of art by software devs, including at or around 1999.
Definitely not saying that nobody was using the term, but "widespread use" is a big claim that requires some substantiation. It absolutely does not align with my lived experience of the time.
Also five digit /. id, and I would like to remind grandparent and upvoters that 1999 was a long fucking time ago. There are senior programmers who weren’t born in 1999! Why the fuck would they know about Sourceforge? Was it on a special episode of the Backyardigans?
"Software forge" has a certain explanatory ring to it, but approximately nobody has any clue what SourceForge is, or even less, what it represented back in its heyday. The kids know github, many don't even know the difference between github and git, or slighly less concerning, assume git is a tool from github.
It very much used to be, before Github delivered where SourceForge couldn't (and still doesn't). But the history is still written in project names like GForge, FusionForge; and of course the contemporary SourceHut refers to itself as a "hacker's forge".
Many of us remember life before Github, and web UIs for other version control systems existed before Git. Github is just a Trac clone and no one can claim with a straight face that it's somehow completely unrelated.
Put Trac and GitHub side-by-side, and they're obviously different in tons of ways. Put Forgejo and GitHub side-by-side, and you can easily confuse the two if you're not paying attention.
Of course there are plenty of elements from GitHub that existed in previous systems in some form of the other, and I'm sure the GitHub people looked at them. But the way GitHub implemented things was a marked shift from what came before (the most significant being the "source-first" view of projects – rather than "wiki first" view of Trac of listing of attributes of SourceForge – and their implementation of Pull Requests).
Yes, both launched in 2008 and yet Github was launched first.
According to this archived article[1], there is a quote saying: "It [BB] sports a feature-set much like Github." That is an indication of which one came first and was already a success story on the market and served as a blueprint for BB, which was made in its image with the difference of supporting mercurial, instead of git.
And then all software revision control systems / forges have more or less the same conceptual model for their platform, and just adding their specific sauce and some tailoring to specific needs. Some more innovative and deviating platforms from this more-of-the-same approach are Sourcehut (brutal minimalism) and Gitlab (enterprise dev lifecycle, process support). And then there's the general trend for these platforms to become one-stop-shop maximized lock-in walled gardens, aiming to support the entirety of software development practices (while they seem open and gratis).
PS. This trend for one-stop-shop platforms will also see their owners start to monetize the absolute hell out of their existing (and often vast, take Github) 3rd-party vendor ecosystem via plugin marketplaces, app stores, and their platform API's and SDK's, which many of these vendors now think bring along on a free ride.
Thank you. I was trying to figure out what "forge" meant here.
When I think "forge", I think a tool to turn a raw material into finished product. Ergo, the blacksmith tool that turns iron into a horseshoe.
The software analogy would be turning text source code into a runable binary. Ergo, a compiler or an interpreter.
Github and SourceForge move source code from one place to another. To overextend the analogy, they are more like a combination shop/delivery service. Source code is moved but never altered or transformed.
Long story short, this crusty C/C++ dev thinks forge is a really weird term for a self-hosted, sugar-crusted Git server.
It’s clearly a self hosted GitHub alternative and that’s IMO the way to talk about it. And per other comments, it’s obviously this once you start using it - it’s basically the GitHub interface and it’s great that it is - it’s very familiar and easy to use
After my struggles with trying to keep Gitlab CE (Community Edition) up and running (it needs a lot of CPU and memory) I switched to Forgejo and have not been disappointed. It runs as a rootless container and uses almost nothing, memory and CPU wise. Updating it has been a simple podman pull that JustWorks(tm).
It now also runs actions that keep my static websites updated by running Jekyll etc.
I really like it to have my own forge that can import repos, issues etc from other forges like GitHub, Gitlab etc. and I am looking forward to the upcoming ActivityPub based integration to the wider fediverse.
Having a decentralised, but connected approach to code hosting is what I always wanted to have and now it’s (almost) there.
I did my Github -> self-hosted Gitlab -> Gitea -> Forgejo journey over the years, and I haven't looked back.
Forgejo is great and it's probably going to become even greater once federation is done (having distributed forks and PRs across multiple instances solves the fragmentation problem of self-hosted solutions).
And I lost my trust in Gitea once it spun off a for-profit branch backed by VC money (which was exactly the reason why it was forked into Forgejo).
The only thing I lost from Gitlab is the out-of-the-box CI/CD platform. But I could migrate my pipelines to Drone CI and trigger them via webhooks. Just keep in mind that, depending on the complexity of your Gitlab pipelines, this may not always be an option. Anyway, for me hosting a Gitlab server that hogged up 5GB of RAM to serve a couple of small projects was a big no-no. Forgejo takes 500MB of RAM at peak.
Can anyone comment on the code review experience? (I assume similar to Gitea but I haven't tried either).
I recently did some moderately serious code review in GitHub and discovered it's a baby's toy version of a code review tool. It seems it would be unusable for serious engineering work unless you totally design your source control model around making that work, at the expense of all the other things that influence how you wanna manage your history.
I am mostly used to Gerrit which has a very reasonable basic model but a lot of rough edges and some performance issues.
Suddenly I realised I don't think I've ever actually used a review tool I really like! I wonder if our industry is just getting by without one?
IIRC the Gitlab one was slightly better than GitHub but I can't remember too much about it.
I've used Phabricator and GitHub to design nuclear power plant design code... seems pretty serious. Can you tell us more about what's missing in your opinion from making the reviews usable? Curious what I've been missing out on!
I miss Phabricator. Whilst it was certainly overkill for personal use, the additional applications meant I could do so much in one place and have everything integrated. Funny how what we have now, including GitHub feels a step back.
If it doesn't support SVN or Mercurial I don't see a need to try and be abstract. At a minimum it needs to use the word Git because that page is inscrutable.
Great! Now let's see if someone really cares enough to make a pull request or whether these complaints are just superficial to have something to complain about.
"Forgejo hosts source code repositories, lets you track and manage issues (and review code changes), and provides all the integrations you'd expect with CI/CD and similar tooling."
This seems to be a good tagline for a HN audience that kinda clicks a link blind and wants to figure out what it is quickly and move on.
But it’s unclear to me why the Forgejo website should care about this type of visitor? Being a “forge” is likely well understood by anyone that is interested in installing this type of software (or they will figure it out because of the context that linked them to the page). None of the features you mention is a good discriminator, as essentially all forges have these features in one form or another, so an interested use will have to look at the details anyway. Being: “self-hosted, lightweight, easy to maintain” those are very important quick discriminators if you are looking at this type of software.
I don't see why it's so critical to not mention Github. That would instantly convey what it is to basically everyone, and it doesn't mean it doesn't have its own identity or anything.
"A platform to host your git repositories including collaboration features like issues, discussions, and a projects page to track important parts of your code base. All able to run on your server local and private."
Their communication really is all over the place. Even the name is really awkward in English.
(And yes, not everything should be forced to be English and it's apparently supposed to be Esperanto; but nothing else on the site is so that's not how most people will parse it).
There are only five pages of repositories there, so it's no surprise it responds quickly. We've been running gitea for several years, and when you put enough data into it (repositories, issues, comments, etc) it doesn't feel as fast anymore, although most pages still render within 500 ms. For example, opening large-ish issues can stall the server for a second or two (it reports rendering time in the footer, so I'm sure it's the server).
These load times were surprising to me given the relatively small amount of data being loaded (just the first page of results)... It feels like there could be an inefficient query at play here? The HTML responses aren’t huge (~400kB), and my ping to Codeberg (~125ms, US<-->Berlin?) shouldn’t be a major factor when just loading a single HTML document without factoring in other resources. I also have gigabit internet, and while there could be bottlenecks between here and Europe, they surely wouldn’t be responsible for slowing things down to this degree.
For comparison, I’ve run Gitea on a local server, and it’s been lightning fast, even with larger datasets. For example, on a test with the Linux kernel repo (1.3M commits), Gitea rendered the first page of commits in under 500ms. That’s a stark contrast to the 11 seconds it took on Codeberg’s Forgejo instance for just 22k commits.
I wonder if this slowness is more of a Codeberg hosting issue or something inherent to Forgejo, but I haven't tried Forgejo locally.
It agrees with what I was seeing, but it doesn’t really seem to explain much. I still don’t know if it is Codeberg-specific or Forgejo-specific, or why either of them would be slow for this task when Gitea local to me can go much faster (even accounting for ping latency).
I don't know if that's the whole story? Sure, GitHub has more data to process (and way more compute), but even when switching between tabs within one repo (going from code to pull requests, for example) GitHub is still much slower even though its query shouldn't be affected by the number of repositories it has.
Can anyone who migrated from Gitea to Forgejo explain the differences in usability? I understand the fork was driven by licensing/project ownership concerns but it's not clear to me from reading the website how different the end product is now. I believe Gitea is still being actively developed.
I host a private Gitea instance (mainly to mirror all my GitHub stuff) so wondering if it is worth migrating.
I evaluated it again a couple of weeks ago and there are basically no differences right now (besides a few cosmetic ones) because the hard fork happened just a few months ago. Stick on 1.22 for the time being, it's the last version from which Forgejo supports in-place upgrades. You'll have to transfer data half-manually or perform deep surgery on the database if you upgrade past 1.22 and then decide to switch forges.
Although the next version of gitea should include support for full mirroring from GitHub (so periodic synchronization of new issues, PRs, etc), not just (code mirroring XOR one-off full copy) like it does right now. This might be of interest to you.
A lot of their early value-proposition were saner security defaults and additions to increase confidence in the software's security. A lot of the changes were attempted to upstream into Gitea, but not everything made its way in. They were a soft-fork for a while before hard-forking, and even after the hard-fork continued to sync changes from Gitea where possible.
Forgejo v10 is the first release I've seen where there's been a focus on tiny UX improvements (versus trying to remain compatible with Gitea). I'm hopeful these will continue to come, but it does still feel essentially identical in appearance and functionality with Gitea.
They have a FAQ (https://forgejo.org/compare-to-gitea/) TLDR:
Forgejo is free software, prioritizes security and stability over new features and is actively developing the federation module (thus working to enable communities of federated forges)
I wish they would have chosen a better name. Honestly if I have to install a Git server one day I’m gonna install Gitea, not a tool I can’t even pronounce.
Names are important, this is why I also don’t use DuckDuckGo.
The reasons for forking from Gitea were also a bit weak in my opinion.
> Names are important, this is why I also don’t use DuckDuckGo.
You won't use DuckDuckGo because of the name? DuckDuckGo is so tricky to write on mobile that I copy pasted from your comment, but that doesn't stop me from using it. For me, googlability of names is important, but otherwise I don't care.
I'm really curious about your reasoning. Does it offend your aesthetic sensibilities? Do you think people who would choose such a name can't be trusted with search? Or something else entirely?
Yes. I’m completely aware it’s irrational and probably a bit dumb, but I don’t want to use something with a name I actively hate. Some names are "meh" or boring and that’s ok. But for DuckDuckGo and Forgejo I have a visceral reaction against their name.
DuckDuckGo is an even worst offender because their logo is ALSO dumb and terrible, and I don’t want to see it.
jazzyjackson provided the pronunciation guide in a comment above:
> forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo"
It's totally OK for a project to use words from a foreign language. "Linux" is derived from Finnish Linus (/ˈliːnʊs/) and pronounced /ˈlɪn.əks/, unlike the English Linus - /lɑ́jnəs/.
IMHO Forgejo should have the IPA pronunciation spelled out on the landing page.
> this is why I also don’t use DuckDuckGo
Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself? "Bash" is a play on "Bourne" and "born again"? Silly names are a part of the hacker culture, remaining playful despite the product having huge impact brings color to people's lives.
> Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself?
I knew these examples were coming. Subjectively speaking, these are catchy names, which is why they work. Forjego and DuckDuckGo are not catchy, there's something wrong with their flow. Maybe they're too long or too "breaking", or maybe they don't work internationally (I'm French) somehow, I don't know. I'm not going to write a thesis on why some names don't work, but if someone did I would love it. Silly names are ok but there's a very thin line between "silly" and "annoying". DuckDuckGo definitely crosses it for me.
off: google translate English lady pronounces it as "4 Jay ho" with an H. That isn't how a native English speaker would attempt to pronounce Forgejo, is it?
Well, language nerds do, myself included. Also honestly, I don't care when people mispronounce words, as long as they can convey the meaning clearly enough.
It might not be a very strong reason, but quite enough to pick the original project which also has more development effort behind it (and is still used by Blender FWIW, I don't think they have any plans of migrating). I understand your first language is German. Figures. The name is unpronounceable and feels weird to me also. If we ever migrate from gitea (although I currently see no reason to do it), I'll have to pick some generic term and introduce it to others under that name.
> I understand your first language is German. Figures.
I assume your argument is: “Everyone who had to learn English as a second language is so used to completely random pronunciation that they won’t complain about anything anymore”.
It's just that German is close enough to Esperanto that I'm personally not particularly interested in what a German speaker thinks about the name. Ask a Mandarin/Japanese/Arabic/Ewe/Telugu/etc. speaker what they think.
(My first language is quite far away from both English and Esperanto, probably should have mentioned that in the original message.)
Maybe, but the pronunciation of the forge part is essentially just the English one (at least much, much closer to an attempted German pronunciation).
The jo part is close to German though, so maybe this is why it’s not too bad for someone who knows English and German. And everyone else gets to dislike at least some part of it :-)
I know. But I don’t want to use something with a naming sounding weird that I actively hate, especially when there are alternatives with a better name.
Clearly Postgres is not a good database and you will wisely use any other. I can see real advantages to this. It saves you so much effort and time. In fact, it allows you to make no effort at all.
I have never heard anyone mispronounce postgres. It's even more straightforward than Gitea, which native-roman-language-speakers might pronounce "git-tay-ah"
You're missing the fact that the name is not even Postgres, it's PostgreSQL, /ˌpoʊstɡrɛskjuˈɛl/ POHST-gres-kew-EL. It's so awkward people actively avoid even typing it!
Even if one is somehow monolingual, forgejo is a perfectly fine word in English. There are even multiple ways to make it sound funny (forge-joe, forge-yo, etc).
This is more or less how Phabricator (dead, but lives on as Phorge[1]) works. It uploads/downloads patches via HTTP.
IMO, using Git remotes but with a one-review-unit-per-commit approach like Gerrit has a much better UX. Shipping around diffs has all sorts of sharp edges, especially when you stack multiple changes or binary data, and you end up reinventing native Git functionality but worse.
Phabricator started out as "paste your diff here" and eventually ended up with a CLI tool that reinvented half of the Git CLI.
I think it is an interesting take. It might be nice to point folks towards https://github.com/picosh/git-pr it has a better explanation.
So this is like the email source diff/patching workflow but extended to use ssh instead?
I try and limit my ssh access to servers and endpoints that I control. The attack surface for ssh is actually quite large.
It seems since you are shipping a patch, that it could be signed with your ssh key, but posted over https. This would make running a server way way more portable. Everything else about it seems quite nice.
Since the language is Go, creating an https service should be just as easy correct?
I like the idea of dynamic RSS streams with patches flying around.
Exactly. People don’t struggle with format-patch, they struggle with integrating patches into their email clients.
Our design philosophy is to not require the project’s git repo in order to enable developers to collaborate.
We are also trying to make this service a supplement to other code forges. Competing with GitHub is a huge uphill battle, instead I’m thinking of this service more as a patch-bin instead of a git collaboration tool for corporate entities
Neat! Thanks. I see this is located in the docs between "comment via email" and "message templates". If the devs see this, perhaps adding more buzzwords would be helpful to discovery.
I'm not sold on Forgejo as a better alternative to Gitea. The Forgejo fork was completely unnecessary. The trigger behind the fork was the Forgejo authors tried to add their own copyright header into a patch contributed back to Gitea. They (Forgejo/Codeberg) followed it up with a lot of misinformation on FOSS e.t.c. some of which is still on their Gitea comparison page that ended up fracturing the community.
Some Codeberg admins had at some point threatened to blanket ban certain types of projects, notably anything slightly related to blockchain tech and that has always made me cautious of their site.
It's not clear from the landing page whether it's a git code platform / mercurial / entirely new VCS. I wish it was clearer (looking at the Readme, looks like it's indeed a git hosting platform).
I don't really care about the governance model as a user seeing this landing page for the first time, so I wonder why it's so prominent, vs telling me what the actual product is.
The governance model is the reason for its existence -- Gitea went stupid proprietary, so this is the rebel alliance being proud of being the rebel alliance.
It sounds like this is trying to coin a new term. I hadn't heard the word forge used to mean an all-in-one git+issue tracker+project mgmt+etc. suite before.
Yeah, it is funny to read all the assertions that everyone knows what a "forge" refers to in the middle of all the threads wondering wtf a "forge" is...
Once upon a time, a lot of software was released/available through "source forge", which is pretty self-explanatory in the context of software publishing. Then a decade ago, SourceForge shit the bed and destroyed its reputation. I'd bet that most of the developers saying they've never heard of "forge" in this context have entered in the industry in that time.
This is a bad association even for people that recognize it. Presumably there were good years but most will probably remember the ugly endgame with awkward UX and weird ads masquerading as fake download links.
Yup! That clears it up. It’s the site that serves lots of ads and binary packages of some old software. At least as of the last time I looked some years ago.
Ok then, not sure I would want more things like that today to self host, but to each their own.
I think this is a great peace of software, though i think its mostly tailored for the single dev, or business case for closed source software, but much less a software peace that allow for great community building. I think this is because of:
a) The network effect that you inherently get with for example github
b) The barrier to create accounts on yet another platform to contribute.
In that regards i find the original way of just using email's to send patches just such a brilliant idea, because at least it eliminates my second point completely. That's why i think sourcehut [0] is such a nice idea at least in theory. Though now you have to teach people not only how to use "git" but also how to use "git" via email :D
Gitea and Forgejo support OAuth integration and AGit Flow*, which is a breath of fresh air compared to the connected "fork" and PR strategies. It's a good middle ground between the "modern" method and email collaboration. With some UX tweaks it could become very accessible for many.
Available platforms like Codeberg provide the option to sign in/register with GitHub and GitLab auth, so needing "yet another account" has become a much weaker argument.
can anyone share what the benefit is over using a self hosted repository host over a service like github/gitlab? obviously you get more power over the interface & such but are there truly any gains over using the larger platforms?
A self hosted repository host gives you the ability to develop software projects without giving up privacy or locking you into a service you don't control.
Aside from the whole self hosting ethos, if you are hosting it from a home server and you are the primary user, you will get a nice performance boost. Downloading binaries, cloning repositories will be instant. If you use CI, it will be running on an actual machine rather than 10% of some 2GHz cloud CPU.
I regularly have to upload multi GB images to a VPS and it's very annoying when it takes like 10 minutes.
It's very useful for companies - more control, don't have to host your code externally, and you don't have to pay (well, ish; we ended up paying for Gitlab Premium, but that doesn't exist for Forgejo).
- Not all projects are suitable for hosting by third parties (you may not want to give away the special sauce behind your wannabe next trillion dollar company, or you may be handling sensitive or confidential data like medical records, etc)
- You are immune to the trending process recently referred to as enshittification that consists of providers in a consolidated market like this one giving you an increasingly worse experience to compel you into more expensive plans, i.e. you gain independence and control
- It might be a competitive advantage to your business to still have the lights on when inevitably the centralised platform becomes unavailable to most (think of trading and events like crowdstrike)
Downtime when you can afford it (for us it's in the middle of the night, and very rarely), not in the middle of the working day when GitHub fucks up yet again.
we are considering moving from gitlab to forgejo. it's not a immediate concern but i think the days of gitlab are numbered with recent change in top management.
From the FAQ, forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo", Esperantese for Forge. A fork of Gitea [0] but managed via a non profit, no premium upsells, all freely licensed [1](GPL) etc.
Good to see their community outreach is via Matrix and Mastadon. My kind of nerds.
Apparently this is what Codeberg is running out, if you click . Looks like gitea/github to me, nothing wrong with that [2] source code is available from the little branch icon in the top right corner, hosted on codeberg which TIL is a forgejo instance [3]
[0] https://forgejo.org/2024-02-forking-forward/
[1] https://forgejo.org/2024-08-gpl/
[2] https://v10.next.forgejo.org/explore/repos
[3] https://codeberg.org/forgejo/forgejo
> no premium upsells
So.. like gitea?
From my understanding the fork was done because gitea created a company to build custom-features for companies if they ask. Not really many indicators for a rugpull
The pricing page (https://about.gitea.com/pricing/) talks about paywalled "Enhanced enterprise-level features and experiences". Are you sure that doesn't count as a premium upsell?
[flagged]
> and never actually does anything new afaik, it's just Gitea under another name, while taking money too
This is really unfair to the many people who spend their free time working on Forgejo, please stop spreading nonsense. They have worked hard on "boring" improvements like translations, accessibility and proper unit and e2e testing, but also UI improvements, federation support, and other genuinely new features (asset quotas, wiki search, ...). Take a look for yourself: https://codeberg.org/forgejo/forgejo/pulls.
Regarding the money part, Forgejo is not monetized. It is a true FOSS project (recently re-licensed as GPLv3), not open-core like Gitea. The only funding they receive is from donations and grants, they are not selling a product.
> (and never actually does anything new afaik, it's just Gitea under another name, while taking money too)
What evidence do you have for this strong claim? I’m using Forgejo and contributed to the docs once. It seems to me real work is happening in Forgejo. A lot from what I can see is stabilizing infrastructure and fixing bugs. Seems perfectly reasonable to me.
The money that Forgejo takes is €60/month in Liberapay donations, and some grants to develop federation features so I think it's a little disingenuous to compare it to Gitea's pivot to open core and hosted cloud service.
> Gitea goes commercial, making previous community contributions into essentially free labor for their profit
Gitea (like Gogs) is under MIT license, which allow commercial applications. Is the new expectation of open source that we grant everyone license terms that they shouldn't use? I don't understand this at all.
Forgejo is under GPL-3.0, which also allows commercial applications. Should we expect the Forgejo community to start name-calling any company that would use Forgejo according to its license terms?
There's a bit of a difference between a downstream commercial host and turning the open-source project into open-core. Gitea went from a rotating governance to deciding half of the decision-makers must now come from a for-profit company that now competes with the open-source offering.
What's not in the "core"? More importantly, what is in Forgejo and not in Gitea's "core"?
How viable is gogs right now? I see that there is some activity on the repo but I guess there's no reason to not use Gitea or Forgejo?
Plot twist: Gogs was never viable.
> In my point of view, as long as no deadlock..data race is unavoidable.
https://github.com/gogs/gogs/issues/613
> The payload comes from request somehow is not always in a clean format, so we have to preform a clean operation to remove unless characters:
https://blog.gopheracademy.com/advent-2015/ssh-server-in-go/https://github.com/gogs/gogs/issues/7777
I actually went back to it after the gitea pivot and was surprised that it actually performed way better on my rpi.
But ymmv, I'm sure it's mostly because of how resource constrained it is.
It does what I want is completely FOSS and low maintenance. Perfect for my home setup, but different people will have different preferences
It's more like "forge place" in the same way that kafejo (cafe) is "coffee place".
It's actually more like "distant gay" (and would be pronounced with a hard "g") because it's a (presumably deliberate) misspelling of forĝejo.
That's English for you, same word is usable for describing action, place and the furnace.
Actually, they thought that the Esperanto word for forge, is «forgejo». When somebody pointed out, that «forgejo» (fora gejo -> forgejo) is «faraway gay person», it was already too late. So, now they say that it is inspired by «forĝejo», which is the word for forge.
I was kind of passively wondering the other day what the main differences were between gitea and forgejo at this point, since they've been separate projects for a bit now. It seems there aren't any direct comparisons I could find, though.
The Fedora Project (Linux) is switching to this, FWIW https://fedoramagazine.org/fedora-moves-towards-forgejo-a-un...
this is big!
I got curious about why Forgejo split off from Gitea, and it seems like yet another case of broke FOSS creators/maintainers getting screwed from above (and maybe below too).
From the Gitea incorporation announcement (below), it looks like they couldn't pay their bills as FOSS, and there were wealthy free-riders (which the MIT license allows).
> "Over the years we have tried various ways to support maintainers and the project. Some ways we have tried include bounties, direct donations, grants, and a few others. We have found that while there have been many wonderful individuals, and a few corporations who have been incredibly generous, and we are so thankful for their support, there are a few corporations (with revenues that are greater than some countries GDP) are building on Gitea for core products without even contributing back enhancements. [emphasis added]
I'm not a fan of Bruce Perens, but he kind of nails the problem when he says:
> "We have a great corporate welfare program, our users are the richest companies in the world. Indeed, we've enabled companies like Google to be created.
> "In contrast, if our developers aren't working for those companies, they probably go un-compensated."
----
On the flip side, the community rebelled when the creators formed a company, but not supposedly because they formed a company, but because that co held the domain and trademark. Seems like a small hill to die on to me, but I don't know the details.
Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
FOSS isn't a business model. It never was and never will be.
What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom. Nowhere in "users should have the freedom to do what they want with software" does it say "and we should be able to pay a few developers a salary for their work towards that fundamentally ethical goal". Under the original paradigm and goals, any income streams are just cream on top of doing the right thing.
According to the OSI's history of itself [0], at some point people got it into their heads that the open development model was inherently a good one for business, too—Netscape jumped on board, and then some people got together and decided to rebrand Free Software:
> The conferees decided it was time to dump the moralizing and confrontational attitude that had been associated with "free software" in the past and sell the idea strictly on the same pragmatic, business-case grounds that had motivated Netscape. They brainstormed about tactics and a new label. "Open source", contributed by Chris Peterson, was the best thing they came up with.
The word FOSS reminds me a lot of American corporate Buddhism—mindfulness and meditation totally removed from its original deeply religious context and turned into some sort of self-help program, with the result being something that would be barely recognizable to the original practitioners. Free Software was never about sustainable development. It was about doing the right thing—enabling user freedom—because it is right. Everything else was just means to that end, but at some point along the line the means became the end and we started wondering why FOSS wasn't paying the bills like it was supposed to.
[0] http://web.archive.org/web/20071115150105/https://opensource...
> FOSS isn't a business model. It never was and never will be.
This seems an interesting point and one I share. Yet it seems equally unethical to enable the corporate extractavism that we now see. It's time the "users should have the freedom to do what they want with software" be updated to something like 'users and makers should be free of coercion and exploitation by software.' What, after all, are the grounds for such freedoms? Are they issues of property? Or are they ones of the dignity of the persons involved? It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent. In personal actions, many act as if they believe this. Yet corporations consistently do not act with those values. You're right: we should strive toward a system not in which it's viable to create businesses out of FOSS but in which both users and developers are not exploited or used unwillingly.
>Yet it seems equally unethical to enable the corporate extractavism that we now see.
If someone uses and benefits from your product, at what point does it become "unethical extractivism"? If I as an individual figure out a way to build a business centered around your product that you make for free, is that already unethical, or is it at a later point?
>It doesn't seem controversial that we tend to find it problematic if another uses us as means to their ends without our consent.
But you gave your consent by publishing software for anyone to use.
> What Free Software always was is an ethical movement—one which didn't need to prioritize income streams because the point wasn't sustainable development, it was user freedom.
This actually illustrates the key flaw in Stallman's understanding. To him, "user" encompassed both humans and megacorporations. But a corporation is an abstract legal convenience, cannot feel the pain of being "thwarted" in its use of software, and thus, want freedom. Freedom is only an ethical good for humans.
Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself. Encouraging otherwise borders on encouraging exploitation.
tl;dr Nobody should go broke to enrich Bezos in their spare time, and encouraging THAT is unethical.
Stallman's reasoning wasn't flawed (at least, not in the respect you state). Corporations are simply a group of humans. I don't think there's a good argument to be made that humans should have a right to X, but suddenly lose that right when they get together as a group.
> Further, I would argue that providing megacorporations with unpaid labor is deeply misguided, if not actually unethical itself.
Nobody is "providing megacorporations with unpaid labor". People are making an effort to put something out there for the benefit of the entire human race, and if that includes corporations that's fine. Not one person is harmed if Amazon takes my open source project and uses it to turn a profit, even if they make it into closed source. My project remains freely available for the benefit of all, just as it was before Amazon used it. So who exactly has been harmed? Not me, I'm in the same state as I was before. Not my (non-Amazon) users, they are in the same state as they were before. Not Amazon, of course. If every single person is no worse off or even better off than before, I don't see how you can argue that the corporate users are doing something unethical. It seems to me that really this isn't about ethics, but is about "we don't like those icky people" masquerading in pretty sounding language.
> tl;dr Nobody should go broke to enrich Bezos in their spare time...
Nobody should go broke to make open source software, period.
Fully agreed. This attitude—that someone making money off my freely published work is somehow hurting me—was, I think, best captured by the inimitable Matt Mullenweg in his response to DHH [0]:
> DHH claims to be an expert on open source, but his toxic personality and inability to scale teams means that although he has invented about half a trillion dollars worth of good ideas, most of the value has been captured by others.
There's a certain type of open source maintainer that is in it for the money—in it to "capture value"—and those people see it as a personal affront if someone else "captures" more "value" from their project than they do. This is not a healthy way to approach life, and it's not an effective way to approach free software. It's especially not an effective way to approach Open Source, which rolls back the GPL's copyleft provisions and makes it very explicit that you're doing this work for the collective benefit of everyone, including people who want to make proprietary stuff on top.
[0] http://web.archive.org/web/20241014235025/https://ma.tt/2024...
> So who exactly has been harmed?
Society, because your free work gives big tech the continuous headstart to focus on bottom line and forget about externalities. Look at current society and how much everyone is cranking their tech out fast as possible, including free software folks who start coding on the first hint of an idea. Starting hobby, then comes popularity and subsequently big tech adoption (read: harvesting of low-hanging fruit) so they can do more of their thing: ruthless value extraction.. from society. We are not talking healthy circular money flows, big tech is billionaire class leaning stuff, imho.
> Corporations are simply a group of humans.
This is incorrect, and it's obvious with even a little bit of reflection.
Corporations are effectively unkillable, for starters. No corporate charter has been revoked since the 19th c. iirc.
Corporations cannot be jailed, for another, and extend their limited liability protection to the people under their umbrella. So corporations have way more latitude to commit crimes and escape punishment than a human.
Corporations lack human morality. In fact, if you believe in fiduciary duty, corporations can, and have been, sued for failing to pursue profit above all else. In a corporation, this is "good"; in a human, this is psychopathic. And the humans making these decisions enjoy diffusion of accountability.
In fact, this distinction between humans and corporations was well understood back in the day; it wasn't until court decisions like Santa Clara County vs Southern Pacific Railroad, that the fiction of corporate "personhood" really took off.
----
> Nobody is "providing megacorporations with unpaid labor".
That's literally what FOSS used by AWS is. Unless Amazon employs you, they didn't pay for it. You might not personally mind it, but it's still unpaid labor by definition.
> Not one person is harmed if Amazon takes my open source project and uses it to turn a profit, even if they make it into closed source.
Again, your personal opinions are not universally shared. Lots of people are trying to do FOSS, pay their bills at the same time, and don't want to work for a FAANG. They're most definitely harmed by free-riders who could be paying, like AWS.
Even worse, I suspect that all the free hobbyist FOSS labor artificially depresses dev salaries, hurting everyone else. Otherwise, the FAANGs would have to hire people to replicate what they currently get for free.
So while it's fun, and I certainly do my own fair share of FOSS, I'd prefer a completely different license environment. Honestly, I'd love to see a switch to noncommercial/commercial distinction. I'm not sure AGPL/commercial dual-licensing cuts it.
Well, stallman would probably advocate for the AGPL in such cases, which the megacorps are still wary of.
Sometimes I wish I could upvote twice in replies like this.
Many open source developers has misread the room and thinking the environment is still like it was 15~20 years ago where open source software were the works of hobbyists who has a well-paid day job and only here for street credit.
You know who read the room correctly? GitLab. They've found a balanced way to offer their product under an open source scheme while keeping their lights on. They've earned trust as well as income, that's a job well done.
If one wants to live off of their open source work, then they need to run it as a business and perform appropriate business tricks. Otherwise their own effort may one day become their own rip-off. Not saying anything sinister, but fairness is a balancing game, if you hard work don't treat you well, then it's unfair too.
GitLab has collected a few severe CVEs. I would choose "v4 final final actually final" folders as a versioning scheme before I used them. It is surprising to me that they have any users at all.
What does that have to do with whether it's a successful business?
Copyleft licenses are supposed to prevent to an extent this sort of free riding, but they are no longer "fashionable".
I don't see the point of refusing to add additional (copyleft) terms to a license, only to end up hoping companies act as if the terms existed out of good will.
Companies like Google love the permissive licenses, and go as far as to sponsor MIT/BSD-licensed replacements to common building blocks like toybox.
EDIT: I see that Forgejo v9+ is indeed GPL-licensed.
I released a tiny toy fun project under the GPL. It’s the kind of thing that no one could possible want to monetize, but the first PR was someone pleading the case that I should relicense to something more friendly, like MIT. I’d never before been so instantly tempted to ban someone from a project.
I agree that copyleft is less fashionable these days, but I think big companies have figured out all the tricks they need.
Case in point: Amazon offers a hosted Grafana service, which is AGPL. They may not be able to meaningfully change the code in secret, but they can still impoverish the actual Grafana creators trying to sell Grafana as a service.
> Regardless, it looks like exhibit #187 of FOSS failing for anyone outside of hobbyists and FAANGs.
Forks that survive after splitting off are cases of FOSS succeeding, not failing. Failing would mean closing down, in this case it's replicating with changes, we (the public) are getting even more options.
The idea behind choosing a license like MIT is that people can create forks from your work, requiring not much more than attribution. If what the license calls out as valid is considered a failure in your eyes, don't choose a license like MIT.
FOSS is a distribution strategy, not a business model.
This paints it as if Gitea was not a fork of Gogs specifically to turn a profit out of something they did not make on their own. I might be more sympathetic if they'd created Gitea, but given it's a fork of another project, it looks a lot like they're playing the same game that beat them.
I don’t think this is quite correct. Gitea was a community fork of Gogs, because Gogs was limited by its single maintainer, who was often unresponsive for months. See https://news.ycombinator.com/item?id=13296717
In a way that makes it worse. A community fork that is repurposed by a select few to make money off of work that those few did not do for the most part.
It's not that FOSS fails, it's that unethical corporations worth billions of dollars go unpunished for abusing it (because the law exists to protect them).
FOSS is fundamentally anarchy (the good kind that shows that human beings are not all pieces of shit). Anarchy can't exist in a capitalist society because it shows people that they don't HAVE to live like slaves. They can live as members of tribes, as evolution intended for us.
So as always the organism is originally healthy and successful until the parasite that is capitalism spreads and suffocates it for its own reproduction.
> They can live as members of tribes, as evolution intended for us.
Please, quit the cheap sophistry.
Evolution doesn't intend or plan anything for us, and you will have a very hard time convincing people that we would be better off living in a tribal/clan society than whatever we have today.
Evolution intends in the sense that it follows an abstract fitness function. I didn't think I'd have to explain that here. I know how to implement evolution algorithmically.
And no matter what you think about tribal societies, we still live in tribes every day. You and your close friends are a tribe. Your family is a tribe. Forums and now social media communities are tribes. HackerNews is a tribe. Open source projects are tribes, indeed they fork over ideological differences all the time. Political parties are tribes, indeed they split and antagonize each other all the time. Nationalities are tribes. Companies are tribes. Social classes are tribes. Subcultures and "identities" are tribes.
We are not built to handle global contexts, so we collapse them into tribal ones. We do that for everything. There's always an in-group and an out-group and a hierarchy if we're talking about a cluster of people.
A tribe assumes a strict hierarchy and mobility only though power and violence.
I can agree with you about the issue of societies failing to organize themselves past a certain scale, but this is not a problem with "Capitalism".
Fair, I used a very loose definition then.
My issue with capitalism is fundamentally split in three parts: that profit is the driving force behind action; that short term effects are prioritized over long term ones; and that global markets operate at a scale that does not allow individuals to have any real agency in their environment due to the points outlined in the previous comment.
It just fosters the kind of behavior that goes against my idealized version of what society should be according to my understanding of the conditions in which we thrive.
i.e. it turns people into selfish venal assholes and it destroys our chances at a better future with each passing day
Perhaps I'm also using a wrong definition of anarchy then. But it's honestly the closest label I know for this concept. A less centralized society.
But profit _is_ the driving force of human action. Doing anything voluntarily is by definition profitable, otherwise you wouldn't do it.
This smears out the definition of profit beyond usefulness.
I can pretty much guarantee hunter-gatherers hunt to not starve, children play for sheer joy, and nobody's thinking of profit.
There are better psychological/anthropological terms to apply to human drives than calling them "profitable". That's weird economist thinking, trying to bring everything under their purview.
Worse, it’s an attempt to get us to agree that humans only do things for profit, in order to advance an ideology and make our thought more malleable when an author turns around and starts writing about public policy and ethics applied to things that actually are about profit.
At least that’s what is going on when the schools of “thought” this kind of stuff comes from attempt it. This particular poster might not be. But usually it’s a cheap rhetorical trick, coming from folks who present themselves as simply following logic. Gross.
"My issue with capitalism is fundamentally split in three parts", then you go on to describe things that are not exclusive to Capitalism AT ALL.
Again, please quit the cheap sophistry.
> the kind of behavior that goes against my idealized version of what society should be
Are you listening to yourself? You sound like a college sophomore who is sure has a solution to all of humanity's problems...
> turns people into selfish venal assholes
... and can only assign blame on others.
I can bet you nourish some well-developed fantasies about what you would do if you were given enough power over any "less centralized society", and they are a lot more about imposing your view over everyone than ensuring your small community can prosper and be happy.
> I can bet you nourish some well-developed fantasies about what you would do if you were given enough power over any "less centralized society", and they are a lot more about imposing your view over everyone than ensuring your small community can prosper and be happy.
Damn, you sound very angry for someone who is having a calm discussion on the internet. More importantly, you seem to be assuming a lot of stuff about me but we've never met. And you have no clue about how much of it is right.
So please just, kindly, shut up. You look like an ass.
"then you go on to describe things that are not exclusive to Capitalism AT ALL."
Why are they required to be exclusive? If I said that uncontrolled train crossings lead to more train crashes, would you retort that train crashes aren't exclusive to uncontrolled crossings?
> Why are they required to be exclusive?
They are not required to be exclusive, but it would require that we can establish cause and effect.
If you tell me that your "issue with Capitalism" is that "we have people driven by profit/greed and wealth is unevenly distributed", but a quick look through history tells you we can always find "people driven by personal gain and wealth inequality", then what does "Capitalism" has to do with it?
"A quick look through history" is what I'd expect from someone who skims over a book and completely misses the point because they think they know it all.
Indeed I gave you three constraints but you're only looking at one independently.
When else in history were markets global? Why am I arguing with someone who can't even read?
> When else in history were markets global?
Right, so the fundamental issue is that we are living in a globalized world, which reduces any room for nuance and imposes an uniform and homogenized culture, top-down policy-making, and a totalitarian approach by the ruling class.
Thing is, this would still be our reality regardless of the economic system. Globalism would be a problem even if the Soviet Union had won the cold war.
We would still be subjected to uniform culture, top-down policy-making and totalitarianism.
The people would still be acting by their own personal interests.
People would still favor short term benefits over long term prosperity.
So, again: what does Capitalism has to do with it?
What is unethical about the actions of the corporations who use the software? They did so in accordance with the license.
The fact that Open Source is about sharing, and they don't share. They only take. It doesn't have to be written in legalese somewhere, it's the spirit of what makes Open Source what it is.
And I'd argue that doing something for profit is also against the spirit of open source, but that's a different argument. The thing is that open source is for the most part an effort from hackers, hobbyists and professionals who want to foster a positive ecosystem for people like themselves. To make their passion better and simpler and more fun and more accessible and more interesting and safer and more efficient and more general... So that more people might fall in love with it.
It's not to push a product or to convince people that they need it. And that sentiment comes from the fact that open source is the reason many people got into programming in the first place! Thanks to all the free resources out there. So they want to give back to the community. That's how I feel about it at least.
But then again, when huge corpos contribute to open source it's great because they have a lot of inertia. So I think that's a good thing, it's a positive feedback loop. My previous point is not black and white, even though I am obviously bitter about a lot of things.
A regular user who just downloads a build and runs it on their system (i.e. the most common use case, because it's the one that takes the least effort) also doesn't share anything. Why is it worse if a company does the exact same thing?
Are you purposefully playing dumb or what? If you don't see how the answer is obvious, I'm afraid nothing I say is going to make you change your mind.
Okay, thank you for confirming you have no answer.
Licenses are about legal agreements, not about ethics. Legality doesn’t imply ethicality (nor vice versa). If this was about legality, people would say so.
Then why is there not a file outlining the ethical expectations, alongside the legal agreement? The companies using the products have no way of reading the developers' minds regarding expectations of reciprocity.
The idea really isn't so far fetched, lots of projects today have non-legal outlines of expectations of community members. For a single example, codes of conduct are very common.
I don’t think this is a discussion about what the project owners specifically expect ethically (users would be free to disagree), but about what we collectively find to be ethical or unethical in this space. If there is disagreement about the ethicality, then one party having it written down doesn’t change anything about the disagreement. And there is nothing that binds one party to submit to the other party’s notion of ethicality, unless you turn it into a legal matter by making it part of the license.
Again, this thread is about whether we as a society, or as the software development community at large, consider the behavior ethical or not. It is not about the specific open source developer imposing specific rules.
Which megacorporation abused Gitea here? And how?
I'm sympathetic to some of what you're saying, and I believe the original hacker ethos spurred some of the original FS impulses, but...
FOSS licenses don't, and can't, embody anarchism (or any socialism) because they make no distinction between humans and capital-holding entities, lumping them all under the term "users".
How exactly does that apply? What's the "corporate welfare" here? Almost nobody is profiting off Gitea, especially not big tech. I know using the big tech boogeyman is useful to justify open source projects rugpulling on their licenses, but it doesn't even apply here. Not that it usually makes sense[0], but in this case it's not even something that the maintainers themselves ever alluded to.
[0] projects like MongoDB, ElasticSearch or Redis only became popular because they were OSS, and probably limited competition for years simply because competing with free is hard. only to then switch on their users years further down the line. So any money that they ever got was due to them being OSS in the first place since absolutely nobody would've used MongoDB 1.0 if it was a commercial product.
An interesting aspect of Forgejo is ongoing work on forge federation
https://codeberg.org/forgejo/forgejo/issues/59#issuecomment-...
In an ideal world github and gitlab would also support federation, but I guess that's probably not going to happen.
An alternative solution in the problem space would be going p2p, e.g https://radicle.xyz/
It's a shame "federation" these days basically just means "implement activitpub". So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs). Nobody needs federation between Forgejo and Mastodon - what would that even mean??
> So many projects get caught up in the complicated mess of mapping their data model onto AP, debating about how exactly to map things and writing standard extension proposals....
Well, you either use an existing standard so you can federate with existing implementations, or you come up with a new standard and ask others to implement that. Seems they chose the simpler way, thankfully.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
What about federation between more software than just your own? Once you've done those things, you basically end up with another spec (but informal instead of formal) that others also need to implement. So instead of going the informal way, they aim for the formal one. That does sound appropriate to me.
Slightly besides the point, but for someone who dealt more with decentralized/distributed systems than bloated authentication systems, it seems both simpler and easier to map+implement ActivityPub than implement OIDC+"a few webhooks", but that might just be because of my familiarity.
I'll say that ActivityPub is a pretty simple standard though, compared to what's out there.
When I saw “federated github”, sharing activity feeds is not what I had in mind. I thought maybe making pull requests across instances or things like that.
Forgejo is implementing ForgeFed [1], which is an AP extension that supports creating PRs, issues, etc. across instances.
[1] https://forgefed.org/
I tend to agree that ActivityPub seems pretty horrifying to work with (as an outsider). At least it works, though, and is implemented by a large amount of different projects and not owned by any single one.
> seems pretty horrifying to work with (as an outsider).
As someone who both made my own implementation + hacked on others, what was/seemed to be the horrible parts? It's a pretty simple standard that is basically RSS with some added stuff (very simplified of course, before I got jumped) for facilitating the federation parts.
> Useful federation between Forgejo instances could be solved with little more than OIDC and a few webhooks (cross-instance collaboration, forking, and PRs).
That would only solve the problem of "I don't have an account on this forge yet". The much more relevant problem is identity + reputation. With ActivityPub-based federation you can use your domain-bound identifier to contribute to various projects across servers and gain reputation and trust. If we use OIDC, then it is a lot less clear if the server, you authenticate with, is hosting the real franga2000.
It's already awkward just between Lemmy and Mastodon.
I guess Lemmy could be in the form of issues on the repo and Mastodon would be thumbs up emojis and/or "starring" the repo.
Yeah I wish there was a different protocol if we are jamming everything on top of it.
Over the years I've come to the conclusion that all these UIs on top of Git make little sense. Git itself is already distributed, which goes beyond federation. Exposing a Git repo over the network is trivial with HTTP or SSH. It supports code review workflows via email, though I really like the approach of storing reviews inside the repo itself via something like git-appraise[1]. Integrating it with CI/CD pipelines _can_ be simple, if the pipeline can be triggered by pushes.
Instead we've created these centralized UIs over Git, and are trying to get them to integrate with one another. This seems backwards to me since Git is already decentralized.
[1]: https://github.com/google/git-appraise
There's value in quickly browsing files of a project without needing to clone it first -- especially for quickly linking others to specific lines, API docs linking to implementation, etc. That needs to expose content at every commit, for stable links. So, some sort of a "web git viewer" is very useful.
Unfortunately, the more minimal read-only ones have ended up with far worse UX than the Github clones, or are a scary tangle of shell scripts and/or C. :-(
(Anyone want to collaborate on a Rust-based read-only git browsing web UI that aims for great usability? I'm all in, I want one. I know how to make it handle search etc, I'm not great at wrangling CSS to will or getting navigation right.)
I suspect the reason is the same as the use of local git GUIs and TUIs; git has a terrible CLI, so everyone uses its plumbing, but not its porcelain.
Yeah, there's a reason why stuff like the git manpage generator (https://git-man-page-generator.lokaltog.net/) is funny, and it's because git's CLI doesn't have a learning curve. It has a learning brick wall that you smash your face into.
> the git manpage generator is funny
It would be funny if I didn't mistake it for an actual git manpage.
Hehe. Yeah, I can't think of another tool that's simultaneously popular enough, and painful enough, to warrant a site like https://ohshitgit.com
Perhaps there's a similar site for 'ffmpeg'.
The link you posted looks pretty helpful. I guess my needs for "interesting" git operations are low because I've never felt the need to move beyond the CLI. (Mostly, that is. I do click the colored bars in VS Code to stage commits and then commit from the command line.)
Occasionally I need to search for help when I screw something up. More often the solution is in the git warning message ("You need to 'git pull' before you can push" - paraphrasing.)
I needed something like this 16 years ago at work to manage shared code, tickets, and code review of private code across a team of engineers. Code review for formal quality assurance was the most important need. I started with trac, then Phabricator, then GitHub enterprise. I just checked out git appraise to see how my nuclear and mechanical engineer friends would like it, and from what I see, I'm guessing they would not. We were using eclipse back then so maybe if that eclipse UI plugin still works it could work.
The federation page on the Forgejo Web site (https://forgejo.org/2023-01-10-answering-forgejo-federation-...) is out of date and most of the links don't work. They also used to publish annual progress reports until 2023 (on a Web site that no longer seems to be accessible: https://web.archive.org/web/20240830030315/https://forgefrie...).
Although the last mention of federation in a monthly update was in October, where they stressed that federation was and is their 'highest priority'.[0]
[0]: https://forgejo.org/2024-10-monthly-update/#:~:text=Forgejo%...
FYI: Just last Friday there was a call/meeting to coordinate and build out the federation efforts in Forgejo. More work is coming and more help is appreciated! There will be a presentation at FOSDEM on this topic and there is a matrix room dedicated to Forgejo Federation.
Gitlab has experimental support for activitypub: https://gitlab.com/gitlab-org/gitlab/-/blob/v17.1.0-ee/doc/d...
See also: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
Really looking forward to the federation, hosting Forgejo for my own stuff while having discoverability/issue tracking with other instances would be the best of both worlds. As of now I'm mirroring stuff across self-hosted forgejo/github.com/gitlab.com where the forgejo instance is just part of my self-hosting hobby and not "load bearing".
I think that Gitlab Cells[1] might go into the same direction, there is a mention of federation in the design document.
[1] https://handbook.gitlab.com/handbook/engineering/architectur...
I would expect Gitea to merge back in federation functionality once it's stable if they get some help with it. IIRC that initiative started in gitea and I'm not aware of that level of animosity or divergence of goals between the two?
I’ve migrated over the years from Gogs to Gitea to Forgejo. It’s such an excellent piece of software.
90% of the time, I can get by with hosting my personal git repos on an SSH server I have. When all I’m trying to do is put my Chezmoi repo somewhere that all my computers can access it, Forgejo and friends don’t add much to it. For the 10% of the time when I want to share my code privately with some friends it’s brilliant (and free beats a GitHub paid plan). And if I’m going to have it running anyway for those 10% projects, might as well use it as my personal git repo of record for everything else, too.
For my projects I have been using Onedev https://github.com/theonedev/onedev which has also kanban and code editor
You run that locally on your own machine, or you host it yourself somewhere? If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
I'd never consider running my code editor as infrastructure, but certainly interesting to see that others seems to do.
> If the latter, you just stop programming fully if the internet connection for whatever reason doesn't work?
It's privilege and probably a dose of luck but I can tally up on one hand the number of hours my house and/or phone hasn't had internet in the last 5 years, including total power losses. I also wouldn't run my editor as a hosted service but I can understand why someone in a similar position might take that gamble. It's certainly no bigger of a risk to me than being limited to working on something physically at a workplace and needing to rely on transportation to get there, which also has maintenance concerns and infrastructure congestion and reliability issues that have caused more productivity losses to me than my utility providers ever have.
I just install the container remotely, cicd remotely etc and code locally. My use case is the opposite, I might need to do some adhoc support and not have the laptop with me so then I use the online code editor
I've used Github's built in VSCode for quick one-line PRs or docs cleanup. I'm lazy enough to appreciate the feature even if I would never do deeper work in it.
Not my thing but I see why others would like it. Forgejo is freaking tiny by comparison resource-wise, though. It’s a Go program that runs comfortably on a Raspberry Pi with a dozen other services. That alone makes it super attractive to drop onto any spare computer you have laying around.
My first stab at running a git server was Gitlab CE (because I was using it at work.) I tried running it on an Atom based server with insufficient RAM and it just crawled. Page loads just timed out. I switched to Gitea and it was a breath of fresh air.
Forgejo got to my attention when Fedora chose it for their repo server. My needs are pretty simple - just some centralized file storage of notes and some source code. I've tested a migration from Gitea 1.21 to Forgejo 9 and it was frictionless.
I'm seriously consider migrating, but I still wonder which will be better supported (and suitable for free-as-in-beer use) in the long run.
I wonder about that, too. I’m still on Forgejo 7 which hasn’t diverged too much from Gitea, but there’s going to be a decision point soon.
When I looked recently, it looked like Forgejo was getting much more activity. If I had to guess, I think it’s going to be the leading fork.
Gitea 1.22 will be the last release with guaranteed migration support to Forgejo. The next Forgejo LTS release, v11, is due out around April. Migration from Gitea 1.23 will not be supported, and since it was released in December those on the fence are now at the fork in the road.
You still have time to figure out what to do, but you'll need to choose sooner than later.
https://forgejo.org/2024-12-gitea-compatibility/
Yes, I'm aware of that. I'm on a Gitea version that will migrate easily (and have confirmed that) and will not upgrade or migrate until I have decided. (I am leaning toward migrating to Forgejo.)
Thanks for that. I hadn't followed closely because right now I don't have a real desire to go back to Gitea. I'm glad to know that deadline to commit is coming up soon.
Did you notice any important differences between gitea and forgejo (besides ideology)? Although it seems like forgejo has added actions in the meantime
Gitea also has actions.
https://docs.gitea.com/usage/actions/overview
Gitea actually got actions before Forgejo did. That was part of what motivated Forgejo to become a hard fork instead of just a rebrand—there was some sort of disagreement about the way in which actions were rolled out and Forgejo decided from there to stop trying to be fully compatible.
https://forgejo.org/2024-02-forking-forward/#the-hard-forkin...
I've missed that part. AFAIK both are forked from nektos/act and can't be dramatically different. All this story is an unnecessary dichotomy for me. Still hosting production code on a Gitea instance and will happily pay a dime but didn't get why yet.
I probably worded that wrong, but that was my point. Forgejo didn't have actions for the longest time, so I was wondering if it "caught" up with gitea
Not a thing. I don’t use actions yet, just the primary repo management UI. I don’t know if I could tell the difference.
I initially had a Gogs install, but moved to GitLab because of GitLab CI and some other features. It was a bit too heavyweight in comparison and the updates became difficult to keep up with, so I eventually moved over to Gitea and Drone CI (some might also like the Woodpecker CI project).
Honestly, my eventual next move will be either Forgejo with their Actions https://forgejo.org/docs/next/user/actions/ for CI/CD or maybe going off into the deep end with moving back to Jenkins.
I will never go back to Jenkins. It was my job across several shops over the last decade to keep that thing slogging along and I’m beyond done with it.
For me GitLab CI is a reason to move _away_ from it.
Really? What’d you dislike the most about it? In my experience, the syntax was actually more user friendly than that of GitHub Actions and the file based approach a bit easier to carry across projects than what Jenkins and the likes do.
Drone CI and Woodpecker both felt similar in that regard, at least to me. Though the docs of GitLab CI definitely make me consider it for group projects across an org.
One of my biggest headaches is that the pipeline cache never seemed to work predictably (e.g. not pulling cached data that was available, it uses zip so the permissions are messed up, etc), so I ended up writing my own caching system. It was important for my use case because full runs could take 2 to 3 hours.
Then there is the YAML config which is too convoluted. It took me several attempts to get things right.
What works better, IMO, is to have each CI step as a script or a Make target that can run anywhere (CI or dev PC) and in the CI configuration have a single line in each step that invokes the script.
The tag line isn't the most informative. It took me a scroll or two on the main page to figure out its purpose. (Self hosted GitHub alternative). I'd suggest making that clearer earlier as the word "forge" in terms of software could have a variety of interpretations.
"forge" has been used since "sourceforge" if not longer to describe these kind of hosting-packages.
I guess technically you could have called Redmine, and other systems at the time, forges I think the term took off after that.
The only time I ever see Sourceforge mentioned is in advertisements on /.. I think most young developers today have no idea what it is, if they even know what /. is.
Young developers are still learning the ropes :)
And they have absolutely no reason to know what Sourceforge is.
I'm a young developer, I know what it is. It isn't an excuse.
Excuse? This whole thread is about you people making poor assumptions. Sourceforge isn’t an answer on a history test. At best it’s a cautionary tale but it has been followed by and preceded by so many nearly identical ones it’s not really relevant.
Therac-25 is a name every developer should remember. Osborne computers is another. Sourceforge is irrelevant. Nobody cares.
I used to use libraries that were hosted on sourceforge and I did not get the connection.
You can’t even rely on young devs to get Monty Python jokes anymore. Referring to a website that went away when jr devs were ten is a bad plan.
You’re old, dudes.
Disagree. Refering to GitHub as category-defining would be antithetical to the Forgejo spirit. Forgejo stands on its own.
Disagree. Unfortunately Forge is not a well known category defining term. Using it as a tagline defying the purposes to popularize Forgego.
Yet when posts online described it as an alternative/clone of GitHub/gitlab/gitea it was alsa received with criticism and complains that "what if I don't know what gitea is".
Naming and creating descriptions is not trivial, I wish more complaints would also simply come with proposals of better taglines, so we can bash those ideas quickly in comments and cut that long feedback loop.
Disagree. SourceForge was established in 1999. The term "software forge" was in widespread use, until Github started gaining mainstream attention. But the term "hub" doesn't necessarily always refer to the same thing - e.g. certain adult entertainment website is also using it.
> SourceForge was established in 1999. The term "software forge" was in widespread use...
Not trying to be contentious, but I've got a 5-digit slashdot ID and I've never heard that phrase explicitly used in my entire life as a term of art by software devs, including at or around 1999.
Definitely not saying that nobody was using the term, but "widespread use" is a big claim that requires some substantiation. It absolutely does not align with my lived experience of the time.
Funny that you mention /., I just mentioned it in another comment. Sourceforge bought /. and advertise there heavily - I very much associate the two.
Also five digit /. id, and I would like to remind grandparent and upvoters that 1999 was a long fucking time ago. There are senior programmers who weren’t born in 1999! Why the fuck would they know about Sourceforge? Was it on a special episode of the Backyardigans?
I’ve got a three digit id (/. user number 404!) and I agree.
"Software forge" has a certain explanatory ring to it, but approximately nobody has any clue what SourceForge is, or even less, what it represented back in its heyday. The kids know github, many don't even know the difference between github and git, or slighly less concerning, assume git is a tool from github.
You're objectively wrong in this case - look at all the comments in this thread. Clearly "forge" is not a well known category defining term.
It very much used to be, before Github delivered where SourceForge couldn't (and still doesn't). But the history is still written in project names like GForge, FusionForge; and of course the contemporary SourceHut refers to itself as a "hacker's forge".
I know whatever's written in Wikipedia doesn't necessarily have to be authoritative, but it's worth to check out https://en.wikipedia.org/wiki/Forge_(software)#History
Defining itself as simply an alternative to the mainstream is a not a great way to makes its own identity.
Imagine if Fedora presented itself as simply “an open source alternative to windows”.
Sure, that might be easier to understand for those less in the field, but really doesn’t help it’s own identity.
Forgejo is a GitHub clone. No one can claim with a straight face that it's somehow completely unrelated.
Many of us remember life before Github, and web UIs for other version control systems existed before Git. Github is just a Trac clone and no one can claim with a straight face that it's somehow completely unrelated.
Put Trac and GitHub side-by-side, and they're obviously different in tons of ways. Put Forgejo and GitHub side-by-side, and you can easily confuse the two if you're not paying attention.
Of course there are plenty of elements from GitHub that existed in previous systems in some form of the other, and I'm sure the GitHub people looked at them. But the way GitHub implemented things was a marked shift from what came before (the most significant being the "source-first" view of projects – rather than "wiki first" view of Trac of listing of attributes of SourceForge – and their implementation of Pull Requests).
Why Github and not Bitbucket?
Because BitBucket is a GitHub clone itself (I'm not entirely sure if it started out as such, it very quickly turned in to one).
Maybe because Github was there first. BB was created as the GH clone, for mercurial repos.
Both launched in 2008.
Yes, both launched in 2008 and yet Github was launched first.
According to this archived article[1], there is a quote saying: "It [BB] sports a feature-set much like Github." That is an indication of which one came first and was already a success story on the market and served as a blueprint for BB, which was made in its image with the difference of supporting mercurial, instead of git.
[1] https://web.archive.org/web/20110317200833/http://code.djang...
(edit) forgot the link to the article
And then all software revision control systems / forges have more or less the same conceptual model for their platform, and just adding their specific sauce and some tailoring to specific needs. Some more innovative and deviating platforms from this more-of-the-same approach are Sourcehut (brutal minimalism) and Gitlab (enterprise dev lifecycle, process support). And then there's the general trend for these platforms to become one-stop-shop maximized lock-in walled gardens, aiming to support the entirety of software development practices (while they seem open and gratis).
PS. This trend for one-stop-shop platforms will also see their owners start to monetize the absolute hell out of their existing (and often vast, take Github) 3rd-party vendor ecosystem via plugin marketplaces, app stores, and their platform API's and SDK's, which many of these vendors now think bring along on a free ride.
Calling it a software forge is the correct form. Even if the term isn't that well known. See: https://en.wikipedia.org/wiki/Forge_(software)
Thank you. I was trying to figure out what "forge" meant here.
When I think "forge", I think a tool to turn a raw material into finished product. Ergo, the blacksmith tool that turns iron into a horseshoe.
The software analogy would be turning text source code into a runable binary. Ergo, a compiler or an interpreter.
Github and SourceForge move source code from one place to another. To overextend the analogy, they are more like a combination shop/delivery service. Source code is moved but never altered or transformed.
Long story short, this crusty C/C++ dev thinks forge is a really weird term for a self-hosted, sugar-crusted Git server.
It’s clearly a self hosted GitHub alternative and that’s IMO the way to talk about it. And per other comments, it’s obviously this once you start using it - it’s basically the GitHub interface and it’s great that it is - it’s very familiar and easy to use
After my struggles with trying to keep Gitlab CE (Community Edition) up and running (it needs a lot of CPU and memory) I switched to Forgejo and have not been disappointed. It runs as a rootless container and uses almost nothing, memory and CPU wise. Updating it has been a simple podman pull that JustWorks(tm).
It now also runs actions that keep my static websites updated by running Jekyll etc.
I really like it to have my own forge that can import repos, issues etc from other forges like GitHub, Gitlab etc. and I am looking forward to the upcoming ActivityPub based integration to the wider fediverse.
Having a decentralised, but connected approach to code hosting is what I always wanted to have and now it’s (almost) there.
What is the status of federation support? I imagine cross-instance pull requests and bug reports would make collaboration effortless.
I did my Github -> self-hosted Gitlab -> Gitea -> Forgejo journey over the years, and I haven't looked back.
Forgejo is great and it's probably going to become even greater once federation is done (having distributed forks and PRs across multiple instances solves the fragmentation problem of self-hosted solutions).
And I lost my trust in Gitea once it spun off a for-profit branch backed by VC money (which was exactly the reason why it was forked into Forgejo).
The only thing I lost from Gitlab is the out-of-the-box CI/CD platform. But I could migrate my pipelines to Drone CI and trigger them via webhooks. Just keep in mind that, depending on the complexity of your Gitlab pipelines, this may not always be an option. Anyway, for me hosting a Gitlab server that hogged up 5GB of RAM to serve a couple of small projects was a big no-no. Forgejo takes 500MB of RAM at peak.
Can anyone comment on the code review experience? (I assume similar to Gitea but I haven't tried either).
I recently did some moderately serious code review in GitHub and discovered it's a baby's toy version of a code review tool. It seems it would be unusable for serious engineering work unless you totally design your source control model around making that work, at the expense of all the other things that influence how you wanna manage your history.
I am mostly used to Gerrit which has a very reasonable basic model but a lot of rough edges and some performance issues.
Suddenly I realised I don't think I've ever actually used a review tool I really like! I wonder if our industry is just getting by without one?
IIRC the Gitlab one was slightly better than GitHub but I can't remember too much about it.
I've used Phabricator and GitHub to design nuclear power plant design code... seems pretty serious. Can you tell us more about what's missing in your opinion from making the reviews usable? Curious what I've been missing out on!
I miss Phabricator. Whilst it was certainly overkill for personal use, the additional applications meant I could do so much in one place and have everything integrated. Funny how what we have now, including GitHub feels a step back.
Have you tried Codelantis? It's a review tool for GitHub
Q: “What is Forgego?”
A: “Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.”
?
Without mentioning GitHub/BitBucket/GitLab/etc., how would you describe what they are?
Collaborative development platform with Git repository hosting, CI/CD, and project management features.
I.e. a software forge.
I do think it would be good to have a link or something to explain what a software forge is to people who don't know.
If it doesn't support SVN or Mercurial I don't see a need to try and be abstract. At a minimum it needs to use the word Git because that page is inscrutable.
Also a features page would really help
I have been a software developer for over 30 years, and have never heard the term “software forge” before.
Great! Now let's see if someone really cares enough to make a pull request or whether these complaints are just superficial to have something to complain about.
Source code hosting and version control platform?
"Forgejo hosts source code repositories, lets you track and manage issues (and review code changes), and provides all the integrations you'd expect with CI/CD and similar tooling."
This seems to be a good tagline for a HN audience that kinda clicks a link blind and wants to figure out what it is quickly and move on. But it’s unclear to me why the Forgejo website should care about this type of visitor? Being a “forge” is likely well understood by anyone that is interested in installing this type of software (or they will figure it out because of the context that linked them to the page). None of the features you mention is a good discriminator, as essentially all forges have these features in one form or another, so an interested use will have to look at the details anyway. Being: “self-hosted, lightweight, easy to maintain” those are very important quick discriminators if you are looking at this type of software.
I don't see why it's so critical to not mention Github. That would instantly convey what it is to basically everyone, and it doesn't mean it doesn't have its own identity or anything.
By describing what they do (also, there is no rule you can't mention github)
"A platform to host your git repositories including collaboration features like issues, discussions, and a projects page to track important parts of your code base. All able to run on your server local and private."
Git hosts with proprietary features
Repository Hub
Their communication really is all over the place. Even the name is really awkward in English.
(And yes, not everything should be forced to be English and it's apparently supposed to be Esperanto; but nothing else on the site is so that's not how most people will parse it).
Checking out https://v10.next.forgejo.org/explore/repos , the main thing I notice in comparison to GitHub is how fast this is. I wish GitHub was so fast.
There are only five pages of repositories there, so it's no surprise it responds quickly. We've been running gitea for several years, and when you put enough data into it (repositories, issues, comments, etc) it doesn't feel as fast anymore, although most pages still render within 500 ms. For example, opening large-ish issues can stall the server for a second or two (it reports rendering time in the footer, so I'm sure it's the server).
Click on any repo from: https://codeberg.org/explore/repos
It's very speedy. Not as much as sourcehut, but you get a nicer UI. Github is becoming slow enough to meaningfully detract from productivity.
I noticed some surprising load times on Codeberg’s Forgejo instance. For example:
- The first page of releases (out of only 63 releases total) takes 3–5.5 seconds to load: https://codeberg.org/forgejo/forgejo/releases
- The issues page is faster at ~1.5 seconds, but still a bit slow: https://codeberg.org/forgejo/forgejo/issues
- The commits page for the main branch (22k commits) is much slower, taking over 11 seconds: https://codeberg.org/forgejo/forgejo/commits/branch/forgejo
These load times were surprising to me given the relatively small amount of data being loaded (just the first page of results)... It feels like there could be an inefficient query at play here? The HTML responses aren’t huge (~400kB), and my ping to Codeberg (~125ms, US<-->Berlin?) shouldn’t be a major factor when just loading a single HTML document without factoring in other resources. I also have gigabit internet, and while there could be bottlenecks between here and Europe, they surely wouldn’t be responsible for slowing things down to this degree.
For comparison, I’ve run Gitea on a local server, and it’s been lightning fast, even with larger datasets. For example, on a test with the Linux kernel repo (1.3M commits), Gitea rendered the first page of commits in under 500ms. That’s a stark contrast to the 11 seconds it took on Codeberg’s Forgejo instance for just 22k commits.
I wonder if this slowness is more of a Codeberg hosting issue or something inherent to Forgejo, but I haven't tried Forgejo locally.
If you want an explanation for the slowness look here: https://forgeperf.org/
I believe Tree (worst case) is the codeberg slowness when viewing the commits page.
It agrees with what I was seeing, but it doesn’t really seem to explain much. I still don’t know if it is Codeberg-specific or Forgejo-specific, or why either of them would be slow for this task when Gitea local to me can go much faster (even accounting for ping latency).
I don't know if that's the whole story? Sure, GitHub has more data to process (and way more compute), but even when switching between tabs within one repo (going from code to pull requests, for example) GitHub is still much slower even though its query shouldn't be affected by the number of repositories it has.
I have around 1.2 GB of compressed git commits on disk, still fast on an ancient Intel E3 1275-v6 with 64 GB of RAM and 2 TB Intel P3520.
Version 10 also now without any startup errors due to slightly wrong sqlite database structure.
Together with vscodium a joy to use.
Now picture it running on-prem !
Can anyone who migrated from Gitea to Forgejo explain the differences in usability? I understand the fork was driven by licensing/project ownership concerns but it's not clear to me from reading the website how different the end product is now. I believe Gitea is still being actively developed.
I host a private Gitea instance (mainly to mirror all my GitHub stuff) so wondering if it is worth migrating.
I evaluated it again a couple of weeks ago and there are basically no differences right now (besides a few cosmetic ones) because the hard fork happened just a few months ago. Stick on 1.22 for the time being, it's the last version from which Forgejo supports in-place upgrades. You'll have to transfer data half-manually or perform deep surgery on the database if you upgrade past 1.22 and then decide to switch forges.
Although the next version of gitea should include support for full mirroring from GitHub (so periodic synchronization of new issues, PRs, etc), not just (code mirroring XOR one-off full copy) like it does right now. This might be of interest to you.
A lot of their early value-proposition were saner security defaults and additions to increase confidence in the software's security. A lot of the changes were attempted to upstream into Gitea, but not everything made its way in. They were a soft-fork for a while before hard-forking, and even after the hard-fork continued to sync changes from Gitea where possible.
Forgejo v10 is the first release I've seen where there's been a focus on tiny UX improvements (versus trying to remain compatible with Gitea). I'm hopeful these will continue to come, but it does still feel essentially identical in appearance and functionality with Gitea.
They have a FAQ (https://forgejo.org/compare-to-gitea/) TLDR: Forgejo is free software, prioritizes security and stability over new features and is actively developing the federation module (thus working to enable communities of federated forges)
I wish they would have chosen a better name. Honestly if I have to install a Git server one day I’m gonna install Gitea, not a tool I can’t even pronounce.
Names are important, this is why I also don’t use DuckDuckGo.
The reasons for forking from Gitea were also a bit weak in my opinion.
> Names are important, this is why I also don’t use DuckDuckGo.
You won't use DuckDuckGo because of the name? DuckDuckGo is so tricky to write on mobile that I copy pasted from your comment, but that doesn't stop me from using it. For me, googlability of names is important, but otherwise I don't care.
I'm really curious about your reasoning. Does it offend your aesthetic sensibilities? Do you think people who would choose such a name can't be trusted with search? Or something else entirely?
> Does it offend your aesthetic sensibilities
Yes. I’m completely aware it’s irrational and probably a bit dumb, but I don’t want to use something with a name I actively hate. Some names are "meh" or boring and that’s ok. But for DuckDuckGo and Forgejo I have a visceral reaction against their name.
DuckDuckGo is an even worst offender because their logo is ALSO dumb and terrible, and I don’t want to see it.
Thanks for the reply :)
Use ddg.co on mobile.
It redirects to DuckDuckGo, the name is still written full size, and their stupid logo is still there.
Give me ddg.co or duck.com with no redirect, no branding and no logo and I’ll use it.
So what search engine without branding and logo do you use?
Not my point, I don't care if the search engine has branding and a logo, I just want it to be not cringe.
Well, there is this looking not cringey for me: https://lite.duckduckgo.com/lite
Or ddg.gg - quicker to type.
duck.com too
a phisher's dream: anything remotely related to ducks might be a real domain
> a tool I can’t even pronounce
jazzyjackson provided the pronunciation guide in a comment above:
> forˈd͡ʒe.jo, to my midwestern ear, "4 Jay yo"
It's totally OK for a project to use words from a foreign language. "Linux" is derived from Finnish Linus (/ˈliːnʊs/) and pronounced /ˈlɪn.əks/, unlike the English Linus - /lɑ́jnəs/.
IMHO Forgejo should have the IPA pronunciation spelled out on the landing page.
> this is why I also don’t use DuckDuckGo
Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself? "Bash" is a play on "Bourne" and "born again"? Silly names are a part of the hacker culture, remaining playful despite the product having huge impact brings color to people's lives.
> Just how silly "Google" sounded when it first popped up? How Torvalds joked that he named "git" after himself?
I knew these examples were coming. Subjectively speaking, these are catchy names, which is why they work. Forjego and DuckDuckGo are not catchy, there's something wrong with their flow. Maybe they're too long or too "breaking", or maybe they don't work internationally (I'm French) somehow, I don't know. I'm not going to write a thesis on why some names don't work, but if someone did I would love it. Silly names are ok but there's a very thin line between "silly" and "annoying". DuckDuckGo definitely crosses it for me.
off: google translate English lady pronounces it as "4 Jay ho" with an H. That isn't how a native English speaker would attempt to pronounce Forgejo, is it?
Honestly, who cares?
I pronounce it Forge-oh. I don’t give a crap if it’s “correct”.
Well, language nerds do, myself included. Also honestly, I don't care when people mispronounce words, as long as they can convey the meaning clearly enough.
Yep, same reason I never used Google, or ffmpeg, or Debian, or Kubernetes.
That's a weak reason and you know it.
It might not be a very strong reason, but quite enough to pick the original project which also has more development effort behind it (and is still used by Blender FWIW, I don't think they have any plans of migrating). I understand your first language is German. Figures. The name is unpronounceable and feels weird to me also. If we ever migrate from gitea (although I currently see no reason to do it), I'll have to pick some generic term and introduce it to others under that name.
> I understand your first language is German. Figures.
I assume your argument is: “Everyone who had to learn English as a second language is so used to completely random pronunciation that they won’t complain about anything anymore”.
It's just that German is close enough to Esperanto that I'm personally not particularly interested in what a German speaker thinks about the name. Ask a Mandarin/Japanese/Arabic/Ewe/Telugu/etc. speaker what they think.
(My first language is quite far away from both English and Esperanto, probably should have mentioned that in the original message.)
Maybe, but the pronunciation of the forge part is essentially just the English one (at least much, much closer to an attempted German pronunciation).
The jo part is close to German though, so maybe this is why it’s not too bad for someone who knows English and German. And everyone else gets to dislike at least some part of it :-)
I think they don't.
I know. But I don’t want to use something with a naming sounding weird that I actively hate, especially when there are alternatives with a better name.
Clearly Postgres is not a good database and you will wisely use any other. I can see real advantages to this. It saves you so much effort and time. In fact, it allows you to make no effort at all.
I have never heard anyone mispronounce postgres. It's even more straightforward than Gitea, which native-roman-language-speakers might pronounce "git-tay-ah"
You're missing the fact that the name is not even Postgres, it's PostgreSQL, /ˌpoʊstɡrɛskjuˈɛl/ POHST-gres-kew-EL. It's so awkward people actively avoid even typing it!
https://www.postgresql.org/files/postgresql.mp3
Why? I don't think Postgres is a bad name, it's not great but not terrible.
> I can’t even pronounce
Even if one is somehow monolingual, forgejo is a perfectly fine word in English. There are even multiple ways to make it sound funny (forge-joe, forge-yo, etc).
for-get-hoe
I’m working on a git collaboration server that doesn’t require a git remote.
The premise is to leverage format-patch with an ssh app and then rely on range-diff:
https://pr.pico.sh
I’m curious what others here think
This is more or less how Phabricator (dead, but lives on as Phorge[1]) works. It uploads/downloads patches via HTTP.
IMO, using Git remotes but with a one-review-unit-per-commit approach like Gerrit has a much better UX. Shipping around diffs has all sorts of sharp edges, especially when you stack multiple changes or binary data, and you end up reinventing native Git functionality but worse.
Phabricator started out as "paste your diff here" and eventually ended up with a CLI tool that reinvented half of the Git CLI.
[1]: https://we.phorge.it
I think it is an interesting take. It might be nice to point folks towards https://github.com/picosh/git-pr it has a better explanation.
So this is like the email source diff/patching workflow but extended to use ssh instead?
I try and limit my ssh access to servers and endpoints that I control. The attack surface for ssh is actually quite large.
It seems since you are shipping a patch, that it could be signed with your ssh key, but posted over https. This would make running a server way way more portable. Everything else about it seems quite nice.
Since the language is Go, creating an https service should be just as easy correct?
I like the idea of dynamic RSS streams with patches flying around.
https://www.phind.com/search?cache=izzjsrslnqwrwmh3mtxwyrx4
Exactly. People don’t struggle with format-patch, they struggle with integrating patches into their email clients.
Our design philosophy is to not require the project’s git repo in order to enable developers to collaborate.
We are also trying to make this service a supplement to other code forges. Competing with GitHub is a huge uphill battle, instead I’m thinking of this service more as a patch-bin instead of a git collaboration tool for corporate entities
I like the concept of patch-bin, great description.
Ex-meta engineer here. I miss their internal GitHub which is a mercurial fork. They have so many awesome features like layered PRs.
That is something I have not seen anywhere .
Does this have a CI/CD solution? I don't see anything from skimming the user docs.
It does, called “Actions”
https://forgejo.org/docs/latest/user/actions/
Neat! Thanks. I see this is located in the docs between "comment via email" and "message templates". If the devs see this, perhaps adding more buzzwords would be helpful to discovery.
Yes, you need to spin a forgejo runner
they are currently developing Forgejo Actions[0], or you can use the existing Woodpecker[1]
[0] https://forgejo.org/docs/next/user/actions/
[1] https://woodpecker-ci.org/docs/administration/forges/forgejo
The project is amazing
The name of the project is horrible
Looks interesting but I’m not quite sure exactly what it is based on what I am seeing on the front page.
I'm not sold on Forgejo as a better alternative to Gitea. The Forgejo fork was completely unnecessary. The trigger behind the fork was the Forgejo authors tried to add their own copyright header into a patch contributed back to Gitea. They (Forgejo/Codeberg) followed it up with a lot of misinformation on FOSS e.t.c. some of which is still on their Gitea comparison page that ended up fracturing the community.
Some Codeberg admins had at some point threatened to blanket ban certain types of projects, notably anything slightly related to blockchain tech and that has always made me cautious of their site.
It's not clear from the landing page whether it's a git code platform / mercurial / entirely new VCS. I wish it was clearer (looking at the Readme, looks like it's indeed a git hosting platform).
I don't really care about the governance model as a user seeing this landing page for the first time, so I wonder why it's so prominent, vs telling me what the actual product is.
The governance model is the reason for its existence -- Gitea went stupid proprietary, so this is the rebel alliance being proud of being the rebel alliance.
It sounds like this is trying to coin a new term. I hadn't heard the word forge used to mean an all-in-one git+issue tracker+project mgmt+etc. suite before.
The term is decades old at this point. It doesn't seem to play well outside of the older open source communities, now that github has xeroxed.
It is not new. I have heard that word for more than a decade already.
I guess you need to know about the foss ecosystem to know it.
I also knew it but look at the number of comments saying "what is a forge?" here - it's clearly not a good description.
Yeah, it is funny to read all the assertions that everyone knows what a "forge" refers to in the middle of all the threads wondering wtf a "forge" is...
It is not new, but also not ubiquous enough to express something everyone understands.
Trying to get "forge" across as some kind of defacto term just adds noise to the product description, I think.
Once upon a time, a lot of software was released/available through "source forge", which is pretty self-explanatory in the context of software publishing. Then a decade ago, SourceForge shit the bed and destroyed its reputation. I'd bet that most of the developers saying they've never heard of "forge" in this context have entered in the industry in that time.
https://en.m.wikipedia.org/wiki/Forge_(software)
That Wikipedia page was created in April 2008.
> Examples of such services are: Sourceforge.net, GNU Savanah, Google code
https://en.wikipedia.org/w/index.php?title=Forge_(software)&...
Ever heard of Sourceforge?
This is a bad association even for people that recognize it. Presumably there were good years but most will probably remember the ugly endgame with awkward UX and weird ads masquerading as fake download links.
This is such an interesting thing of generational difference, since I remember sourceforge fondly before the crazy era of so many ads.
I don't remember any era of sourceforge where it had good UI.
I also don't remember anyone ever calling it a "software forge".
Now that I think of it, Sourceforge is perhaps the first good example of enshittification in this domain that I can think of.
The thing about enshittification is, first you need to eyeballs and brand, before you can sully it. Sourceforge was great for a while.
> Ever heard of Sourceforge?
Yup! That clears it up. It’s the site that serves lots of ads and binary packages of some old software. At least as of the last time I looked some years ago.
Ok then, not sure I would want more things like that today to self host, but to each their own.
The first time I heard that word was in Sourceforge, decades ago.
It’s not new, it’s outdated and they’re trying to make it come back.
I think this is a great peace of software, though i think its mostly tailored for the single dev, or business case for closed source software, but much less a software peace that allow for great community building. I think this is because of:
a) The network effect that you inherently get with for example github b) The barrier to create accounts on yet another platform to contribute.
In that regards i find the original way of just using email's to send patches just such a brilliant idea, because at least it eliminates my second point completely. That's why i think sourcehut [0] is such a nice idea at least in theory. Though now you have to teach people not only how to use "git" but also how to use "git" via email :D
https://sourcehut.org/
Gitea and Forgejo support OAuth integration and AGit Flow*, which is a breath of fresh air compared to the connected "fork" and PR strategies. It's a good middle ground between the "modern" method and email collaboration. With some UX tweaks it could become very accessible for many.
Available platforms like Codeberg provide the option to sign in/register with GitHub and GitLab auth, so needing "yet another account" has become a much weaker argument.
* https://forgejo.org/docs/latest/user/agit-support/
can anyone share what the benefit is over using a self hosted repository host over a service like github/gitlab? obviously you get more power over the interface & such but are there truly any gains over using the larger platforms?
A self hosted repository host gives you the ability to develop software projects without giving up privacy or locking you into a service you don't control.
Aside from the whole self hosting ethos, if you are hosting it from a home server and you are the primary user, you will get a nice performance boost. Downloading binaries, cloning repositories will be instant. If you use CI, it will be running on an actual machine rather than 10% of some 2GHz cloud CPU.
I regularly have to upload multi GB images to a VPS and it's very annoying when it takes like 10 minutes.
It's very useful for companies - more control, don't have to host your code externally, and you don't have to pay (well, ish; we ended up paying for Gitlab Premium, but that doesn't exist for Forgejo).
From the top of my head with dozens of others:
- Not all projects are suitable for hosting by third parties (you may not want to give away the special sauce behind your wannabe next trillion dollar company, or you may be handling sensitive or confidential data like medical records, etc)
- You are immune to the trending process recently referred to as enshittification that consists of providers in a consolidated market like this one giving you an increasingly worse experience to compel you into more expensive plans, i.e. you gain independence and control
- It might be a competitive advantage to your business to still have the lights on when inevitably the centralised platform becomes unavailable to most (think of trading and events like crowdstrike)
You just have to pay for the hardware instead of going onto crazy expensive fee schemes.
Downtime when you can afford it (for us it's in the middle of the night, and very rarely), not in the middle of the working day when GitHub fucks up yet again.
Maybe privacy, outside of that, same client, so not much.
we are considering moving from gitlab to forgejo. it's not a immediate concern but i think the days of gitlab are numbered with recent change in top management.
I think Gitea not being maintained via Gitea was reason enough to fork it— I am glad Forgejo did!
Been using forgejo for years to maintain mirrors of GitHub repos I like.
Works great. Easy to set up (especially on nixos)
Is fogejo the platform that codeberg uses?
Yes
Who owns the Forgejo domains and trademarks? > The Forgejo domains are in the custody of the non-profit Codeberg e.V..
e.g. https://forgejo.org/faq/
And vice versa. Codeberg is the official host of the sourcecode
[dead]
[flagged]
Please explain. Not clicking those links.
Is it a "software forge" or is it just using git locally?
It is similar to GitHub, it's a fork of Gitea whose site has screenshots: https://about.gitea.com/
(couldn't find any on Forgejo's site)