Use actual BeatmapInfo rather than PlayableBeatmap.BeatmapInfo for editor writes#15075
Conversation
|
I... have no idea how this failed so many times on CI. I can't repro locally, something very weird. |
|
I cannot reproduce the failures, either. Tried adding thread sleeps in a few places too and got nothing for it... |
|
I feel like CI just broke in some way. Let's see if a master merge fixes.. |
b609212 to
8a4c0c0
Compare
634f55e to
ad07324
Compare
|
I've confirmed the theoretical I described on discord is indeed the cause of the failures. Essentially the problem is that The above also explains why waiting for metadata section's I have a few immediate ideas on how to fix, the easiest of which would be changing away from the setup screen before modifying None of those sound like "transferring single direction" mentioned on discord though, so I'm unsure what was meant by that. As far as I can see the data is already only transferred one direction only after all (namely, out from the metadata screen to the editor beatmap). Maybe that was supposed to read as transferring in both directions? |
|
Changing away from the screen sounds best for now. As you mention, updating things for realm will likely fix this in a forceful way. You can ignore what I said above - I misunderstood what the underlying issue was here. |
|
This should be good to go, finally. |
Closes ppy#32420. The failure cause here is that in editor the beatmap version for the beatmap affected (or... any beatmap, really), is 0 (ZERO). That is probably a regression from ppy#32315, but like... can we universally agree that calling that change "a regression" in any capacity is dumb? Like what was that code *doing* playing dumb reference games and copying stuff into an arbitrary instance that could get or not get used later on? And now you have a 50/50 chance of accessing the *correct* model's field, depending on whether you go via `BeatmapInfo` or `Beatmap.BeatmapInfo`? Moving the field to `IBeatmap`, i.e. what is by now - by consensus, since ppy#28473 - supposed to be the "decoded and materialised" beatmap, fixes this issue. I probably should have done this as part of ppy#28473 but it slipped my mind. Probably for the better too because this change has rather large chances of breaking stuff so maybe better to examine it in isolation (via diffcalc runs or whatever). For added humour points, you'd say that the field on `BeatmapInfo` was not `[Ignore]`d, so this is a realm schema change, right? No. As far as I can tell, it's not. I opened realm studio and `BeatmapVersion` *is not a listed column` on `Beatmap` models. I'm also not gonna get into the fact that I think `EditorBeatmap` doing dumb games with juggling two `BeatmapInfo` references since ppy#15075 is bad, because I don't think I have the mental capacity to hotfix this by going down that train of thought.
This will make more sense after
IBeatmap.BeatmapInfois of typeIBeatmapInfo. Keep that in mind when reviewing.Closes #14716 (again).