Forgejo: A self-hosted lightweight software forge
forgejo.org
forgejo.org
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/
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
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 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.
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.
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.
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.
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.
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.
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".
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.
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.
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.
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.
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?
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?
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.
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".
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.
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...
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.
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.
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.
> 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.
> 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...
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.
The way I see it, FOSS enables a ton of smaller entities to launch products when they would not have the capital otherwise (see: anything built on Django). Those represent a lot of jobs too! This could be the software version of the Jevons Paradox.
Megacorp are a different problem. They do contribute back to the commons, but this seems like a drop from the bucket of the quintillion dollars they represent. Is it fair? That's a moral judgement, because software being FOSS means its legal in any case.
Of course, a more directly equitable arrangement would be a software co-operative. If prices are tied to usage, then everyone should be able to afford to fund a FOSS project's development at whatever level they can bear.
Eventually-open-source commercial licenses are already a bit like this, in that those who can pay, do so, and those who want it for free, can still get it, albeit delayed by a couple years. Ditto for projects that are funded by bounties, where only funders get access up to some dollar amount, after which it's FOSS to all.
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.
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.
[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.
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.
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/
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??
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.
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.
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.
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.
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%...
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.
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.)
It would be funny if I didn't mistake it for an actual git manpage.
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.)
See also: https://gitlab.com/groups/gitlab-org/-/epics/11247#why
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...
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.
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.
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.
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.
I'd never consider running my code editor as infrastructure, but certainly interesting to see that others seems to do.
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.
https://forgejo.org/2024-02-forking-forward/#the-hard-forkin...
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.
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.
You still have time to figure out what to do, but you'll need to choose sooner than later.
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.
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.
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.
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
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
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).
I guess technically you could have called Redmine, and other systems at the time, forges I think the term took off after that.
Therac-25 is a name every developer should remember. Osborne computers is another. Sourceforge is irrelevant. Nobody cares.
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.
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 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.
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.
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.
GitHub doesn't offer any way to review changes to those things. If the author force-pushes (which is normal and healthy if you are iterating on a series of patches, instead of on a blob of code) there's no way to diff the details I want to look at.
Compare Gerrit where for each individual commit you can diff between two versions of that commit, with a side-by-side UI showing the comments inline that the changes were made in response to.
From speaking to friends I believe this is because "why would you force-push? Just push a new commit called 'respond to review comments'". When I said "but now your commit log is a mess" they say "no, you just squash the whole PR into a single commit when you merge it. So... yes, your commit log is a mess. Bear in mind there is also no support for dependencies between PRs. So basically, you are throttled to one in-flight PR per area of work at a time. So... your commits are gonna end up being huge. Not really viable for a large project.
I have noticed that there are major projects like k8s underway on Github and they seem to get by, so maybe I'm missing something. I know that Go allow PRs but if you wanna do serious contributions they will funnel you to contribute via Gerrit instead.
A: “Forgejo is a self-hosted lightweight software forge. Easy to install and low maintenance, it just does the job.”
?
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.
Also a features page would really help
(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).
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.
- 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.
I believe Tree (worst case) is the codeberg slowness when viewing the commits page.
Version 10 also now without any startup errors due to slightly wrong sqlite database structure.
Together with vscodium a joy to use.
I host a private Gitea instance (mainly to mirror all my GitHub stuff) so wondering if it is worth migrating.
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.
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.
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.
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”.
(My first language is quite far away from both English and Esperanto, probably should have mentioned that in the original message.)
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 :-)
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?
Give me ddg.co or duck.com with no redirect, no branding and no logo and I’ll use it.
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.
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).
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.
I pronounce it Forge-oh. I don’t give a crap if it’s “correct”.
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.
That is something I have not seen anywhere .
The premise is to leverage format-patch with an ssh app and then rely on range-diff:
I’m curious what others here think
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.
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
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
[0] https://forgejo.org/docs/next/user/actions/
[1] https://woodpecker-ci.org/docs/administration/forges/forgejo
The name of the project is horrible
I also don't remember anyone ever calling it a "software forge".
The thing about enshittification is, first you need to eyeballs and brand, before you can sully it. Sourceforge was great for a while.
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.
> Examples of such services are: Sourceforge.net, GNU Savanah, Google code
https://en.wikipedia.org/w/index.php?title=Forge_(software)&...
I guess you need to know about the foss ecosystem to know it.
Trying to get "forge" across as some kind of defacto term just adds noise to the product description, I think.
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.
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
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.
I regularly have to upload multi GB images to a VPS and it's very annoying when it takes like 10 minutes.
If you're going to use SQLite, make sure you enable the WAL mode on the database. It makes such a huge difference to performance that I don't know why it isn't the default.
If you're going to have multiple concurrent users (or even just one user but a large number of background writing jobs, such as mirroring public repositories), then seriously consider using Postgres. Yes, theoretically it's possible to make SQLite backed applications work fine in this scenario, but Gogs/Gitea/Forgejo has not designed their application like that, so it falls over at surprisingly small sizes and migrating after the fact is painful.
- 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)
Works great. Easy to set up (especially on nixos)
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.
(couldn't find any on Forgejo's site)