| 14 Dec 2024 |
6pak | if a popular dependency like avalonia used dynamic loading then probably yes | 02:12:51 |
6pak | so you can just patch it in one place and reuse everywhere | 02:13:08 |
6pak | wdym? | 02:14:09 |
6pak | you can just force roll forward with an env variable | 02:14:27 |
GGG | oh? I thought it needed a rebuild | 02:14:48 |
6pak | and fixing the subtle breaking changes in the few programs that are actually affected can't really be done in automated fashion | 02:15:10 |
GGG | oh, I wasn't planning to fix anything | 02:15:24 |
GGG | just change which runtime it wanted | 02:15:28 |
GGG | I didn't know (or forgot) about the roll forward env var | 02:15:38 |
6pak | DOTNET_ROLL_FORWARD=LatestMajor | 02:17:25 |
6pak | https://learn.microsoft.com/en-us/dotnet/core/versions/selection#framework-dependent-apps-roll-forward | 02:17:32 |
GGG | oh huh | 02:17:55 |
GGG | even the apphost accepts that CLI arg | 02:17:59 |
GGG | that's kinda wild | 02:18:03 |
6pak | the breaking changes are mostly theoretical | 02:18:31 |
6pak | practically you can almost always roll forward | 02:18:39 |
GGG | yeah, given MS' crippling fear of breaking changes, I doubt the runtime would have any | 02:18:51 |
GGG | I usually only see breaking changes on packages and the SDK itself, don't think I've seen one in the runtime | 02:19:07 |
GGG | other than with stuff like BinarySerializer | 02:19:12 |
6pak | keep in mind .NET SDK also breaks 4 times a year (feature bands) | 02:19:46 |
6pak | yeah it's generally long deprecated stuff like that | 02:20:09 |
6pak | the most impactful one I can remember is the stream changes | 02:20:47 |
GGG | stream changes? | 02:24:27 |
6pak | https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/partial-byte-reads-in-streams | 02:24:40 |
GGG | oh | 02:24:52 |
6pak | impactful as in I've seen something break myself | 02:24:59 |
6pak | it's generally really subtle stuff | 02:25:11 |
6pak | almost never actual binary breaking changes | 02:25:35 |
6pak | actually even BinarySerializer wasn't fully removed was it? | 02:26:04 |
6pak | * actually even BinaryFormatter wasn't fully removed was it? | 02:26:20 |