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.