<samueldr>
flokli: I was only talking about the usual "there's no cache, so YMMV"
<flokli>
Ah
<flokli>
Well yeah, there are caches
<flokli>
Just my own ;-)
<flokli>
I would like to have more insightful hardware definitions for that low level stuff. But gosh, all the lua scripting I've seen that glues stuff together and is called a build system... Makes me think differently
jonringer has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 264 seconds]
mkaito has quit [Quit: WeeChat 3.0]
<colemickens>
whoa, sudo gddccontrol works on my monitor, the windows util didn't think it would work
<gchristensen>
nice
<colemickens>
how did I manage to send that here
<cole-h>
nice
<siraben>
qyliss, Profpatsch: I came up with a semi-automated way to resolve undefined lib errors after performing a sed replacement on an entire subtree of nixpkgs
<siraben>
i'll post a PR shortly
<siraben>
this is a continuation of stdenv.lib → lib of course
<siraben>
not hnix unfortunately, just some good old sed
pmy has quit [Client Quit]
<siraben>
dammit i need to do this on staging instead because of all the whitespace errors >.<
<siraben>
is it ok to target staging-next?
pmy has joined #nixos-dev
pmy has quit [Client Quit]
pmy has joined #nixos-dev
<cole-h>
What whitespace errors and why does that need to go to staging?
<siraben>
cole-h: EditorConfig is failing
<siraben>
Staging already has my whitespace fixups
<siraben>
But if not I can rebase on master again
<siraben>
If this gets merged to master, staging-next has my whitespace cleanups, won't we have a merge conflict when we try to merge staging-next into master?
<V>
siraben: "preforming"
<siraben>
preforming?
<siraben>
ah thanks
<V>
oh, is the order lib and then stdenv? I guess that makes sense
<siraben>
(typo in PR)
<siraben>
I dunno, I based that off of the hnix automated change II
<Profpatsch>
Usually I leave the dirname out, but in this case you actually need it
<Profpatsch>
siraben: that’s the idea
<Profpatsch>
siraben: you first get a list of all the files you want to do the replacement in, then you do the replacement on them, then you run add-lib-if-necessary
<V>
Profpatsch: no, you misunderstand. I am perfectly familiar with git clone, I don't understand where you're getting /depot from
<Profpatsch>
V: nvm, miscommunication
<Profpatsch>
doesn’t exist
<V>
on whitby perhaps
<Profpatsch>
It’s a bit confuse in situations, because most software expects subrepos to exist, but depot is hardwired in some places
<Profpatsch>
But not in others, so links might be nonstandard
<siraben>
is there a one line command to run what ofborg is running? I seem to be missing packages where I failed to add lib
<Profpatsch>
e.g. I can’t use the normal cgit form for building links
<siraben>
should be able to adapt my script
<cole-h>
siraben: outpaths.nix is one part you can run
<Profpatsch>
Because usually cgit links are git.foo.com/subrepo/<stuff>, in tvl it’s code.tvl.com/<stuff>
<siraben>
cole-h: how do I run that?
<V>
Profpatsch: it's a little queer, but not unmanageable
<V>
qyliss: arguably it's more consistent to convert all the 'stdenv, lib' into 'lib, stdenv'
<siraben>
(on my branch which introduced a lot of lib, stdenv)
<siraben>
someone run it on upstream/master please?
<V>
b/c lib is used prior to anything else in nixos, and b/c it's "pure" insomuch as that it doesn't depend on stdenv, whereas vice versa holds (not that this matters within the drv)
<V>
of course, this requires you to manage to figure out what the pull request ID is, know that GitHub stores all objects from all forks in the same superrepository, know that GitHub provides refs for pull requests, and know that it doesn't delete the ref even if the PR is "gone"
<V>
which I daresay most people would have no idea about
AlwaysLivid has quit [Remote host closed the connection]
<rnhmjoj>
> I totally missed that issue's existence
<{^_^}>
undefined variable 'I' at (string):466:1
<rnhmjoj>
V: are you volth?
AlwaysLivid has joined #nixos-dev
<V>
no, I'm V
<rnhmjoj>
a masked vigilante who happened to know about the nat loopback PR?
<qyliss>
if one has IRC logs or email notifications one can know about every PR ;)
AlwaysLivid has quit [Remote host closed the connection]
<qyliss>
that one specifically came up because I read and linked your comment about it being gone, and asked which PR number it was, intending to do the same thing V did to recover it for you
AlwaysLivid has joined #nixos-dev
<V>
rnhmjoj: no comment :)
orivej has joined #nixos-dev
<V>
any resemblence to similarly named persons, fictitious or real, is entirely a coincidence
<rnhmjoj>
V: uhmm, i see
* V
nods
<rnhmjoj>
btw, i had also posted in a comment a fancy nixos test to check the loopback was working correctly...
<rnhmjoj>
i can't find the page using the wayback machine, so that's probably gone for good
<qyliss>
rnhmjoj: somebody might have the email notification
<siraben>
pkgs/tools: 109434
<rnhmjoj>
qyliss: that's a good idea but i don't think there were other participants, unless someone subscribed but never commented
justanotheruser has quit [Ping timeout: 246 seconds]
<siraben>
I just realized I didn't do sed with /g
<siraben>
hmm
* supersandro2000
another treewide PR!
<siraben>
well there were some folders yet to be done anyway, so I'll lump them together, hehe
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-dev
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-dev
__monty__ has joined #nixos-dev
zarel has joined #nixos-dev
<siraben>
qyliss: wow regeneration is taking a while
<Profpatsch>
supersandro2000: not sure what you want to tell us with that exclamation?
<Profpatsch>
qyliss: as a line graph you can’t see the different PRs and how much they make up for the changes, since they are all very close together so the downwards line is gonna be a very straight one
<siraben>
qyliss: might be good to make the dots smaller
<siraben>
or circular
<siraben>
This is definitely it for removing simple stdenv.lib from pkgs, except for pkgs/development. #109455
<supersandro2000>
ripgrep can even to the replace part
<supersandro2000>
but not write
FRidh has quit [Quit: Konversation terminated!]
mkaito has joined #nixos-dev
<siraben>
supersandro2000: I think they meant ack is in acknowledged
<supersandro2000>
idk.
<siraben>
lol I'm literally relying on ofborg to show me evaluation errors because it takes too long to run it locally
<supersandro2000>
can't you do nix-env -f . -qa ?
<siraben>
I do nix-env -f . -qaP --xml --out-path --show-trace but shows everything is ok
<ekleog>
rnhmjoj: I've just been pointed to some backlog where you asked about people being subscribed, I'm watching the whole repo (though filtering most things out), is there anything I can grab back for you?
<ekleog>
(actually that makes me think that if there are some specific volth issue/PR comments we want to recover I can probably recover them from my email archive, if they are more recent than mid-october 2018, date at which I turned that on)
<rnhmjoj>
ekleog: oh, thank you: do you happen to have anything about this PR? #78315
<gchristensen>
siraben: what if I handed you a machine?
<siraben>
that would be useful, thanks. I'll only use it for evaluation
<siraben>
this is the command to do it right? GC_INITIAL_HEAP_SIZE=4g nix-env -f ./outpaths.nix -qaP --no-name --out-path --arg checkMeta true > out-paths
<rnhmjoj>
adisbladis: yes, i can imagine all the work with migrating from actions, various github api, rewriting links... without considering setting and managing the servers
<siraben>
maybe it's because i'm not evaluating non-darwin packages
<gchristensen>
this process for taking a machine for community use is almost automatic ... would be nice to finish that off and make it easy
<siraben>
I'm getting error: undefined variable 'libc' at nixpkgs/pkgs/os-specific/darwin/usr-include/default.nix:17:14
<siraben>
where is libc supposed to be defined?
cole-h has joined #nixos-dev
<Thophane[m]>
<siraben "I'm getting error: undefined var"> `stdenv.libc` that has been too eagerly replaced?
<gchristensen>
that would be a clbuttic explanation!
<siraben>
Théophane: ah, thanks!
<siraben>
gchristensen: is there no lightweight way to do ofborg's evaluation?
<siraben>
none of these evaluation errors would have been caught by command
<cole-h>
Evaluation is heavy because Nixpkgs is heavy.
<cole-h>
There's also `hydra-eval-jobs` that would help.
<gchristensen>
you have to evaluate everything to find all the problems
<siraben>
gchristensen: I quit the session, it's getting late here and I have to go, thanks again.
<gchristensen>
siraben: I can get you another machine when you're around again
<siraben>
pkgs/os-specific seems to be a pain to remove stdenv.lib from, since I have to do a full evaluation
<siraben>
gchristensen: alright
<gchristensen>
siraben: oh btw that machine will get erased soon, did you have anything you wanted to keep?
<siraben>
gchristensen: nope, all good
* cole-h
runs hydra-eval-jobs on that PR
<gchristensen>
cole-h: want that machine?
<cole-h>
Nah, I can just let this run while I'm eating breakfast. It only took ~20 minutes for me last time, IIRC.
<cole-h>
<3 gchristensen
<{^_^}>
gchristensen's karma got increased to 408
<gchristensen>
right on
<eyJhb>
gchristensen: It is going up up and up for your karma :D
<eyJhb>
There are so many Nix formatters, are there any that are bigger than others? I can find nixpkgs-fmt, and nixfmt. Just a matter of taste?
<gchristensen>
I think ideally one of them "wins"
<gchristensen>
I like nixpkgs-fmt?
<cole-h>
Same.
<eyJhb>
The idea seems nice, but I like that nixfmt really FORMATS it
<eyJhb>
`Only change the indent of one (+/-) per line. Not sure why but it seems like a good thing.`
<eyJhb>
Like my Nix code is very ugly, and I am having a hard time knowing where to place my brackets, paranteses, etc. and in that case it won't help anything
<gchristensen>
yeah true
<gchristensen>
I do prefer more opinionated formatters
justanotheruser has joined #nixos-dev
rajivr has quit [Quit: Connection closed for inactivity]
<eyJhb>
So, e.g. nixfmt?
<gchristensen>
well ... above all, I prefer a standard formatter
<gchristensen>
so whatever wins
<eyJhb>
Haha, true!
<eyJhb>
Having too seperate sucks.
<eyJhb>
But I do get why nixpkgs-fmt is a thing. seeing as running nixfmt would change a LOT
<infinisil>
So, how a simple version could work: You pass e.g. nixfmt --format-lines=10-15,17
<infinisil>
It parses the file, then figures out which AST nodes are enclosed in the given lines
<infinisil>
Then it formats only those AST nodes
<infinisil>
But, problem is that this breaks down for every AST node that stretches over that line
<infinisil>
So e.g. if you add a single list entry in a \n-delimited list, it couldn't format the list because the list isn't enclosed. It could only format that added entry
<domenkozar[m]>
gchristensen: I must admit those docs don't make much sense to me
<infinisil>
What if you change 99% of the file, but a newline in the middle isn't changed (according to git). The formatter couldn't do very much then
<gchristensen>
cc abathur
<infinisil>
adisbladis: So it needs to handle these kinds of things. Maybe it could detect whether an AST node is in the non-changed lines, and if there isn't, format that line too
<adisbladis>
infinisil: Yeah, I think that's a requirement
AlwaysLivid has quit [Ping timeout: 240 seconds]
<infinisil>
I'm sure it's possible, but maybe a bit tricky
* abathur
pouts
<domenkozar[m]>
abathur: sorry :(
<abathur>
hehe
<domenkozar[m]>
abathur: why is the main attribute called solutions instead of resholve?
<domenkozar[m]>
it was confusing to me what is a solution
<domenkozar[m]>
or resholves :)
<abathur>
or jobs
<abathur>
or tasks
<abathur>
arbitrary choice because I begged for bikeshedding about it and got no response :)
<gchristensen>
moving beyond that, let's get to a nicely packaged nixos-rebuild script =)
<domenkozar[m]>
also not clear what is profile in the first example
<domenkozar[m]>
is that an arbitrary name or does it mean anything?
<domenkozar[m]>
what is bashup-events44?
<domenkozar[m]>
there's no reference in nixpkgs to it
<abathur>
it's not seeing/resolving sudo in maybeSudo
<abathur>
and I didn't really read the vars I had to add directives for, I'm definitely seeing some other things in there that aren't resolved
<abathur>
sudo on 131, env on 148, (maybe OK since it's going through ssh?), anything passed to buildHostCmd/targetHostCmd such as nix-copy-closure on 169; more broadly I have no grok of the host/target implications of resholve and if it's able to sanely handle a script that appears to have dynamic behavior based on that concept? :)
justanotheruser has quit [Ping timeout: 264 seconds]
<infinisil>
I've got some sparks of an idea for how NixOS modules could be structured for much better reusability for services
<infinisil>
Basically, think of a graph, consistint of nodes and edges. Nodes are components of a Linux system (e.g. services, ports, filesystems, etc.), and edges are connections between such components
<infinisil>
E.g. by connecting a service node with a port node, that service can serve something on that port
justanotheruser has joined #nixos-dev
<infinisil>
If a node has *no* connections, it can't do anything at all, it's completely isolated
<infinisil>
As such, every type of node will require a set of connections to function. E.g. you can have a service node which requires you to connect it to a port
<infinisil>
Underneath, such a connection opens up the sandbox on that specific port, but nothing else
<infinisil>
In Nix terms, the basic functionality might look like `nodes.services.foo.executable = "/..."; nodes.ports.bar.value = 8080; edges.servicePort.fooBar = { service = "foo"; port = "bar"; };`
<infinisil>
Where `nodes.services.*` starts systemd services, `nodes.ports.*` declares ports, and `edges.servicePort` is implemented by opening up the port to the declared service
cole-h has quit [Ping timeout: 240 seconds]
<infinisil>
And you could build abstractions based on that. For example, grouping a number of interconnected systemd services together under a single node
<infinisil>
Or as mentioned above, nodes types that require port assignments, e.g. with a required `nodes.myNode.*.port` option
<V>
that sounds like a fancy way of describing containers/VMs described in nix?
<infinisil>
Kinda!
<V>
I'm getting intense deja vu b/c this it's the third time this week I've described/seen described something loosely following these concepts
<infinisil>
Graphs, they're everywhere
<V>
once you've done with NixOS you can pivot into your Nix-powered modular synth business
<infinisil>
I'm still not sure on the details of this idea, but it seems promising
<ekleog>
(yeah the readme is a bit of a troll, sorry)
<infinisil>
:o
<ekleog>
The issue I found was, that you need to have a two-layer system, because if you can set edges in the same fixpoint as nodes your graph topology depends on the graph contents and you infinite-loop
<ekleog>
so configuration looks something like { servicename = { thingToLinkWith = "otherservicename"; argument = "foo"; }; }
orivej has quit [Ping timeout: 240 seconds]
<ekleog>
I gave up after having issues trying to get udev to work, maybe because I initially started this up trying to show that most services we have would actually run well in a non-systemd-specific system (by having a `servicemanager` thing to link with) and I failed at eudev
<infinisil>
ekleog: Ah the node/edge inf rec probably wouldn't be a problem in my example because they're in `nodes.*` and `edges.*`
<infinisil>
But that's neat
<ekleog>
That being said, there's a slight difference with your scheme I think (though I'm not yet really familiar with it): for me, the port configuration would be defined by services.foo in your example, and it'd then be sent to the portOpener
<ekleog>
(and then there'd be a portOpener service)
<infinisil>
Hm I guess you might need services for pretty much everything in the end to do the actual work of doing changes
<infinisil>
Unless activation script
<ekleog>
(actually there's an eudev module I committed somehow recently… 50% I eventually got it to work and forgot about it, 50% I just gave up and committed the half-finished version that doesn't actually work)
<infinisil>
I guess one important node type I omitted above is the *network* node
<infinisil>
Heh
<infinisil>
E.g. there would be `nodes.network.public`, `nodes.network.local`, stuff like that
<infinisil>
And each service would live in its own network namespace, represented by these nodes
<ekleog>
that's very objcap-y, which sounds great, but then the issue I guess is that you need to backtrack information from the network node to the service node
<ekleog>
(because the service needs to be started up in the right netns)
<infinisil>
hmm not sure what you mean
<ekleog>
backtracking information is the conceptual thing I haven't found a good solution for, because it also introduces infinite loops :/
<ekleog>
oh it's like the network node needs to somehow inform the service manager node to start the service node in the right ns
<infinisil>
Oh and I guess if each service runs in its own network namespace, which is another node, then you wouldn't connect a port to a service, but rather a port from one network to a port of another network
<infinisil>
Hmm
<infinisil>
ekleog: Ignoring conciseness, it would be somethnig like `nodes.networks.myServiceNetwork = {}; nodes.services.myService.executable = "..."; edges.serviceNetwork.myService = { network = "myServiceNetwork"; service = "myService"; };`
<infinisil>
Or maybe we don't want any functional edges at all. So that instead of `node (port) <--edge (port forward)--> node (port)`, we just have an additional node in the middle: `node (port) <-> node (port forward) <-> node (port)`
<infinisil>
The edges would then really only connect nodes, nothing else
<infinisil>
For more conciseness, a node might implicitly get mandatory options for all relevant nodes it needs in its viccinity
<infinisil>
Eh, I'll have to think about it more another time
<infinisil>
It's friday :)
<ekleog>
(sorry, had to run, I'm back)
<ekleog>
friday's trollday, right? so a good time to discuss let's-rewrite-the-world designs :p
<ekleog>
what I'm not sure about your configuration scheme is, how does the definition of myService know that it must start in the myServiceNetwork network namespace?
<infinisil>
ekleog: The edges.serviceNetwork.myService couples them together
<ekleog>
My way of doing it would have been `myService --> serviceManager that actually just wraps in a netns and forwards to another service manager --> global-system-service-manager`
<ekleog>
(where `-->` represents a message being sent from a node to another)
<infinisil>
What's a message?
<infinisil>
A packet?
zarel_ has joined #nixos-dev
<ekleog>
(thread a) It (edges.serviceNetwork) does, but how would the definition of myService actually know that it should spawn in the myServiceNetwork namespace?
zarel has quit [Ping timeout: 265 seconds]
<abathur>
have y'all seen sander's work on cross-platforming service abstractions?
<ekleog>
(thread b) A message is what's called `extender` in the source code, basically a { ${destinationService} = ${thingsToSend} } where there's a meta.* scheme on thingsToSend so there's some semblance of typing
<ekleog>
(b) so there's a global list of nameValuePairs that's filled by all the nodes (with ${destinationService} being set by the user or defaulting to reasonable values for core destination services like `files` or `activation-scripts`), and each node gets as an input the list of thingsToSend that were sent to it
<ekleog>
(b) and the fixpoint happens over that list of nameValuePairs (which is the reason why sending data back from a node to a node that already sent it data is hard, because it introduces an infinite loop in the global list of nameValuePairs)
<ekleog>
abathur: that's interesting and I hadn't, thank you, I'll probably try to rely on that next time I write things for nixtos, so as to make the “process-manager-agnostic” promise actually come true :)
<abathur>
he also gave a talk about it this fall, if seeing that helps
tilpner_ has joined #nixos-dev
tilpner has quit [Ping timeout: 256 seconds]
tilpner_ is now known as tilpner
<supersandro2000>
Is there a reason why people should push to master?
<supersandro2000>
I don't like the idea if the only reason is that want to skip the review process.
<supersandro2000>
but some people feel entitled to just ignore this
<supersandro2000>
not like a broken eval on master literally slows down the work for hundreds of people
<gchristensen>
I agree supersandro2000, but also need to be careful to respect the workflows of people who have contributed for a long time, and avoid alienating them
Irenes[m] has joined #nixos-dev
danielrf[m] has joined #nixos-dev
dtz has joined #nixos-dev
siraben has joined #nixos-dev
<supersandro2000>
but just because you contribute for a long does not mean you can anything you want
<samueldr>
tell them they're doing "anything they want" for fun
srhb has quit [Ping timeout: 268 seconds]
manveru has quit [Ping timeout: 268 seconds]
tdeo has quit [Read error: Connection reset by peer]
emilazy has quit [Read error: Connection reset by peer]
sorear has quit [Read error: Connection reset by peer]
taktoa[c] has quit [Read error: Connection reset by peer]
typetetris has quit [Read error: Connection reset by peer]
betawaffle has quit [Read error: Connection reset by peer]
srhb has joined #nixos-dev
taktoa[c] has joined #nixos-dev
asymmetric has joined #nixos-dev
nyanotech has quit [Remote host closed the connection]
typetetris has joined #nixos-dev
sorear has joined #nixos-dev
<samueldr>
we're, rather quickly, getting fewer and fewer events directly to master
manveru has joined #nixos-dev
<supersandro2000>
I don't think anyone right now is trying to break things intentionally
emilazy has joined #nixos-dev
puzzlewolf has joined #nixos-dev
kraem has joined #nixos-dev
betawaffle has joined #nixos-dev
nyanotech has joined #nixos-dev
zowoq[m] has quit [Ping timeout: 268 seconds]
worldofpeace has quit [Ping timeout: 268 seconds]
bbigras has quit [Ping timeout: 268 seconds]
tetdim has joined #nixos-dev
<supersandro2000>
but if you push to master it is pretty easy to mess something up and if you only reason is to avoid any review than I don't have a good feeling about that person having access to pushing to master
hax404 has quit [Remote host closed the connection]
Irenes[m] has quit [Ping timeout: 268 seconds]
regnat has quit [Ping timeout: 268 seconds]
symphorien[m] has quit [Ping timeout: 268 seconds]
emily has quit [Ping timeout: 268 seconds]
globin has quit [Ping timeout: 268 seconds]
<samueldr>
hopefull it's not the only reason
<samueldr>
hopefully*
globin has joined #nixos-dev
alunduil has quit [Ping timeout: 260 seconds]
elvishjerricco has quit [Read error: Connection reset by peer]
carter has quit [Read error: Connection reset by peer]
aria has quit [Read error: Connection reset by peer]
aria has joined #nixos-dev
elvishjerricco has joined #nixos-dev
carter has joined #nixos-dev
<supersandro2000>
I am not great with interacting with people especially online but I had the distinct feeling that was the case which made me pretty hard feeling about it
alunduil has joined #nixos-dev
lopsided98 has quit [Remote host closed the connection]
<supersandro2000>
I admit that I sometimes nit a bit to much but you can always talk to me and usually I give in if you talk like 2 sentences with me
<supersandro2000>
and try to explain it instead of just saying no
bennofs[m] has quit [Ping timeout: 260 seconds]
timokau[m] has quit [Ping timeout: 260 seconds]
garbas[m] has quit [Ping timeout: 260 seconds]
domenkozar[m] has quit [Ping timeout: 260 seconds]
maralorn has quit [Ping timeout: 260 seconds]
<ekleog>
samueldr: I'm curious, do we have numbers (or even the links) of what commits were directly pushed to master? sounds like it'd be a good indication of which PR workflows should be improved
<samueldr>
ekleog: I ran some number crunching late last yer
<samueldr>
year*
Dandellion has quit [Ping timeout: 260 seconds]
<samueldr>
let me check if I have the data still
lopsided98 has joined #nixos-dev
<ekleog>
like, personally if there was some way to automatically create & merge a backport PR I'd do that instead of push-to-release, but if I open a backport PR I know I'm going to forget about it before ever landing it
<samueldr>
so there shouldn't be any backports in there
<ekleog>
interesting, thank you! out of curiosity, how did you actually get the numbers?
<samueldr>
my methodology was that in case of doubt, assign it to master
<samueldr>
uh, code and stuff
<samueldr>
(sorry, it's been a while)
<ekleog>
oh so it was based on like commit messages?
<samueldr>
checking
* ekleog
wondered whether github provided a way to know which happened after the fact, or if {^_^} was the only way to get it
<samueldr>
it uses a dump of the github data, which has all commit shas included
<samueldr>
so I can straight up remove any commit IDs part of a PR
<samueldr>
even if the PR was "manually merged"
<samueldr>
I also use --no-merge
<ekleog>
“dump of the github data”?
<samueldr>
thing I wrote a while ago, dumps enough data about PRs for what I cared for personal reasons
<samueldr>
but really not a backup
<ekleog>
hmm any possibility it counts squash&merge as a commit to master? (know when github introduced that I started to use it for all 1-commit PRs, to avoid cluttering history with merge commits)
<ekleog>
got it, thank you! :)
<samueldr>
ugh, avoiding "clutter" by not doing merge commits is a peeve of mine
<samueldr>
it's not clutter, it's tracability!
<ekleog>
squash&merge do include the PR number in the subject, and the git author in the commit
<samueldr>
but yeah, probably that in those 17.59% there was many squash and merges too
<ekleog>
so… not sure what added tracability there is by doing merge commits?
hax404 has joined #nixos-dev
<samueldr>
you lose commit history
<samueldr>
I don't know if the messages fron individual commits are kept
Irenes[m] has joined #nixos-dev
<samueldr>
but good authors write descriptive commits
<samueldr>
squashing loses context, you cannot bisect into the "change set", since it's been reduced to one change
<ekleog>
oh it's just for things that ought to be 1 commit anyway, like `foo: init at *` (close to rebase-and-merge except some people don't squash themselves and I don't feel like asking them to do so — rebase & merge I do not like because it loses the ability to know which commits make sense in a group)
<samueldr>
right, less problematic here
<samueldr>
what I'd like to see is a way for github to do the squash into the PR interface, and yet still keep the merge
<samueldr>
so you might be able to squash *only* what is needed to be squashed
<ekleog>
hmm random idea but if you already have the script at hand, maybe filtering on git subject by `\(#[0-9]+\)$` would be a way to filter out squash & merges?
worldofpeace has joined #nixos-dev
<ekleog>
s/already/still/ (and if it doesn't take too long to run)
<samueldr>
so yeah, those conservative estimates, and it's showing that in absolute numbers, commits to master are going down, and in proportional numbers, going down quite fast
<ekleog>
ooooooh proportion, I was looking at absolute values and thinking “but… no?” but I totally missed the percentages!
<ekleog>
looks like we're getting much better indeeed \o/
zowoq[m] has joined #nixos-dev
<samueldr>
this is not accounting for the new cycle yet
<samueldr>
a further 1320 can be cut, from fridh's python updates which _are_ linked to a PR, I wonder what made it so it's not removed here
<samueldr>
oh right, I know what's up with the missed obvious attributions to PRs: github's API not being able to cope with some big PRs
<samueldr>
so, conservative numbers, which are likely at least twice as big as they should be in fact
<samueldr>
that's why I'm not releasing the actual information, it's slightly wrong, but in ways that means it's including data it shouldn't
<samueldr>
so we're in an even better situation
__monty__ has quit [Quit: leaving]
<ekleog>
samueldr: oh :( thank you for the ping I had totally forgotten I had done that ^^'
<samueldr>
was just pulling your leg though
<ekleog>
yeah well I deserved it :p
<samueldr>
there's also a couple reverts, ~50ish, with many reverts being from PRs
<ekleog>
so we're in a good situation indeed, as you say :) hopefully within a few releases we'll have gotten to a stage where we can protect master at least? :)
orivej has joined #nixos-dev
<samueldr>
it'd be nice
<samueldr>
probably the next step is to figure out a story for the few use cases left
<samueldr>
I'm thinking the _actual_ solution is better tooling than github, but that's a hard sell, and maybe even requires development, which makes this a nonstarter