| 10 Nov 2023 |
raitobezarius | and how will it be a loud breakage? | 20:27:19 |
raitobezarius | basically people will have "set postgresql version" | 20:27:30 |
raitobezarius | and then they will set a pgsql version | 20:27:35 |
@gary.garyguo.net:lpc.events | And they'll set pgsql version to the one that they're running? | 20:28:11 |
raitobezarius | yep but how does that fix PG15 breakage? | 20:28:33 |
raitobezarius | they will set PG15 and it will be broken with nixos modules | 20:28:43 |
raitobezarius | and if they set PG14 and they were on PG15 it will make them believe their data disappeared? | 20:28:54 |
@gary.garyguo.net:lpc.events | If they're already running PG15, then either they migrated from PG14, in which case nothing will break, or they started clean in which case PG15 is broken to begin with so they won't have any data. | 20:30:02 |
bendlas |
If they're already running PG15, then either they migrated from PG14, in which case nothing will break
Wouldn't that mean that the data dir got upgraded and pg14 will refuse to start?
| 20:31:08 |
bendlas |
so people who are on 15 now and want back to 14 would need to dump and restore
| 20:31:57 |
@gary.garyguo.net:lpc.events | If you upgrade from PG14 to PG15, then you can keep using PG15 because PG15 changes the default permission on schema, but if a role is created before upgrade then it still keeps it. | 20:32:02 |
@gary.garyguo.net:lpc.events | * If you upgrade from PG14 to PG15, then you can keep using PG15 because PG15 changes the default permission on schema, but if a role is created before upgrade then it still keeps the permission. | 20:32:26 |
bendlas | still would require manual intervention, to set the default back up to 15 ... | 20:33:37 |
bendlas | but yeah, maybe it makes sense to separate these failure modes out ... | 20:34:05 |
bendlas | also, IMO it's called unstable for a reason, even if I don't like the sound of that sentiment ... | 20:34:31 |
@gary.garyguo.net:lpc.events | * If you upgrade from PG14 to PG15, then you can keep using PG15 because PG15 changes the default permission on schema, but if a database is created before upgrade then it still keeps the old default permission. | 20:36:03 |
bendlas | we have to also consider the social fallout: If you have to piss somebody of, and your only choice is "who?", then it's better to choose the group who's more likely to try to avoid a repetition of the experience by helping out in the future, instead of avoiding a repetition by stepping away ... | 20:38:34 |
bendlas | but maybe there is a way to piss nobody off, let's give ourselves time until monday for a final decision, as raitobezarius said ... | 20:39:52 |
raitobezarius | I think blocking on evaluation is the least way to piss people off | 20:48:07 |
raitobezarius | Because it doesn't break your deployment | 20:48:12 |
raitobezarius | It just make the upgrade painful | 20:48:21 |
raitobezarius | Stable or unstable people are honestly to me the same people | 20:48:35 |
raitobezarius | When I reason about which group to piss off | 20:48:40 |
raitobezarius | I would like to piss off the people who are good at remediating from those situations | 20:48:47 |
raitobezarius | Unfortunately, there's no channel called iamthexpertofanything | 20:48:59 |
bendlas | we could try asking chatgpt 🙃 | 20:49:38 |
raitobezarius | So in the end, we have to choose between evaluation errors or systemd runtime errors | 20:53:38 |
raitobezarius | I mean, if we remove the stateVersion, we can make a systemd runtime error an evaluation error and just after the fix, it's a systemd runtime error | 20:53:59 |
bendlas | In reply to @raitobezarius:matrix.org I think blocking on evaluation is the least way to piss people off yes. unfortunately, we only seem to have the infrastructure for doing that for the variant of outright removing the option ...
I guess the principled way of doing that would be to add a kind of system-level "check phase", where before system activation, something would check compatibility ....
| 20:54:09 |
bendlas | ... but it's also mighty late for attempting to squeeze a phase between eval and runtime ... 😅 | 20:55:23 |