My main gripe was that it was postet by OP as a "Show HN" ;)
Nice work btw always astounded how you keep developing it for so long nearly solo. I was many times intrigued enough to try to switch to OneDev just to try it, but my personal git setup is working too well right now. Never switch a running system runs too deep in me.
Anyway there seem to be discussions taking place so I will cut the noise and stop whining.
These are signs of high growth markets, and how counter-intuitive the exponential growth of the internet has been.
At the beginning we had Github. And that was enough. Then we had Gitlab, and most of us wondered: "who are these crazy dudes that want to compete with Github?".
They were absolutely right, and the market grew so big that they found their own space.
Now, more alternatives keep appearing (like OP's).
It happened the same with Slack or Zoom. When Slack/Zoom came out I thought: who would want to compete with (Skype,hipchat)/(Google Meet, etc). But the markets grew a lot and there was room for everybody.
In the beginning we had the VMS versioning file system [1] (well I had you might be older ;-) And that was enough. Then we got RCS. Then CVS. Then we got SourceForge. And that was enough. Then we got Git!
I feel the same way about logicals. For those unfamiliar, the OS had a distributed hierarchical key-value store like etcd or zookeeper built in, years earlier than these technologies.
Any business that grows eventually gets taken over by shareholders and their goals of maximising profits so they can get their dividends or other benefits. They think their product has become invincible and nothing could sink it. Then when they think it actually might sink they double down on extracting profits.
This strategy is always against the users of the product, so eventually they get tired of it a seek for an alternative.
Then they find an alternative, it grows... and cycle repeats...
It's a sign that GitHub and GitLab are both too heavy-weight for what people want out of them, more than anything. It certainly has been this way with Gogs/Gitea.
I am not convinced that 'not using yaml' and then show a visual ui to define ci pipelines is a great selling point. I definitely wouldn't want to define that through a UI. Instead I think high level of testability of such CI pipelines would be.
At the moment it always commit and push the change and wait how the pipelines acts, rinse and repeat. If you could run it locally and find out the results would be such a time saver.
If you want to properly compete with an existing product that doesn't have a polished UI (e.g. GitLab), about the easiest way you can do it is deliver a polished UI. Unfortunately, OneDev's UI is even less polished than GitLab's.
However, it's a big project and I commend the authors.
I guess the main differentiators that OneDev, Gitea etc. have vs. self-hosted Gitlab is their more focused feature sets and small footprints. Gitlab's minimum 4 cores, 4-8gb of RAM just to run at all is prohibitive for some use cases. I use Gitea as a locally-hosted fallback so critical IaC repos are still available and can be accessed by things like flux in a (local) k8s even if Github isn't reachable. I don't need Gitlab's feature set for that, I could do with plain git repos over SSH, but having a lightweight UI is actually really nice, and I'll put up with some quirks as long as the basic functionality works well.
This. I chose Gitea instead of Gitlab specifically because of the high resource consumption. If OneDev turns out to be a sweet spot in between the two (I really wish I had CI/CD built into my VCS server), I might just switch.
The thing I am still missing is a zero-weight alternative to Github/lab. Most of the task performed on either of them could be done in a completely distributed fashion (issue tracking, CI, etc.), just like git itself. But there has been frustratingly little development in that area, though a few projects exists (e.g. "git-bug", "act").
You mention CI being done in a distributed fashion. Could you elaborate on what you mean by this?
I'm asking as I'm someone who has developed a CI platform [1], and one of its features is the offline runner [2]. The offline runner allows you to run your CI builds on your own computer, and does not communicate with the CI server whatsoever. Is this what you had in mind?
Then the other day there was a generic/abstraction layer to write CI that abstracte over gitlab, circle ci, and GitHub actions (maybe more). I suppose all that’s left is to get some api tokens somewhere and go?
there's git appraise, however I find it a bit immature. I try to use it with a rebase workflow instead of a merge workflow and it completely fails with that.
Apart from the fact that the onedev website is slow as a snail, I'm also a bit iffy about the help documentation's styling. It feels very cramped and tiny. If you compare your help docs [0] with eg. Microsoft's docs [1], the latter is much easier to read and less tiring to look at!
I also notice some outdated stuff like a 14px html and body font so your font size doesn't scale, as well as a fixed, 900px width div for your content. This all doesn't scale. Why haven't you set this up to be a bit more flexible?
> I'm also a bit iffy about the help documentation's styling. It feels very cramped and tiny. If you compare your help docs [0] with eg. Microsoft's docs [1], the latter is much easier to read and less tiring to look at!
wow, let's agree to disagree :D The MS site looks horrible cramped, and the title is waaay too large :P
As a long-time user, I want to show my big thanks to OneDev and its author, for its features, performance, resource efficiency, and most importantly, Robin (the author)'s quick response to all questions and issues. This tool should have its position in DevOps market.
One thing that surprised me: pushing git-lfs files was around 3x faster in onedev on a ~3gb repository with about ~60k files. I don't know whats going on inside gitea to make it so much slower as they both just store data inside a folder.
Not at all. Java the language is not heavyweight (your smart cards and sim cards run Java code inside them!), and the regular JVM can run on pretty low resources.
It's the frameworks and architectural decisions that make Java software feel heavy or light. Very much like with JavaScript, for instance.
Back at some previous job, we ran a lot of small services written in Java; a service consuming 50 MB of heap was considered unusually heavy.
Java unfairly has been given a bad rep since its earlier versions (similar to how PHP still is tainted by its SQL injection vulnerabilities pre PHP7)
Java as you know is translated into byte code and then it is up to the compiler to use JIT compilation when running the code.
JIT allows flexibility to choose how to optimise linkers and references to other libraries which means that it can choose how to optimise the code after Run 1, 10, 100.
Some Java VMs can decide to optimise "fast startup" vs "fast runtime".
This is a nice flexibility and with Java maturing into Java 17 there are more and more optimisations on the horizon for VMs, GC and precompiling dependencies.
I've always thought like you... Until using OneDev.
For me, Java was :
- slow and heavyweight
- dist directory often a fucking mess
OneDev distribution (docker container or zip for baremetal) is clean and very well organized. There are running scripts for both plateform linux/windows. Fast.
GitHub arguably have been turning around a bit and are starting to become more like GitLab. Initially, GitHub just cared about hosting code and enabling social features, while GitLab early focused on becoming "everything" for building services. Lately, GitHub are trying to become GitLab though.
When you eat your own dogfood (or rather, feed it to your own dogs), to demonstrate confidence in your product. You can experience things as your users do, which can help give you a better understanding of how people use your product and the issues they may find.
That was one of the unfortunate realities when developing Riak at Basho: while we used Riak, we didn’t need its massive scalability, so it was hard to find the problems that customers would eventually stumble upon.
https://news.ycombinator.com/item?id=22081419
This was the Show HN. There were already many discussions about onedev here and the resubmissions slowly get out of hand...