~sircmpwn/sr.ht-discuss

2 2

Feedback of NixOS+Nix+Haskell sr.ht user

Magnus Viernickel <contact@mangoiv.com>
Details
Message ID
<5511cdd3-8448-5eeb-2a7b-b6759a9f4d8e@mangoiv.com>
DKIM signature
missing
Download raw message
Hi, I'm using sr.ht for a while now and I wanted to give some feedback 
about the service:

- the paste and git services are both awesome, I miss nothing there and 
they have a very intuitive UI and API
- the hut cli tool ist awesome (only thing I'd like to see is to be able 
to update pastes with the same name; i.e. if I have a new revision of a 
file to be able to immediately replace the old one)
- sr.ht pages are nice although I wish there were some more error 
messages, just having it silently fail to deploy the site is kinda hard 
to trouble shoot
- I do have some issues with builds:
   - the containers are too small in many non-trivial cases: I'm using 
nix to build most of my stuff and for most jobs the build already fails 
when pulling cached derivations
   - the containers have very limited RAM: I am failing to e.g. build 
haskell-language-server in the containers, if it's not cached, because 
the container will run out of memory.
   - the status reports in that regard are (imho) improvable; there 
should be a difference between a build that just failed because of the 
constraints imposed by the container it's running it and a build that 
failed because the build is actually unsuccessful

I'd be happy to pay a premium (well what's a premium, let's say "more") 
for a larger container as I, in my current situation, cannot self-host 
runners non-trivially. fgaz also noticed that apparently the container 
constraints are larger for Debian (vs NixOS) containers, which I do not 
understand.

The grand issue I see here is, that there needs to be an incentive for 
people to switch to git hosters that are not GitHub other than morale; 
if people pay for CI service then I think it should work at least as 
well as the services that GitHub provides (seemingly to the user) "for 
free".

Overall I'm very happy though and I will keep recommending sourcehut to 
people I know. Thank you for providing this service and keep up the 
great work!

PS: I tried reaching out on IRC as well but it apparently got 
overlooked, so here we go again ;)
Details
Message ID
<CQ8E22NLO3IW.31L36GQAROVSZ@debian>
In-Reply-To
<5511cdd3-8448-5eeb-2a7b-b6759a9f4d8e@mangoiv.com> (view parent)
DKIM signature
missing
Download raw message
On Thu Feb 2, 2023 at 4:35 AM CST, Magnus Viernickel wrote:
> - I do have some issues with builds:
>    - the containers are too small in many non-trivial cases: I'm using 
> nix to build most of my stuff and for most jobs the build already fails 
> when pulling cached derivations
>    - the containers have very limited RAM: I am failing to e.g. build 
> haskell-language-server in the containers, if it's not cached, because 
> the container will run out of memory.

GHC is very resource hungry.  A couple of years ago I was unable to
compile a glorified TODO CLI app written in Haskell because the machine
ran out of memory. It had 8GiB and this was not enough to compile a CLI
app!!  (the culprit was one of the dependencies, but still)  Also, the
pre-compiled binaries provided by the author were more than 100MiB in
size!!  Again, for a CLI app[1].  Later, the author stopped providing
pre-compiled binaries and made Nix the only way to build/install the app
(for some reason many Haskellers love Nix).  I haven't looked at it ever
since, no way I would download/compile the whole world just for a TODO
CLI app.

I'm not a performance-junky but don't like unnecessary waste, and am
very displeased with the "modern" definition of "few resources".
Software just keeps using/requiring more resources (at some time I had
to add more RAM to my machine because 8GiB was not enough for
Firefox/Chrome+Slack+Zoom >:( --that I had to use for work).  In the
case of Haskell/GHC, when people bring up the issue with binary sizes
and memory consumption (both by GHC and the executables it produces),
many people in the community just reply with something like "RAM and SSD
are cheap, what's the problem?".  I gave up on Haskell, it's not an
option, resources-wise, for the kind of software and environments I'm
interested in.


I'm not saying your particular use-case and complaint are not valid (I
don't know it), though.  I was just venting my frustration with modern
software expectations, practices and ecosystem :)

- Lombera

[1] Compare this with the amazing https://redbean.dev/, a static
    webserver with Lua, SQLite and a REPL embedded in a single static,
    2MiB+ executable that can run on several OSs without modification.
Details
Message ID
<6dd3ce1e-0111-492d-8c49-95e56e6d6dbb@app.fastmail.com>
In-Reply-To
<5511cdd3-8448-5eeb-2a7b-b6759a9f4d8e@mangoiv.com> (view parent)
DKIM signature
missing
Download raw message
On Thu, Feb 2, 2023, at 4:35 AM, Magnus Viernickel wrote:
> Hi, I'm using sr.ht for a while now and I wanted to give some feedback 
> about the service:
> 
> - I do have some issues with builds:
>   - the containers are too small in many non-trivial cases: I'm using 
> nix to build most of my stuff and for most jobs the build already fails 
> when pulling cached derivations

Small in terms of disk space, I presume? Asking because I use Nix w/
caching and haven't had any issues

>   - the containers have very limited RAM: I am failing to e.g. build 
> haskell-language-server in the containers, if it's not cached, because 
> the container will run out of memory.

I had this issue with a Bazel project, but one thing that helped
significantly was just turning down the parallel build count. One GHC
process already uses enough memory, but *two* is going to be using
double that. Might be worth playing around with that for the parts you
more use more RAM.

>   - the status reports in that regard are (imho) improvable; there 
> should be a difference between a build that just failed because of the 
> constraints imposed by the container it's running it and a build that 
> failed because the build is actually unsuccessful

I don't think this is trivially detectable; different things all handle
OOM conditions in different ways (though maybe it could try to check the
kernel logs?).
Reply to thread Export thread (mbox)