Hacker News new | past | comments | ask | show | jobs | submit login
Ayllu: Hackable Code Forge Built on Open Standards (ayllu-forge.org)
87 points by rapnie 6 months ago | hide | past | favorite | 45 comments



It isn't fast. For example, when I opened https://ayllu-forge.org/projects/ayllu/log, it took around three seconds.


It's running on a tiny dedicated server in the Netherlands with an Intel Atom C2750 (2013) so that's something to keep in mind. By default the log page will return 100 commits which is more than most forges return. Thanks for pointing out the slowness!

There is a good performance comparison of forge performance here: https://forgeperf.org. Ayllu isn't feature complete yet so I haven't run those benchmarks against it.


Some of the pages load quite fast. The particular one you linked does not. I'm happy to give them the benefit of the doubt that there's a few rough edges that could be improved, and that the performance isn't a systemic problem.


The topic is the software, not how the hosting deployment performs under HNHoD.


The first two words on the page are "Hyper Performant". Pointing that out as baseless hype seems fine.


it took 3.89 seconds for me just now even though the hnhod has presumably evaporated hours ago

this post-a-comment page took 1.27 seconds, presumably in large part because i'm in argentina. but that log page took about 2.8 seconds to load just the html, so there's still a painful performance problem there that isn't related to argentina


I think the idea is rather that you would set it up on your own host. What you're mentioning could likely be alleviated by a properly configured caching reverse proxy.


maybe

a lot of backend software doesn't provide cache invalidation signals

a lot of caching reverse proxies don't support cache invalidation, or don't support it efficiently

you can't always prerender all possible views

and this is the kind of situation where a slightly out-of-date page could be a huge hassle or even cause a major outage; imagine pushing a branch to production because you thought it didn't have your latest buggy commit in it

it probably isn't going to be any faster on my own host


Fossil has version control system, bug tracker and wiki in one repository and runs as a single binary. The only thing that holds me back from using it is the lack of plugin for my preferred IDE, but I hope to fix it some day.


Is there a definition of “code forge” somewhere?


Basically platforms that act as a medium for communities to develop/share software.

Github, gitlab, sourceforge, etc

Edit: Wikipedia entry for forge in relation to FOSS:

https://en.m.wikipedia.org/wiki/Forge_(software)



I've been, very slowly, working on a small self hosting setup. I tried Gitea and Gogs but they both felt heavy. I'm currently running cgit and gitolite but cgit is too simple for my taste and while gitolite can be customized to do ci/cd with hooks it's a bit much. This looks like it's potentially right in that middle ground between Gitea/Gogs/Gitlab and cgit+gitolite.

It does seem to be entirely lacking documentation though which is a bit rough.


Personally I would steer away from Gitea in favor of Forgejo (Codeberg maintained fork)


Forgejo is great and has a lot of exciting development going on in the community. The https://forgefriends.org/ community is working on bringing federation into Forgejo via the F3 specification which I find particularly cool. I'm hoping to bring federated features into Ayllu as well once the project matures.


The middle ground you describe is what I'm trying to do with Ayllu. w.r.t. Gitolite currently Ayllu requires SSH access and I'm planning to write a shim that works the same way.

Sorry about the documentation, unfortunately I haven't had the time to write some yet but it's on my list.


sourcehut might also be an option


Sourcehut isn't as easy to set up compared to gogs / gitea. i guess it does have a "lighter" UI than those two.


Gitea have worked like a wonder for my purposes, even when running it on a Raspberry PI (although the raspberry server was for a small group of 3 developers at most). It was still very responsive and didn't feel heavy at all.


I use “heavy” in this context more to mean in terms of features not the process size. Gitea for example expects users to have accounts. In contrast a gitolite “user” is just a public key associated to a name in a config file.

Honestly if I ever expect for this to be genuinely useful I know I should just use Gitea, but I’m still torn between being practical and having fun.


I have been looking for a good alternative for self-hosted git that focuses on being decentralized and easy to self host, so this might be it. Something that leverages a more decentralized identity, so that people can send contributions without signing up to my site.

Currently, I use gitolite + cgit for self-hosting my projects but it has the obvious limitations that I have no public bug tracker nor an email list that people can use for contribution or discussions. This works for my personal projects since people can just send me email patches, but if I ever want to scale the project I am out of luck. Having something like the Sourcehut's todo and mailing list functionality would solve that. I think if this project manages to provide that, I would absolutely love to test it out.

Edit: Just noticed that it has gitbug support, which is really cool! That essentially means that you are able to access your bugs directly from the terminal / whenever you're offline. Afterward, when you are online again you can commit your changes/comments/etc.


Since your comment mentioned it as an aside, I would like to add that git-bug is a very cool piece of software that allows you to embed an issue tracker in your git repo, and mirrors your changes to/from the GitHub/Gitlab issue trackers.

It's not perfect, but it is a very useful tool that I use in my personal projects.

https://github.com/MichaelMure/git-bug


Directories could use some styling to differentiate them from files in the file browser. Also, there doesn't appear to be a way for people submit bugs, but there is a public bug tracker?


I would really love to read a comparison with sourcehut


Sourcehut is great and inspired a lot of my design choices. Although unfinished there is a plugin (ayllu-mail) in place to support email based workflows. Ayllu is meant to be lightweight, hackable, and oriented towards individuals or small software communities (think Github/Forgejo organizations). Although you can self-host, Sourcehut is very large and oriented towards supporting thousands of users. My original idea was actually to fork Sourcehut and create something called Minihut.. but it turned out to be not very fun and I ended up with this project.


For me, I am content with Phorge or Gerrit.

https://we.phorge.it/

https://www.gerritcodereview.com/

Gerrit doesn't have as many features as Phorge but it triumphs code review and code search with low latency.


Are there any sites that host a Gerrit instance for third parties?

Willing to pay for this. Would actually prefer to pay if possible (unpaid forges don't tend to last long unless they're one of the N largest).


No, but probably there is a business opportunity there.


How is the Gerrit self-hosting experience? Easy to setup?


origin of name https://en.wikipedia.org/wiki/Ayllu

> The ayllu, a family clan, is the traditional form of a community in the Andes, especially among Quechuas and Aymaras. They are an indigenous local government model across the Andes region of South America, particularly in Bolivia and Peru.

> Ayllus functioned prior to Inca conquest, during the Inca and Spanish colonial period, and continue to exist to the present day – such as the Andean community Ocra.[1] Membership gave individual families more variation and security on the land that they farmed.[2] Ayllus had defined territories and were essentially extended family or kin groups, but could include non-related members. Their primary function was to solve subsistence issues, and issues of how to get along in family, and the larger community. Ayllus descended from stars in the Inca cosmogony, and just like stars had unique celestial locations, each ayllu had a terrestrial location defined by the paqarina, the mythical point of emergence of the lineage huaca.[3]

there's really not that many free software projects named in quichua; that has to be a point in its favor

i'm not sure about the usability tho. the front page links to https://ayllu-forge.org/projects/ayllu/refs which links to https://ayllu-forge.org/projects/ayllu/commit/bb5e8bf796f49e... which only displays the diffs; it took me a while to figure out that the 'browse' button links to the tree as of that version https://ayllu-forge.org/projects/ayllu/tree/bb5e8bf796f49ed1... which does have the information i was actually looking for: it's 70% rust with the rest being html, sass, sql, and svg

there are some evident bugs; that last page displays the sizes of subdirectories as 'NaN B' and declares that their permissions prohibit reading them ('d---------')

still, at first glance it seems eminently usable, despite the performance problems and obvious bugs


Really appreciate the feedback here, the layout and usability needs some considerable tweaking. There are a few basic themes now that only adjust color but I hope to extend them to support different layouts.


i'm glad it's helpful!

usually theming makes usability worse rather than better, because most usability issues can't be fixed by a theme; instead they need to be fixed by code updates that are another layer away from the user experience when there's a theming layer in between


Does it have code search? Codeberg doesn't and it makes it harder to look around repos without cloning it locally.


Not currently. Implementing search for Git repositories in a web interface is a bit tricky since you need to traverse all of the plain text files at a given commit. One approach might be to put it all in SQLite and then use it's full text search. Still need to figure out a good design for this.


> is a bit tricky since you need to traverse all of the plain text files at a given commit

If my mental model is correct, one would need to do that on first commit (or first push, if someone is populating your repo from an existing local repo), but from that point forward the search indexer is actually notified of changes due to the magic of $(git diff --name-only)


It's totally bloated and so painful to setup your own. Just use Forgeo or Gitea.


What the hell is a code forge? How I hate this mumbo jumbo.


What the hell is "mumbo jumbo"?

I hate it when people use words I don't understand and why should I have to lookup words I don't understand when people could just stop using those words?! I swear the world is against me.


"Mumbo jumbo" has been common English parlance since the 18th century.

"Code forge" doesn't have a dictionary definition, may or may be the same thing as a "software forge", and probably should be defined on the product page. A forum full of hackers might be the place to ask such a question.

Just because we remember SourceForge doesn't mean the abstracted term is clear.


They didn't ask a forum full of hackers, or google, or anyone.

They just complained about something utterly silly, even if they had never heard the term and even if they failed to get it just from context.

Perhaps I'm inhumanly and unreasonably genius, but somehow I've heard it before, and the first time I heard it, I understood it even though I'd never seen it before. It's the kind of goofy term I wouldn't use myself, but I had no problem understanding it. I mean, for context, I'm an idiot who wastes time arguing on HN. I fail basic smart guy just for that.


Is there another obvious term for this? I didn't know what it meant but now that I've learned I find it a valuable generic term for this class of thing.


code hosting


answer to which the standard response that _led_ to "code forge" being a word, is: ok but what about all the stuff that isn't just "git on the network"? Pull requests, basic tickets, eventually some of the CI...

Or framed differently: "What category of software would you describe Github as?"

For all of this, the answer the community came together to find is ... Code Forge.

One extra resource on it: ForgeFed[1], which describes itself as:

> ForgeFed is a federation protocol for software forges and code collaboration tools for the software development lifecycle and ecosystem. This includes repository hosting websites, issue trackers, code review applications, and more. ForgeFed provides a common substrate for people to create interoperable code collaboration websites and applications.

[1]: https://forgefed.org/


It's from Sourceforge. Basically anything like Sourceforge, GitHub, Gitlab, Bitbucket, Gogs, Phabricator, etc. Very well known term.


a centralized service for distributed, decentralized, version control systems




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: