Hacker News new | past | comments | ask | show | jobs | submit login
Sourcehut's Year in Alpha (sourcehut.org)
351 points by ddevault 62 days ago | hide | past | web | favorite | 69 comments

I've been following this project a little bit and am very impressed with the tenacity of its author. I'm a quite happy GitHub user, but I do want this project to move forward and succeed so I'll be looking into moving over at least some of my private company repos, and I signed up for the $100 / year subscription.

I couldn't find a way to add company details however, which is a crucial detail when expensing this sort of thing. Turns out you can add these details when you download invoices, in a freeform textbox. So if anyone's thinking of signing up and billing their company, make sure to add relevant details in this box before downloading your invoice! It'd be nice if you could just save this with the account so that when this eventually renews I can just be emailed an invoice with the relevant details added. Another nice to have would be the ability to assign a separate billing e-mail address.

Anyway, looking forward to making good use of this!

Likewise here -- the company I'm at uses github, but I'm moving my personal / side projects to SourceHut. I've really enjoyed the limited time I've spent using it to date, especially the clean interface.

Me too! I started using it after the Gitlab thing recently and I'm loving it so far. I haven't moved everything over yet, but am slowly getting there. I do miss some flashy features every so often, but I like what is there way more than I miss what isn't, so I'm pretty happy overall.

The most impressive thing about this for me is that Drew managed to work on this for 2 years privately and actually get it out there. I'm lucky if I can maintain concentration on a side-project for more than 2 weeks. To then have it pass the first year mark of being a public alpha is a great achievement, and it's an impressive service.

The guy has a tremendous amount of patience. Good work drew =)

Same here. I can put in really good hours in a side project but once the site is online, my ambition totally drops off.


I've been focusing on a lofty personal project for some problems I'm solving in my life, and hope to aid in solving for others. My project is primarily focused on self-hosting, but I would like to offer hosting for those who do not want to host.

Sourcehut is my inspiration for how to handle a FOSS + Hosted project. The financial reporting, UI design, approach to development, all of it is stellar.

I don't currently use Sourcehut but it is a huge inspiration to me on how I want to run my own non-profit aspirations. Thank you Drew. Really.

I've been a sourcehut user for about half a year now and I have to say that it has been a breath of fresh air for me. I have used GitHub and GitLab for years, and detest working with either. I know that both companies have a lot of smart people behind them, but both GitHub and GitLab are horrendously slow to use on my internet connection and packed to the brim with what I could consider anti-features. With sourcehut I finally have a code hosting solution that lets me focus on being productive.

Thanks for sharing those kind words :) can I quote you on that?

Go for it. I'm ~vc in case that matters.


Interesting - as much as I like sourcehut, my only complaint is that it's noticeably slower than GitHub for me. It's not terrible, by any means, but I've noticed it a few times when I push to both.

My guess is that I'm closer to a GitHub datacenter (or AWS region?) because they have an office here in Boulder.

Try again; Sourcehut just updated their pull/push logic to make it significantly faster.

How recent was this?


First push and first pull have been slow here too (first pull was ~19s), but now I'm getting reasonable timings (~2s)

It's gotta warm up the cache. Glad it's working well now!

It could be that I am located close to the data center hosting the site. From my understanding the main server backing the site is hosted near Philadelphia, the city that I live in.

I absolutely adore GitHub and I’m genuinely curious: what are the anti-features you were talking about?

The two biggest anti-features for me are the star system and the contribution activity green tile thing that appears on a user's page. To me personally, both of these systems subtly frame one's commit frequency and stars as a measure of how good they are as a programmer.

I believe these "features" turn the site into a pseudo-social media outlet and allow vanity to creep into process by which communities develop software. It is something that I noticed quite a lot during my (recent) years in undergrad: where many individuals directly equated stars with software quality (in there own projects or the projects of others). I know that those features in particular are only part of the problem (if the problem does truly exist), but they personally made me uncomfortable with the platform and are one of the primary reasons I left GitHub a few years ago.

That's just my opinion though, so take it with a grain of salt.

I like the heat map to both encourage me to do more and to at a glance see when people are active.

I’ve never seen it as a competition not heard anyone and it would be foolish to think so as changing lots of lines has nothing to do with quality of my work. It would actually be nice to filter out contacts with idiots who might think that.

The stars are also something I just ignore and personally use it as a bookmarking tool.

I love how snappy everything is. Sadly, I spend a not-insignificant portion of my day waiting for Jira/Confluence to load. If this could replace that, I'd really be so much happier.

Two suggestions I've got, just from a few minutes of browsing around:

1. I'd like to see more screenshots/videos of features on the main page. Sure I can explore around, but I'd prefer to just have it all laid out for me. I thought the kind of content in the blog post would fit well on the sourcehut.org page.

2. On the subdomains, clicking "sourcehut" brings me back to the subdomain page. I'd prefer if clicking "sourcehut" brought me to sourcehut.org, and clicking the subdomain part brought me to the main subdomain page (so clicking "git" would bring me to https://git.sr.ht/). Just my opinion of course, but it was a tad frustrating that once you click into a subdomain, there's nothing to click to bring you back to sourcehut.org.

Great work! Looking forward to seeing this develop even more.

Thanks for the feedback!

I'm amused that the example screenshot for lists.sr.ht is an email thread from qemu-devel, because we had to ask the person who'd been gatewaying that list to sr.ht to stop doing so: sr.ht bounces HTML email where qemu-devel does not, so people posting to qemu-devel were getting complaining emails from sr.ht and getting confused by them. A "no HTML" policy is fine if the list is hosted directly there, but it doesn't really work if the sr.ht "list" has just been subscribed to some other mailing list hosted elsewhere...

Haha, yeah, sorry about that. I'd been working on first-class support for mirrored mailing lists, but this guy just set this up on his own. I found it because I was poking through the database for interesting patchsets to demo the UI with. Didn't realize until later that it was causing you guys headaches. Hope that all's well now.

Yeah, it wasn't a big deal at all; just struck me funny that that was the example you ended up with. It might be interesting to see how qemu-devel looks if/when you do get mirrored-mailing-list support. At the moment we use patchew for that sort of 'web view of patches': https://patchew.org/QEMU/

One angle that I'm not sure sourcehut even intends to address but am curious how to idiomatically handle: artifacts. Right now I can (and do) host code in (git|hg).sr.ht and make sure that it compiles with builds.sr.ht, but there isn't an artifacts.sr.ht (and I understand not intending there to be, unless you charge by use and maybe not even then), but it would be nice if I could have the full CI/CD pipeline on sourcehut, including building and publishing final packages. So is the right way to do this to post artifacts to a third-party store (ex. S3) and just stick required authentication in using the secrets support in builds.sr.ht?

This is actually planned to be supported soon. I recently provisioned a 64TB NAS for the purpose of object storage. It'll support things like release binaries, builds.sr.ht artifacts & build caches, a github pages-esque feature, etc. I just need to figure out how the heck Ceph works.

Another way of doing it is to run minio federation , might be a worthy alternative to Ceph, which has a reputation of hard to run product.

I've looked into minio, but I think Ceph offers more of the features that I want. I don't just want S3 object storage - filesystem and block device options are both things that Sourcehut would take advantage of from Ceph, too.

I thought ceph had a reputation of easy to run, at least compared to it's rivals in the distributed storage space. (gluster, lustre, et al)

Sure, but when you’re running a service you kind of want to know what you’re running. I’m sure Drew is able to figure out the beginning rather easy, but you kind of want to be able to see pitfalls and common misconfigurations etc. It takes a bit of tinkering :).

Sourcehut needs a graphical history view (akin to gitk or git log --graph; not sure what the mercurial equivalent is, definitely NOT ANYTHING LIKE that "network graph" github has) to be feature complete. I'd contribute but I have more free money than free time; is there some kind of bounty program?

There's no bounty program (or way to financially incentivise particular features at all, really), but since it's an open-source project and accepts third-party patches, you could consider hiring any freelancer to put in the work. Send them to #sr.ht on irc.freenode.net and I'll show them the ropes.

Bitbucket's version of this is still my favourite. I love that it's just right there in the all commits view:


Vs Github and GitLab where you have to go to a special separate network/graph page to see it, eg:


Yeah, Bitbucket's view is just gitk on the web, which is exactly how I like it.

Wow, really beautiful! I wonder how do they do these graphs...

That repository maintainer should've octopus merged those commits in the example...

If you're into reading C code, you could probably check how git's `git log --graph` is implemented: https://github.com/git/git/blob/master/graph.c

A git alias I found somewhere that I really like for displaying a history graph similar to bitbucket's:

  lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

> git log --graph; not sure what the mercurial equivalent is,

`hg log --graph` works

I've been trialing src.ht off-and-on for the past year and it's been a joy to see its steady progress from "git hosting I don't hate" towards something more full-featured. Sometimes I feel like a curmudgeon for liking simple orthogonal tools, since they are often unpolished and user-hostile, but sourcehut is doing a lot to make something more polished and user-friendly without losing the essence of what I like about these tools.

As a new GitLab product manager, I was glad to see among the Updates that dispatch.sr.ht can now build GitLab commits. And we are looking at the mentioned GitLab bug (https://gitlab.com/gitlab-org/gitlab/issues/16491) to assess efforts to resolve; and unblock the ability to run build.sr.ht for GitLab merge requests.

I read the landing page, but I'm still not quite sure what the product is. Is it a GitLab competitor? That's what it seems to be seeing as it supports hosted git repositories, CI, code review, etc.

I'm not sure what "Composable Unix-style mini-services" means.

The mini-services part refers to the fact that each high-level feature - git & hg repos, CI, bug trackers, etc - is implemented as its own standalone web application. The composable part is that you can freely use them in concert with each other to whatever extent is appropriate for your project. Consider that on GitHub, GitLab, etc, one project == one git repo == one bug tracker == one path for merge requests == one wiki == etc. SourceHut's upstream codebase, on the contrary, has several git repos, one mailing list, several CI configs, N bugtrackers where N != nrepos, and so on.

>I'm not sure what "Composable Unix-style mini-services" means.

Each service can be hosted independent from one another I'd imagine. Contrary to GitLab where each service, Git hosting, CI, ticketing, is all bundled into a single monolithic application.

It’s similar to GitLab. The composable mini-services refers to how the individual parts (git, mercurial, todo tracking, continuous integration, email lists, doc hosting, etc.) are able to be run independently.

It's basically software development project hosting (like gitlab), but for people who prefer mailing lists to web apps.

Yes it fits into roughly the same space as GitLab:

"This suite of open source tools is the software development platform you've been waiting for."

- Hosted git repositories

- Powerful continuous integration

- Mailing lists & code review tools

- Customizable ticket tracking

- Task dispatching & service integration

- Markdown- and git-driven wikis

- Sophisticated account management & security

Are there any plans to have a web interface for "git by email" contributions? I think it's really cool to keep contribution decentralised, but it's also nice to have a record on the web of the review process.

Yep, this is planned and in-progress. You can now prepare patchsets on the web for submission via email (check out the video near the top of TA), and code review threads are parsed and shown on the web as well (see the screenshot under the video). The plan is to keep improving this so that you can perform code reviews on the web, which become emails under the covers, which will make for a decentralized, email-based code review system which you can interact with on the web in a fashion similar to GitHub or GitLab PRs/MRs.

One of the things stopping me from using sourcehut is that people I’ve partnered with recently for projects are intimidated by the email system. I haven’t gotten a chance to try that flow yet because of that

I use it for a few solo projects though

For what it's worth, you probably don't want to be working with people who are intimidated by email.

It's not people intimidated by email. It's people intimidated by configuring their system to programmatically send email.

Residential ISPs, for example, usually block smtp ports. You can send via gmail, but that still requires some fiddly configuration. And at least the way I figured out how to do it, it involves a cleartext password sitting on my filesystem, which I'm not too happy about. (It's a password limited to sending email as me, but that's kind of a big deal.)

I would much prefer to push patches to people's projects via my revision control system. It's ok with me if that requires some sort of push-only account.

> And at least the way I figured out how to do it, it involves a cleartext password sitting on my filesystem

git credential allows for programs to query it for credentials based on the server you're connecting to and store it for a configurable period of time in memory. So you don't have to store your password in the config file. You would enter it on the command line when you invoke git send-email and if you run the same command within the configured time period, you won't have to re-enter your password.

Setup builds.sr.ht for ci on a university project (unfortunately we have to use github for the source hosting). It has been an absolute delight to work with and for everyone on my to work with!

Happy birthday Sourcehut!

I'm curious about the builds API. I'm currently writing a terminal client that, given a git repository, will list recent builds across multiple CI providers, give access to build logs, etc. I'm interested in integrating with Sourcehut.

Most CI providers have a REST API that allows listing the builds related to a repository. The API reference for builds.sr.ht [1] does not list such a functionality, however the website offers it (e.g. [2]). Did I miss something, or is this not possible via the API? Are there plans to add this feature?

[1] https://man.sr.ht/builds.sr.ht/api.md

[2] https://builds.sr.ht/~sircmpwn/builds.sr.ht

Looks like there's no "list jobs" endpoint, seems to have been an oversight. Can you file a ticket?


I couldn't find any place to send in the issues with SourceHut. I like the UI, but can't use web-site at all, if i go anywhere outside of my profile it brings in - register or log-in button and link and if I click log-in it says:

> Error logging in > Error occured retrieving account info. Try again.

Can you reach out to sir@cmpwn.com? This sounds like your account confirmation email was never acted upon.

You were right! What a rapid response!

It would be nice also to show the languages the repository is written in, like in GitHub. Also, I hope to see more Go code and less Python. Certainly it will reduce the servers load and less runtime surprises.

Maybe the generic way to do that is supporting tags on repos? So a repo could be tagged "lang:python3 lang:c license:gpl2+ license:mit" (that's: repo contains Python 3 and C code, dual-licensed under GPL2+ and MIT) or something. Granted, that would probably be manually-tagged, not GitHub's automatic guessing approach.

I'm excited for names.sr.ht! Relatedly, a long time ago on an early lobste.rs post [1] about sourcehut, it was mentioned that it'd be sweet to point one's own domain at sourcehut to be able to host your stuff under your own domain. It'd be extra cool if this worked with mailing lists too. Drew, any chances something like this might come along with names.sr.ht?

[1] https://lobste.rs/s/z0sqez/sr_ht_sircmpwn_s_github_alternati...


SourceHut is a really inspiring project.

The first 4 and last 2 screenshots on homepage are blurry on a retina iPhone, but the one in between them is sharp. Some resolution issue?

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