<V>
I think nixpkgs is pretty much doomed to have a bunch of private forks with interesting and useful contributions permanently hidden from the public, unless the whole process for getting code into it changes
<V>
there was a very insightful article I read somewhat recently that I very strongly relate to, and I'm not quite sure where it was
<samueldr>
V: make propositions rather than vage handwaving :)
<samueldr>
vague*
<samueldr>
V: I think there is one thing many members will agree: we don't know how to cope with the current flow of contributions
<V>
nah I was just commenting on the state of it, I don't have the capability to do that myself
<V>
if I did I wouldn't be sitting around complaining
<samueldr>
great
<infinisil>
I feel like nixpkgs needs some general leadership
<V>
I have way too much stuff going on in my life to help with that though, sorry :(
<samueldr>
don't worry
<samueldr>
many *just* complain and don't actually care to help if they could
<adisbladis>
I guess everyone does, hence the state ;)
<samueldr>
I do have ideas that would require development work, and probably tough to get through changes, I did speak about them previously, but I know it's not realistic
<samueldr>
part of it is that we've outgrown simple "forge" software
<samueldr>
but I fear nothing actually exists to suit a workflow
<samueldr>
I mean, I could be wrong, and things might exist that I don't know about
<infinisil>
Successful landing \o/
<infinisil>
SpaceX++
<samueldr>
infinisil: weren't they launching things?
<samueldr>
why are they landing?
<samueldr>
get back in space!
<infinisil>
xD
<V>
I feel that mailing lists might be more suitable for the scale at which nixpkgs operates
<samueldr>
I don't
<V>
at *least* there needs to be some way of splitting PRs into categories, having hierarchies of reviewers, etc like the linux project does
<samueldr>
but it's an eternal "opinion" thing :)
* colemickens
adopts a highly skeptical facial expression
<V>
the actual medium isn't really relevant as long as it's not just a flat list of PRs
<samueldr>
what I think, though, is that it is possible to have a workflow using Mailing Lists that the user prefers to use
<infinisil>
I know you're probably just joking samueldr, but for anybody who hasn't seen any of SpaceX's landings, you gotta watch this one: https://youtu.be/sf4qRY3h_eo?t=451
<samueldr>
ideally, the *collaboration* methods would map well to-and-from mailing lists
<samueldr>
but "mailing lists" is not in itself a solution
<samueldr>
you have to adopt a workflow!
<samueldr>
but I wasn't even thinking about the collaborative aspect
<V>
like I gave that as an example b/c it's a solution that already exists
<gchristensen>
having a mailing list would certainly solve at least part of the scale problem by filtering out people who won't do that
<infinisil>
^^
<samueldr>
gchristensen: bad graham
<infinisil>
I doubt I'd participate in mailing lists tbh
<V>
and I think that the reasons why it solves things for linux is b/c there are a multitude of lists, with different people responsible for each
<samueldr>
we probably should also delete the documentation
<V>
(not the mailing lists themselves)
<infinisil>
I probably would never have started contributing if nixpkgs used mailing lists
<V>
yes, it's bad UX for inexperienced contributors. raises the bar a lot
<samueldr>
yeah, mailing lists are not *themselves* workflows. the people involved are
<V>
although there are things like gitgitgadget
<samueldr>
but still
<samueldr>
that's like
<samueldr>
totally irrelevant
<V>
yeah
<V>
wasn't the point I was trying to make :)
<samueldr>
since the collaboration bit wasn't even where I was going :)
<V>
also lol gchristensen
<samueldr>
the "pull request" flow as github prescribes it is not working out, one reason in there is that the CI really doesn't work well in the end
<V>
the github flow is almost unusable to me
<infinisil>
Hm, could we make CI crazy fast
<V>
to the point where I do actually prefer the UX of mailing lists, if just for code review >.>
<samueldr>
we're not given tools to properly work with the "CI" aspect of github
<samueldr>
and frankly, it's really a joke what they call C
<samueldr>
CI*
<samueldr>
couple that with "stale" CI runs on a previous master
<samueldr>
and we can get into annoying situations
<V>
the whole "hydra runs *after* merges" thing is so painful to me
<samueldr>
it'd be nice if once accepted, a "change set" (e.g. a PR, a group of commits) wouldn't move to master directly, but be queued into a "to be merged" queue
<samueldr>
where a system better-integrated with hydra would run the tested jobset on every merge
<supersandro2000>
labels
<samueldr>
T?
<samueldr>
?**
<V>
so like
<V>
there's rust's bors ofc
<supersandro2000>
add a label for the queue and hydra picks it up, changes the label when done or even merges
<samueldr>
and obviously, if a change set fails `tested`, it's "re-opened" (it never was closed)
<V>
bors x hydra would make everything so much better
<gchristensen>
we're gonna need a bigger boat
<samueldr>
gchristensen: ?
<supersandro2000>
and mail clients are terrible. Mine is almost grinded to a halt because of the 300k+ mails i have
<gchristensen>
(build farm)
<samueldr>
see
<samueldr>
I'm not sure!
<gchristensen>
maybe not...
<samueldr>
because we're basically sending them *to* the build farm
<samueldr>
in fact channel advances becomes instant if we're lucky and changes are not massive!!!
<supersandro2000>
and you are describing gerrit a bit IIRC
<gchristensen>
we'll need an ubertested
<V>
gerrit is also nice
<supersandro2000>
*uebertested
<gchristensen>
a schrodinger's tested
<samueldr>
yeah, I had forgotten the name of that tool at the moment
<gchristensen>
(to catch tested and untested)
<samueldr>
gchristensen: ?
<gchristensen>
tested and unstable*
<samueldr>
I don't fllow
<samueldr>
but yeah, it's what I understood of the gerrit workflow
<gchristensen>
well, having a single jobset allowing merges really means unifying the channels, no?
<samueldr>
which I'm not sure is what gerrit actually does :)
<V>
is there any reason why tests shouldn't be mandatory
<V>
I feel like they are separated currently due to just how inefficient hydra is
<samueldr>
gchristensen: no, but you know that a PR doesn't break `tested`; hydra still works exactly as it does normally
<samueldr>
V: why do you say hydra is inefficient?
<gchristensen>
V: part of it is having a tiny bit of a firewall between the wild west of expressions and what hydra evaluates and builds
<V>
samueldr: AIUI it does more work than is necessary to build/test an individual change? due to the batching, etc
<samueldr>
yeah, you want to make sure expressions built by hydra are desirable, which is why we can't send yet-to-be-reviewed PRs to it
<V>
and the batching is yet another symptom
<samueldr>
if we sent it every PR, it wouldn't "batch" anything
<samueldr>
but we can't just send every PR
<V>
yeah, but presumably that's too slow to be doable
<V>
have you seen bors before?
<samueldr>
not really
<samueldr>
I know of it
<samueldr>
but never investigated
<V>
it does basically exactly this
<samueldr>
but tacking something into github is not a solution
<samueldr>
it's working within limitations
<V>
sure, specifics aren't important here
<V>
but IIUC if a batch in hydra fails, the entire progress for that batch is lost, no?
<samueldr>
no
<V>
hmm
<samueldr>
any store path built by hydra stays built
<V>
progress is definitely lost for individual packages failing, but that's a nix limitation
<samueldr>
yeah, out of scope in many ways :)
<samueldr>
but for dependents, the CAS could help
<V>
does hydra have the problem where if a single job in a batch fails, all other currently running jobs get terminated?
<V>
since that's a thing with plain nix
<samueldr>
nope
<samueldr>
it tries to build everything even if there is no reason to
<samueldr>
because there might be a reason to: the next eval with fixes!
<samueldr>
so when e.g. a massive rebuild fails, hydra handlers have to manually cancel those now worthless jobs :)
<V>
ouch
<samueldr>
well, it's manual as in one action for the whole eval
<gchristensen>
push-button on the web ui
<samueldr>
but it's not something hydra could have known
<V>
I find the web UI super confusing
<samueldr>
don't worry, I think it is
<V>
okay
<gchristensen>
2000's PhD web design, baby
<gchristensen>
though the old logo was better
<V>
I often find it unclear as to what it's actually doing, why it's doing that, etc
<samueldr>
gchristensen: the 2000 PhD design was better
<gchristensen>
:D
<samueldr>
if you're not 100% groking every terms of hydra, you're not going to make sense of the UI it presents, and that really doesn't help :)
* V
puts it on the backburner
<V>
I'll have to do this sooner or later
<gchristensen>
I wonder why sway has the idea of bars and command ...
<V>
because i3 did
<samueldr>
V: so with bors no one presses merge, but contributors "approve" and bors is "that" queue?
<gchristensen>
yeah but why :P
<samueldr>
gchristensen: comfy slippers
<samueldr>
why change anything when you can just copy what you're already familiar with?
<gchristensen>
aye
<samueldr>
so if I understand the bors concept, it's implementing part of what I was describing through the GitHub limitations?
<V>
samueldr: something like that. the idea being that merge conflicts/etc don't exist, and every single commit is valid
<samueldr>
every single commit or every single head of change sets?
<V>
it *might* be the head
<samueldr>
most likely :)
<gchristensen>
it uses head
<V>
I recall something about it not being every commit
<samueldr>
but that's the desired state anyway most of the time
<V>
makes me sad though
<gchristensen>
and can maybe even "bisect" the batch
<samueldr>
yeah, every commit would be nice, but basically impossible unless you contort every changes in unnatural manners
<samueldr>
or make huge overarching commits
<samueldr>
(it'd be nice if git would know about "change sets", a list of commits authored together)
<samueldr>
I don't see anything about "batches" in bors' readme
<V>
, the integration revision is discarded and a comment in the pull request is left showing the failures."
<V>
"Bors implements the Not Rocket Science Rule against a combination of a buildbot test farm and a github repository: it monitors pull requests, waits for reviewers to approve them, then for each approved revision, makes a temporary integration revision which extends your integration branch by the proposed changes. It tests that temporary revision and advances your integration branch to point to the integration revision if and only if the tests pass. If the tests fail
<{^_^}>
Invalid command syntax
<V>
this is a fairly decent TL;DR
<gchristensen>
nice
<red[evilred]>
fwiw (and it may not be much)
<samueldr>
>> the idea being that merge conflicts/etc don't exist
<samueldr>
how does that work?
<red[evilred]>
I ended up writing my own tooling to deal with the list of security issues because the github ui was unusable for me personally
<samueldr>
if two PRs work on the same bit of code, how does _bors_ handle that?
<red[evilred]>
also - can I mention how giddy I am that there are spacex fans here
<red[evilred]>
we live in the future
<V>
samueldr: it's fixing the case where CI gets run on your PR, it passes, then *another* PR gets merged; while your current PR doesn't have any merge conflicts/etc some of the changes in the other PR now break yours
<samueldr>
ah, so not "merge conflict", per se, but more about "conflicting changes"
<V>
with bors the CI has to pass for your PR at a specific HEAD for it to be merged into that branch
<samueldr>
yeah
<V>
as opposed to at all
<V>
I hope that's more clear
<samueldr>
yeah, I was reading too much in "merge conflict", like the actual >>>>> HEAD <<<<<< STUFF
<V>
(I'm not a bors expert FWIW, this is just my rough understanding of it)
<infinisil>
red[evilred]: Ayy \o/
<V>
"tests should be done just before the merge"
<samueldr>
and yeah, if we're talking about conflicting changes, same as I described
<samueldr>
basically it sounds like I described bors, but not through github :)
<samueldr>
one thing in my still unwritten plan: give a fake "master" branch so contributors can push change sets to
<samueldr>
when you do, it auto-creates a change set and queues it to accepted changes
<V>
forcing CI on direct pushes?
<samueldr>
a direct push is now only an interface to create a change set :)
<red[evilred]>
For example - I'm working my way down the security issues in nixpkgs - and that's example output from the one I'm workinb at now
<infinisil>
Neat :o
<red[evilred]>
and I can see without looking at anything else that 20.09 and master are both at the same version - and no other distro has a version higher than we do
<red[evilred]>
which gives me some clue as to how this is going to end up before I even start looking at the specifics
<V>
oh, that's very nice
<V>
I wonder how guix compares here
<red[evilred]>
I can throw a full report up if you want to see current (as of this afternoon)
<red[evilred]>
into a gist
<V>
I know that it has support for CVE scanning and such
<gchristensen>
sway being i3-but-wayland is cool and all but I wish I didn't have to land a patch in i3 to get a patch in to sway
<V>
lol
<V>
it's the sad reality
<red[evilred]>
We do too with vulnix I think
<red[evilred]>
but I've not played with it too much
<V>
either you get used to how it is, manage custom patches for it, or use awesome instead
<V>
(or write your own compositor)
<V>
red[evilred]: there is vulnix, but guix has first-class support IIRC
<adisbladis>
Right, that's another thing on my list of things I'd like to do... Write a Vulnix replacement.
<samueldr>
I do have a small tool to get all package upgrades PRs locally
<adisbladis>
V: I'm a bit on the fence about Guix approach to give "first-class support" to things like that..
<V>
oh oops
<gchristensen>
maybe I should fgive up on sway
<red[evilred]>
What's that output from?
<V>
adisbladis: yeah, there's a lot of custom things that feel odd to have in there, but all in all the tooling feels more cohesive than nix's despite that
<adisbladis>
For example I think they do Python packaging terribly wrong in their official generator. But they've locked themselves into supporting that API basically forever..
<V>
backcompat, always ruining everything :)
<infinisil>
nixpkgs 2.0 when
<gchristensen>
basically never
<red[evilred]>
When the perl implementation of nix-daemon is complete last I heard ;-)
<JJJollyjim>
any advice on picking a nixos deployment tool?
<infinisil>
Aw man I really want to work on my nixpkgs backwards compatibility checker thing
<{^_^}>
#93659 (by ju1m, 17 weeks ago, open): nixos/security.gnupg: provisioning GnuPG-protected secrets through the Nix store
<V>
I have a veritable treasure trove of code that maybe only 3 or 4 people have actually seen ever
<V>
gchristensen: oh, that's by a name I recognise
<JJJollyjim>
oh interesting infinisil
supersandro2000 has joined #nixos-chat
<V>
ohhhh it's paperwm for wayland
<V>
niice
<V>
I always wanted to try paperwm but avoided it b/c gnome
<gchristensen>
yea
<V>
you too?
<gchristensen>
yup
<gchristensen>
pretty trippy
<red[evilred]>
V (IRC): If you're a decent and respectable human being, people invite you to stuff.
<gchristensen>
charitable
<red[evilred]>
V (IRC): I'm a member of one group and it's exactly that. Anyone I invite I'm responsible for
<red[evilred]>
consequently, I've only invited one other person.
<red[evilred]>
and I don't advertise that I'm a member.
<V>
yep
patagonicus9 has joined #nixos-chat
<V>
defeats the nature of it
<red[evilred]>
the funny thing is
<red[evilred]>
at conferences we wear a pin so we can recognize other members we don't know
<gchristensen>
V: cardboard is a bit early :).
<V>
red[evilred]: xD
<red[evilred]>
and I'd been at conferences for years and this had been in plain sight the entire time and I never noticed
<red[evilred]>
and then, after I learned I saw them everywhere
<red[evilred]>
it was kinda crazy
<V>
well, there are lots of random pins that people have
<V>
so that's kind of understandable
<V>
once you're aware of something it becomes significantly more noticable to you
<red[evilred]>
exactly
patagonicus has quit [Ping timeout: 240 seconds]
patagonicus9 is now known as patagonicus
<colemickens>
do I care
<colemickens>
should I?
<red[evilred]>
It entirely depends on what the subject is colemickens (IRC)
<red[evilred]>
should you care that I just got a refill on my ice for my drink? no.
<red[evilred]>
there's probably other things more pressing in your life :-)
<V>
#nixos-philosophy
<elvishjerricco>
So I've got a weird network where one router is behind another. I've got a server connected to the front router and my computers on the client router can't connect to it for some reason. Why would that be?
<elvishjerricco>
Er wait, I can ping it, but I can't access an http server
<red[evilred]>
NAT?
<elvishjerricco>
Can't think of anything set up in the NAT that would cause it
<samueldr>
wow is libreoffice garbage :/ I hate being this harsh, but I replaced a character and another word in a paragraph with a paragraph style and that character and word somehow saved the style as a direct style, rather than just continuing to use the paragraph style
<samueldr>
so I edited the paragraph style to reduce the font size, and there they are, this lone character in a word, and that other word, still big
<V>
I tend to avoid libreoffice if at all possible ^^
<samueldr>
thanks for the advice :|
<V>
I use gnumeric when I need a simple spreadsheet thing, and (loathe as I am to admit it), google docs is extremely good
<samueldr>
I was giving it the benefit of the doubt, I mean, it can't be that terrible, can't it, with funding and people pait to work on it
<V>
it manages to sanely import doc{,x} files and edit them in my (somewhat limited) experience
<samueldr>
but it really can't do more than RTF-style editing, anything else is just a footgun you're loading it looks like :(
<samueldr>
and there I was trying to use that to cheat and do something quick
<samueldr>
I've only been hitting weird behaviour like that, where things don't really work
<V>
google docs saved my ass so many times back when I had to deal with .docxs regularly and didn't have windows/office
<samueldr>
anyone has, other than LaTeX-based non-solutions, recommendation for "publishing" software?
<samueldr>
tried scribus, and it was... it had major issues making it a non-starter
<V>
other than maps it's probably one of two things that I could consider myself actually *needing* from google
<V>
uh... IIRC there was work on something for markdown -> nicely formatted PDFs?
<energizer>
samueldr: what kind of publishing?
<samueldr>
think "magazine"
<samueldr>
with pages
<samueldr>
and non-trivial layouts
<energizer>
people like reportlab
<V>
oh, there is pandoc
<samueldr>
energizer: as in editing the document
<V>
I'm not sure how far you could get with that. But it's effectively a swiss army knife
<energizer>
samueldr: wysiwyg?
<samueldr>
not necessarily, in fact WYSIWYM is probably better
<samueldr>
yeah, pandoc wouldn't really help as I want to be in control of the formatting at a level where it abstracts down
<energizer>
samueldr: reportlab isn't like that but it does produce fancy layouted documents
<V>
Sadly I feel that your options are limited to HTML+CSS and office suite software
<V>
surely if there was something else it'd be well-known
<samueldr>
looking at that, first I don't like services, and it doesn't really look like what I want, but a neat service though
<samueldr>
V: most likely
<samueldr>
I was in fact trying to not AGAIN do something with HTML+CSS
<V>
:(
<samueldr>
while I knew that was most likely the only solution that wouldn't outright suck
<energizer>
samueldr: it's a python library
<energizer>
there's a service too if you want to pay them but you dont need to
<samueldr>
anyway it really doesn't look like what I need
<samueldr>
looks like more of a way to fill templates with dat
<samueldr>
data*
<samueldr>
here I'm really "writing" and touching-up everything
<samueldr>
and let's say I don't have the time to learn python in addition to that specific lib
<energizer>
ah. well that's a different story :)
<samueldr>
if I had the time it would be spent with LaTeX
<samueldr>
since I believe that would give me to tools to properly lay everything out as I want
<energizer>
the pro tool for this is 'adobe indesign' but i assume that's out
<samueldr>
yeah
<samueldr>
and I know enough about adobe tools to know that it wouldn't actually fit
<samueldr>
I never actually used it myself, but I used other adobe tools previously
<samueldr>
but I've worked with a graphic designer that was using it and asked enough questions about the workflow to know
<samueldr>
like most "graphic design" tools, it's totally made to just mutate what you have around and any try at "templating" is going to be a failure
<gchristensen>
wio is fun except the move/resize flows are obnoxious
* gchristensen
rambles to no end
<V>
says the person who wrote maybe 5 lines in the last few pages of text
<red[evilred]>
I love how your question is "any non-LaTeX answer"
<red[evilred]>
I feel seen
<red[evilred]>
:) <3
<samueldr>
it's because I already know it is a good solution
<samueldr>
it does what I want
<samueldr>
but in a package I don't have the time to work with right now :)
<samueldr>
(and probably never will end up with the time)
<red[evilred]>
which package were you considering using (if you had unlimited time)?
<samueldr>
I don't know
<samueldr>
I have close to no actual useful LaTeX knowledge
<samueldr>
:< chromium crashes unceremoniously in the Nix sandbox
<JJJollyjim>
that seems right
<JJJollyjim>
chromium does its own sandboxing
<JJJollyjim>
using things that the nix sandbox disables
<samueldr>
it's not its sandbox that fails
<samueldr>
it finds no fonts :)
<samueldr>
[1125/040635.023209:FATAL:platform_font_skia.cc(97)] Check failed: InitDefaultFont(). Could not find the default font
<samueldr>
now I have to remember what I did on a previous project
<samueldr>
righty-o, with >0 fonts it goes brr
endformationage has quit [Quit: WeeChat 2.9]
lopsided98 has quit [Ping timeout: 264 seconds]
waleee-cl has quit [Quit: Connection closed for inactivity]
supersandro2000 has quit [Ping timeout: 265 seconds]
supersandro2000 has joined #nixos-chat
cole-h has joined #nixos-chat
FRidh has joined #nixos-chat
red[evilred] has quit [Quit: Idle timeout reached: 10800s]
dadada_ has quit [Ping timeout: 240 seconds]
dadada_ has joined #nixos-chat
cole-h has quit [Quit: Goodbye]
FRidh has quit [Ping timeout: 240 seconds]
siraben has joined #nixos-chat
FRidh has joined #nixos-chat
<patagonicus>
Well, after more than a week Dell support gave me a different master password for my laptop's BIOS and that one worked (after I switched z and y because Swiss keyboard and US layout for the BIOS, but I was expecting that). Guess this weekend I'll finally be able to install NixOS on it, unless compatibility is still a problem like it was when the
<joepie91>
only 6 hours of highway closure for the actual placement, apparently
da_dada has joined #nixos-chat
<eyJhb>
philipp[m]: No no, I am sick and dying :p
dadada_ has quit [Ping timeout: 256 seconds]
<eyJhb>
But *you* are fun and nice philipp[m] ! :D
<philipp[m]>
Awwww <3
<patagonicus>
eyJhb: What do you mean? That there is one, that they gave it to me or that they screwed it up at first? :D
<eyJhb>
patagonicus: That there is one :p
<patagonicus>
Yeah, I'm not totally happy about that. Had Thinkpads before, for those it was swapping mainboards to get rid of the password.
<eyJhb>
I just short circuited some pins on a chip
<eyJhb>
That was on the x230
<patagonicus>
At least they verify that you have access to the original power supply that came with the laptoo before handing it out. And I don't take that one with me, it's just in a drawer.
<patagonicus>
Ok, maybe ThinkPads changed enough since they got bought by Lenovo. :P
<eyJhb>
You can no longer throw them at walls
<eyJhb>
Sadly...
<eyJhb>
R.I.P. IBM Thinkpads :(
<patagonicus>
My T530 still was/is pretty beefy. Still weighs as much as my Model M. xD
<adisbladis>
eyJhb: Sure you can, just try it
<adisbladis>
I believe in you
<eyJhb>
Damn it adisbladis. I meant more of, the wall will still stand, whereas my laptop will not
<eyJhb>
Atm. it is starting to break apart from school use...
kloenk has quit [Quit: WeeChat 2.9]
FRidh has quit [Ping timeout: 260 seconds]
FRidh has joined #nixos-chat
<LinuxHackerman>
joepie91: wow, those are some mammoth vehicles :p
<joepie91>
hehe
<joepie91>
yeah they are called that for a reason :D
<joepie91>
anyway, this is starting to become an almost standard way for deploying bridges in NL now
<joepie91>
it's really quite interesting how optimized roadworks in NL are to be low-impact to traffic
<joepie91>
I've seen complete junction rebuilds without a minute of downtime
<joepie91>
(they basically use temporary barriers to create alternative, reduced-capacity routes over the junction, freeing up some percentage of the junction to be rebuilt; then after that chunk has been completed, they change the barriers to a new set of routes freeing up a different chunk, etc.)
<joepie91>
it does make for some slightly confusing navigation for a while, but you're never blocked from where you're going entirely
<LinuxHackerman>
Yeah, same stuff has been in progress at Sendlinger Tor here in Munich for at least 2 years now :p
<joepie91>
LinuxHackerman: right so this junction rebuild was about 2 months :P
<joepie91>
not counting the new bus station they built, which didn't hold up the junction at all
<joepie91>
they also repaved half of the cycle path behind my house a few weeks ago, was closed for about a week and you could just cycle down the attached sidewalk; they are now re-tiling the sidewalk separately, after reopening the cyclepath
<joepie91>
it's honestly difficult to find anything in NL that's really closed for an extended period of time
<LinuxHackerman>
tbf it's a bit more involved than just rearranging the traffic stuff, involving big excavation for renovating the subway station underneath the road as well
<LinuxHackerman>
apparently it's supposed to be finished in 2023
<gchristensen>
I'd rather pay some overhead and not have to cause the company to buy its first physical server
LnL has quit [Ping timeout: 272 seconds]
LnL has joined #nixos-chat
LnL has joined #nixos-chat
<sphalerite>
gchristensen: rent seems more likely?
lassulus has quit [Ping timeout: 256 seconds]
lassulus has joined #nixos-chat
lukegb has quit [Quit: ~~lukegb out~~]
lukegb has joined #nixos-chat
LnL has quit [Ping timeout: 265 seconds]
LnL has joined #nixos-chat
LnL has joined #nixos-chat
<jtojnar>
sphalerite: I also had frequent freezes without swap, and according to the article someone recently shared here, disabling swap does not really prevent trashing, it can only delay OOM killer
<infinisil>
"This software was written at 37,000 feet. Thank you to American Airlines for putting me on a janky old plane for a 9 hour flight with no television." lol
<infinisil>
(in nix-visualize's readme)
<cirno-999>
anyone using KDE? how do i properly edit the KIO default "open-with" apps? seems to never remember the choice for me
<infinisil>
And now I'm wondering how this overlaps with a test suite
<infinisil>
Because you could write a test that tries to call function F, and if that function disappears, the test fails. But this would also be detected by an automatic API checker like abi-laboratory
<infinisil>
Arguably, an API checker is just another kind of test
<infinisil>
Well actually no
<infinisil>
An API checker needs to compare *between* versions, whereas tests only operate within a *single* version
<infinisil>
Though, tests may be written for a previous version while failing for the current version, which is kind of like comparing between two versions
<infinisil>
The line between the two might be blurry
<energizer>
infinisil: i really like that idea
tilpner_ has joined #nixos-chat
tilpner has quit [Ping timeout: 260 seconds]
tilpner_ is now known as tilpner
<energizer>
it could get pretty complicated eg in python
<energizer>
but doable in a good proportion of cases i bet
<__monty__>
If you throw quickcheck in there I'm sold.
<infinisil>
That might be neat
<infinisil>
The potential scope of an API tracker can be really big
<infinisil>
A basic one would just ensure that all `pkgs.*` attributes continue existing over time
<__monty__>
The quickcheck stuff would be to make it an extensional equality checker. A little deeper than just availability of functions.
<infinisil>
A better one could ensure that e.g. functions don't remove arguments
<infinisil>
Yeah and then there's the quickcheck level which actually calls functions
<infinisil>
But you could even go deeper: Building derivations, and ensuring that no binaries get removed and co.
<infinisil>
Or even calling the binaries
<energizer>
wait are we talking about testing software written in nix, or testing packages packaged with nix?
<infinisil>
I'm talking about checking API compatibility of nixpkgs
<infinisil>
Between versions
<energizer>
i guess this would make it more legible
<energizer>
currently there's not even an attempt to maintain backcompat
<infinisil>
So that e.g. you get a red "This PR removes the `rev` argument from function `pkgs.fetchgit`, which is not backwards compatible"
<infinisil>
Or a green "All the tracked API is backwards compatible"
<energizer>
ok
<energizer>
once that message appears then what
<energizer>
will there be a policy of disallowing breakage?
<infinisil>
That would be the goal yeah
<energizer>
like, pkgs.python34 will stay there forever (i support this)
<infinisil>
Or: You could use this to auto-generate backwards incompatibility release notes
<lukegb>
Yeah, I think a nixpkgs linter would be neat
<infinisil>
(This isn't about linting though)
<lukegb>
Linting means many things to many people :P
<infinisil>
But yes, that would be nice too
<energizer>
infinisil: atm packages get removed all the time. will that be banned?
<infinisil>
Ah, for me linting is "Ensuring a certain code style or conventions"
<lukegb>
Backwards compatibility is a convention by some metrics
<joepie91>
IMO correctness linting is the only form of linting that makes sense
<infinisil>
energizer: Well not necessarily. But we will certainly not accidentally remove packages
<energizer>
joepie91: what about style conformance
<joepie91>
that's exactly the form that doesn't make sense :)
<energizer>
joepie91: why not?
<infinisil>
correctness linting?
<joepie91>
code style is a form of communication, and making it forcibly consistent means you are removing a communication channel towards other readers of the code
<joepie91>
because you can no longer use the structure of your code to express intention and semantics
<joepie91>
it's like picking a random subset of 1k words from a dictionary and saying "now everyone can only use these words and no others"
<energizer>
joepie91: no it's about improving the signal-to-noise ratio
<joepie91>
yes, I understand what it's about, my point is that forcing consistent style does the opposite of that
<joepie91>
it removes signal
<joepie91>
the popular idea that consistency == readability, is just wrong
<energizer>
making sure this code looks different from that code only when there's an important difference, not just alice likes CamelCase and bob likes snake_case
<joepie91>
consistency is just a cheap stand-in for meeting a bare minimum level of readability at low cost
<energizer>
it removes noise more
<joepie91>
it doesn't get you to optimal readability
<joepie91>
energizer: you don't need an enforcement tool for that sort of thing
<joepie91>
people are quite capable of looking at the existing code and following generally the same format
<energizer>
joepie91: no they aren't, that's why there are linters
<joepie91>
the only reason to add an enforcement tool is if you want no deviation, which has the aforementioned problem
<__monty__>
energizer: Fwiw, there's fairly loud voices against such a policy. Even supporting a single version back is frowned upon.
<energizer>
__monty__: yeah that's terrible
<joepie91>
energizer: nope. linters exist because it's a cheap way to pretend to have readable code
<joepie91>
which is a great sell to businesses
<joepie91>
in the same way that unit tests aren't all that complete as people like to claim
<__monty__>
energizer: It's also understandable though. It's hard enough to keep nixpkgs ticking with just the versions needed for self-consistency.
<energizer>
__monty__: make it harder, then people will stop pretending they can do it with the current level of tooling
<joepie91>
I've worked quite a lot without automated style enforcement, and I can assure you that people are quite capable of following general conventions, so long as you are expecting that of them
<gchristensen>
often even like it
<joepie91>
the problem with balls of mud is pretty much never "people are inherently incapable of doing this" and pretty much always either a culture problem (no *expectation* of quality work) or a resources problem (no time to do quality work or learn how to do so)
<joepie91>
(or both of course, they quite often co-occur)
<energizer>
joepie91: i acknowledge your point about removing a signal channel is good, i'm just saying i think the relative tradeoff of signal removed vs noise removed is favorable
<infinisil>
Well for nixpkgs at least, I'm pretty sick of having to tell people to use camelCase, removing unnecessary parens, or indenting code correctly
<infinisil>
I'd love for this to be automated with a linter
<__monty__>
I think part of it is people just being fed up with style discussions/bikeshedding.
<energizer>
infinisil: linter <<<< formatter
<joepie91>
energizer: I have seen no credible evidence to support that claim so far, and I have looked into this topic a *lot* :)
<__monty__>
So they just format and get on with life.
<__monty__>
*run a formatter
<infinisil>
energizer: I guess a formatter can't change casing though
<energizer>
joepie91: i'm not familiar with the literature
<energizer>
infinisil: why not tho
<joepie91>
__monty__: that's one reason, yeah, though it is based on that same assumption that consistency is inherently desirable
<infinisil>
energizer: Well because it's not the same code
<energizer>
infinisil: who cares :D
<joepie91>
energizer: oh, I'm not talking about literature, there pretty much is none (at least no credible literature). rather looking at a ton of real-world cases, digging into organizational issues underlying it, etc.
<infinisil>
energizer: If variables are exposed to the outside, changing their casing breaks backwards compat
<joepie91>
it's an area that doesn't get anywhere near as much research attention as it should
<infinisil>
Which a formatter shouldn't do
<infinisil>
(and my use case is mostly casing of NixOS options)
<infinisil>
But yes, a formatter would be very nice nonetheless for all style changes
<infinisil>
s/style/code format
<energizer>
infinisil: configure the formatter to not change existing variable names
<joepie91>
(actually more broadly, on code-quality-related topics there's very little credible literature... eg. the studies on impact of typing systems and automated testing are often littered with obvious methodology flaws)
<infinisil>
energizer: A formatter can't know which variables are new and old though
<energizer>
infinisil: says who
<infinisil>
Because it just takes a source file as input?
<energizer>
infinisil: says who
<infinisil>
.. well whatever lol
<__monty__>
joepie91: Is there any correctness linting that isn't just heuristics? It's usually "You *probably* don't mean to do X," right?
<energizer>
infinisil: no seriously. whatever information the human uses to make the decision...that same information can be provided to the tooling
<energizer>
__monty__: usually it's called a theorem prover rather than a linter at that point
<__monty__>
I do find that I prefer to format records and lists consistently btw. I don't see good reasons to avoid doing so. So there's definitely things I'd like a formatter to do for me.
<__monty__>
energizer: Not what I mean.
<joepie91>
__monty__: depends on how broadly you consider the category. if you consider compiler typechecks "linting" for example, then they can determine errors with certainty. but if you only consider "local" checks (ie. no awareness of context of the code) then it's usually some degree of "I'm NN% sure that you didn't mean to do this"
<joepie91>
ideally a linter should only consider things that are close to 100% likely to be wrong
<joepie91>
and usually that means detecting language footgun usage :P
<__monty__>
I don't consider typechecking linting. That waters down linting to just "static analysis" which makes the term redundant.
<joepie91>
the features that the language technically has and that can't be removed because backwards-compat, but you better have a damn good reason to be using them
<energizer>
joepie91: i like more comprehensive automated commentary even if it's only right half the time
<energizer>
because it can think of stuff that i forgot
<infinisil>
If I were to give a formatter a definition it would be: "For a parser `p :: String -> AST`, a function `f :: String -> String` is a formatter if for all `s :: String` it holds that `p s == p (f s)`,"
<infinisil>
energizer: ^
<infinisil>
We can have other tools that do more of course, but then I don't think they can be strictly called a formatter anymore
<energizer>
infinisil: i'm not so interested in the name as the actual utility
<infinisil>
Yeah
<infinisil>
But like, I want to get terms correct :P
<__monty__>
infinisil: That depends a lot on the info in your AST though. Like, if you include comments or bracketing a formatter would almost be expected to change the AST. So thanks for the types but your formal language isn't precise enough! ; )
<infinisil>
(I feel like many misunderstandings are from people having different definitions)
<__monty__>
Please start by defining a grammar for the grammar specification language you'll use to specify the formal language you'll use, tyvm.
<infinisil>
Hehe
<infinisil>
Usually parens and comments are not in ASTs
<samueldr>
(ugh)
<samueldr>
that's so lazy, but understandable as it's not useful to run the program
<samueldr>
whitespace either
<samueldr>
with Nix, IIRC comments are whitespace
<__monty__>
I know, but formatters *should* include them, imo.
<samueldr>
> let y = a: a; in y/**/1
<{^_^}>
1
<__monty__>
Losing comments or putting them in the wrong place is heinous.
<samueldr>
even whitespace has to be taken into account with the kind used
<samueldr>
the formatter has to guesstimate if it's aligning stuff with other lines or not
<infinisil>
What would you call as AST that can can generate the same file again?
<samueldr>
cat
<__monty__>
I could imagine so, though brittany is an example of a formatter that consumes your whitespace blindly and still produces aligned output. Or at least can produce.
<infinisil>
Not much of an AST I'm afraid!
<samueldr>
infinisil: the best abstraction level
<infinisil>
Ugh
<samueldr>
infinisil: data in, data out, never a miscommunication, can't explain cat!
<__monty__>
infinisil: A CST.
<infinisil>
"complete syntax tree"?
<joepie91>
infinisil: "format-preserving" is the common term I've seen
<infinisil>
Although I'm not sure if they imply "format-preserving" there
<infinisil>
energizer: Ah but yeah, concrete syntax tree seems to be a used term, nice
FRidh has quit [Quit: Konversation terminated!]
<__monty__>
I was only joking btw : )
<infinisil>
Well wikipedia kinda agrees: "Concrete syntax trees reflect the syntax of the input language, making them distinct from the abstract syntax trees used in computer programming."
<samueldr>
CST obviously is a typo for CAT, which is cat, but in uppercase
<ashkitten>
i'd like to bisect sway to find when a behavior started but i don't know how i can do that :/
<sphalerite>
ashkitten: what's the difficulty?
<ashkitten>
hmmm hangon
<samueldr>
__monty__: nintendo (or rather HAL) *did* make branded Nintendo network switch controller
<samueldr>
that would be the ultimate troll
* sphalerite
now wants nintendo stickers to put on all the switches at work
<gchristensen>
lol
<joepie91>
sphalerite: custom-printed stickers are cheaper than you might think! :P
<sphalerite>
joepie91: yeah but effort :p
<ashkitten>
okay nvm it's impossible to bisect sway because every commit depends on a specific wlroots version and won't compile against newer or older ones
<ashkitten>
so i give up
* samueldr
thinks
<ashkitten>
....maybe i could bisect using nixpkgs-wayland lol
<samueldr>
how bad of an idea would it be to make an libXwhatever shim that talks wlroots so you can use an X11 WM as a compositor?
<samueldr>
I don't know enough about both to know if there's real problematic bits
<sphalerite>
samueldr: jwz would approve.
<ashkitten>
samueldr: do it
<ashkitten>
i'm just upset because sway broke my workflow due to some bug
<joepie91>
ashkitten: you can specify some automated process that gets executed on every bisect step, maybe that helps? to spin up whatever the right one is
<ashkitten>
no, i don't want to
__monty__ has quit [Quit: leaving]
<sphalerite>
ashkitten: and the compatible wlroots version isn't referenced in the sway repo because that would make it too easy, right?
<pie_>
if i need a reasonable static http server setup *right now* what do i do?
<pie_>
i have a vps
<samueldr>
nginx?
<samueldr>
with NixOS?
<gchristensen>
python -m http.server 8000
<pie_>
gchristensen: is that actually ok
<pie_>
to be clear this needs to be public facing, but should be extremely low volume, basically for a few placeholder pages
<monsieurp>
whats wrong with nginx?
<pie_>
probably nothing
<V>
if you want something sane that's public facing just do `caddy file-server`
<V>
proper configuration isn't much more complicated
<V>
(the Caddyfile syntax is really simple and clean)
<V>
and (although this is off-topic) NixOS has services.caddy
<gchristensen>
well, liek
<gchristensen>
*right now* is different from, like, "an ongoing basis"
<pie_>
how is it that i can never login to internetbs without resettting my password
<pie_>
i use keepass
<gchristensen>
maybe the password is too long
<pie_>
maybe
ashkitten has quit [Quit: WeeChat 2.9]
ashkitten has joined #nixos-chat
<V>
I interpreted "right now" as needing a temporary thing to show off a static website in a dir on one's laptop
<pie_>
close enough
<pie_>
proposal deadline on friday and a friend told me i should put up some placeholder page
ashkitten has joined #nixos-chat
ashkitten has quit [Changing host]
<samueldr>
placeholder page?
<samueldr>
you'll have to get some SaaS nonsense with kubernetes going
<pie_>
samueldr: ikr
LnL has quit [Ping timeout: 260 seconds]
lopsided98 has joined #nixos-chat
<abathur>
pie_: if the hesitancy is the attack-surface and I was making the same decision I guess I'd be considering nearlyfreespeech.net, S3, or github pages?
ashkitten has quit [Quit: WeeChat 2.9]
ashkitten has joined #nixos-chat
<pie_>
well, this is infra i have and dont need to pay more for so eh