The recording of my "How to Make Package Managers Scream" talk at FOSDEM'26 is now available, enjoy!

https://youtu.be/PBlDHlFnzGo

@boegel
1. Have some dependencies
2. Make some of the deps optional, but turn off features if they are missing
3. Dont document which dep is performance-critical
4. Make one of the performance-critical deps optional. If not found build the vendored copy of it with parallelism disabled.
5. Be a library yourself. When people depend on you, that project will too inflict the pain, since it is impossible to package you.
Bonus: dont document how your deps should be configured at *their* build time.
@Methylzero Sounds like the last 10 years of my life…

@boegel

> proposal for install.md to tell LLM how to install the software

Brilliant, where can I invest in your startup, sir? 😀

@vyskocilm That’s not my idea at all, I only have bad ideas. See link included in the slides.
@boegel AWESOME!!!!!!!! I LOVE YOU
@boegel Something mentioned (and shouted from the audience) is "make software that only compiles on a Wednesday after 3pm", but it seems to me that the reverse is far better: make software that only *doesn't* compile at some common but inscrutable time.
@operand @boegel we had pants fail to compile once when the git hash (1) started with a number of zeros (2) was parseable as a decimal number because of some internal serialization logic. we should never have been parsing git hashes in a generic way that could enable int parsing in the first place so i was very glad to have fixed that

@hipsterelectron @operand @boegel that was related to "0 at the start of a number of digits means octal, but if there's an 8 or 9, that means the input is invalid"?

I still have nightmares of "no" in a list of locale names inside yaml documents being parsed as boolean false value if you don't quote it to make clear it's meant to be a string ...

@timotimo @hipsterelectron @operand All of this is fuel for the potential 3rd instalment of this talk, which may happen in another 1000 years from now at FOSDEM 2034…
I intend to complete the trilogy eventually!
@hipsterelectron IIRC #Forgejo database migrations don't/didn't work if the version string starts with a letter other than v, but numbers are fine. If you build its Dockerfile on a commit that isn't tagged to a version, the resulting image might or might not fail migrating the database because of that. @operand @boegel
@boegel oh, I check off more of these than I thought!
@boegel anyway was super nice chatting to you ❤️
@JadedBlueEyes Likewise, have fun with that Raspberry Pi!