today is the first time i encountered recursive submodules in the wild (i'm looking at a repository that includes itself as a submodule 13 times)
working with this repo does not spark joy
you know how it is

i am slowly becoming a "(GitHub|Forgejo) Actions expert" in the same way and sense as i have become a CMake expert

distressing.

@whitequark normally, I’d say something about being an Expert by Virtue of Least Ignorance, but you clearly don’t require such caveats: you’re an expert, though possibly against your better interests
@whitequark I dislike the Actions model and prefer GitLab’s CI system which is basically just shell wrapped in YAML. That’s maybe wrong-headed of me; I don’t know.
We still use Jenkins at work and, for my sins and indiscretions, I have to deal with a bunch of Groovy scripting and plugins. My longer term takeaway from this is that CI should reuse the same scripting or patterns that a maintainer uses to perform the build and testing runs and not something else. I don’t know if that’s something that generalizes fully, but I’d make it that way in a heartbeat if I could at work.
@c0dec0dec0de I mean nothing stops you from making an Actions workflow that's one big run: step
@whitequark that’s a good point. As long as any reporting can be done from logs of that stage or cached artifacts, that would get the best of both worlds.
@whitequark at some point in the indeterminate future, I will probably need to assist in migrating from Jenkins to GitLab CI and we’re going to lose the convenient all-in-one-app metrics/diagnostics except as downloadable reports (as I understand it).

@whitequark

find_package(ArguablyUnnecessaryGHAIntegrationHelpers)

in all seriousness, a cmake helper for deploying to Pages has _a_ reason to exist?

@r hmm, it's one add_custom_target but it would first need to acquire git-pages-cli... could be useful

@whitequark fwiw, "needing to compile the compiler first" (or, usually, a less extreme but approximately equivalent form, "needing to either compile or acquire dependencies for (e.g. via PyPI) a bespoke preprocessing tool") is basically _the_ use case that causes us to prefer "ad-hoc garbage build system" over something more principled

so more examples of that throughout the ecosystem might be beneficial if you have "principled build systems" as a goal

@r i mean in case of git-pages-cli (a client application which has no meaningful security relevance because it's equivalent to tar|curl) i would probably hardcode the checksums for a few architectures and be done with it
@whitequark I am sorry for your loss
@whitequark
Someone has to fight the forces of evil.
Congratulations. 
@whitequark fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! fixup! WIP
@whitequark
this most certainly is how it is
@whitequark we all know those will be permanent
@lixou i am very anal about rewriting history
@whitequark you know, I’ve read 1984 in the last two days, this is funny now.

@whitequark CI done well: an extra run of the normal quick checks you could totally have done locally, but might have forgot to.

CI as I usually see it done: I know this is the most painful and demoralizing feedback loop you've ever had to squeeze yourself through, but good news! It's also wasting incredible amounts of cloud compute resources 💜🥰

@MaddieM4 i agree broadly but i'm not really convinced about the resources. this is because since i started running my Actions CI workflows locally and measured the actual power consumption, the resource use in real terms is something along the lines of "running the dishwasher once is going to be as bad as your monthly CI needs"
@MaddieM4 this is obviously different for projects which launch eighteen parallel builds which each compile a rust application on every core, but even building big C++ projects uses pretty miniscule amounts of electricity. i can come back with hard numbers if you'd like. and this is measured on a 2011-era Xeon, which nobody even runs anymore

@whitequark that's neat! You are far more "on it" than most people.

I did a local runner setup once and loved how fast jobs started compared to the default setup, but never did any electrical or network measurements.

@MaddieM4 the CI machine with a 20-core Xeon i have at home idles at about 50W and spikes to about 100W when running a build. i'm going to ignore base load for the moment since in a datacenter that would be shared between thousands of users. 50W for 10min (a reasonable amount of time to build a big C++ project like Yosys) is 0.008 kWh. it's equivalent to leaving your bathroom light on for a hour. or running a kettle for 40 seconds

this is a rounding error

@whitequark @MaddieM4 Also, there's probably enough projects that could host CI on very minimal systems (e.g. something embedded with an idle power consumption of 10W), and power that using local solar power or such (especially since many of them don't need to have 99% uptime, "when the sun is shining + some battery storage") most of the time.

I did that for some time in the past (although it very strictly needed battery buffering in order to be able to spin up an HDD during boot).

@fogti @MaddieM4 this is true, albeit i am personally not in favor of it because of economies of scale (if you can consolidate 100 projects' CI needs onto one server, the energy embodied in producing 100 small systems, their associated solar panels, batteries, the human effort involved in maintaining it, is going to far outstrip the resources used by the one server)
@fogti @MaddieM4 i talk about this regularly, but something that isn't well appreciated is that while decentralization provides some additional resiliency (which is still not absolute as it also creates many additional points of failure if not managed well), this is a tradeoff against efficient resource use. you are doing things redundantly on purpose and that has a cost
@fogti @MaddieM4 this is not an argument in favor of centralizing everything to one provider, like GitHub. portability is important! but everybody running their own CI is a bit like everybody growing their own crops. it's not a great way to live in a society