Turns out that there are more than zero users that are upgrading from
old databases. I think we probably want to support this for now.
Tested against database in https://github.com/ppy/osu/discussions/16700
and one other I had locally, both work correctly.
I believe the [test
failures](https://github.com/ppy/osu/runs/4977283066?check_suite_focus=true)
we're seeing here are due to the implementation of interpolation of the
alpha being frame dependent (in a way that doesn't interact well with
tests). The reason for never hitting the expected value is that the
beatmap ends, causing the cursor to become fully visible again.
It's probably already good-enough for most cases, so let's attempt to
silence these test failures by not checking so precisely for the alpha
value.
We're checking for either 1 or 0 so it's not too important how close it
is to either.
As per https://github.com/ppy/osu/discussions/16668, even without proper
saving support some ruleset developers do want to work on the editor.
This brings things back into a workable state.
Caused by a `LoadComponentsAsync()` call being fired from a worker
thread, which will throw exceptions since the recent addition of safety
checks around that method.
Closes#16651.
When a ruleset is not available, the `Find` call would return null. When
a null is passed to the constructor, `BeatmapInfo` would create an "osu"
ruleset, which tries to get stored to realm and fails on duplicate
primary key.
Probably need to add better safeties against this (or change that
constructor...) but this will fix the migration process.
Probably not serious enough to pull the build. This only affects
rulesets like karaoke which have custom beatmaps.