Dean Herbert
45c5b7e7dd
Update framework
2022-07-07 17:13:16 +09:00
Dean Herbert
1a41d3ef20
Allow PlayerTestScene
to import the beatmap it's using
2022-07-07 16:42:36 +09:00
Dean Herbert
9d730f8440
Fix custom rulesets not importing scores at all
...
Replaces the error with the ability to import, minus replays.
Closes https://github.com/ppy/osu/issues/17350 (arguably, but let's go with it for now).
2022-07-07 14:49:23 +09:00
Dean Herbert
e1b434b5dc
Fix song select placeholder not showing convert hint for custom rulesets
2022-07-07 14:46:51 +09:00
Dean Herbert
e81cebf27d
Change storyboard parsing logic to not completely fail if only .osb
read fails
...
Changes to allow the storyboard to exist if only the `.osu` is
available. Reads better IMO.
2022-07-07 14:33:20 +09:00
Dean Herbert
c4b6893709
Add local handling of cases where a beatmap's file cannot be found on disk
2022-07-07 14:29:19 +09:00
Salman Ahmed
9115072917
Fix flaky tests not running at all with environment variable set
2022-07-07 04:24:10 +03:00
Dan Balasescu
b9acdcdbe2
Merge pull request #19014 from peppy/line-buffered-reader-simplification
...
Enable NRT and simplify `LineBufferedReader`
2022-07-06 20:27:04 +09:00
Dean Herbert
c2f1069073
Avoid usage of finally
in potentially hot path
2022-07-06 19:55:51 +09:00
Dean Herbert
01bc6e5cb7
Revert old behaviour of ReadToEnd
2022-07-06 19:55:51 +09:00
Dan Balasescu
6340caf27d
Merge pull request #19018 from peppy/memory-caching-component-statistics
...
Add statistics display for `MemoryCachingComponent`s
2022-07-06 19:20:36 +09:00
Dan Balasescu
9f76118ee0
Merge pull request #19015 from peppy/improve-beatmap-parsing-performance
...
Fix `BeatSyncedContainer` unintentionally blocking on beatmap load
2022-07-06 18:41:07 +09:00
Dean Herbert
a1b6ec60c8
Add statistics display for MemoryCachingComponent
s
...
Never sure if these are working as they should (or how well they are
working). This helps quite a bit.
2022-07-06 18:38:40 +09:00
Dean Herbert
12d396a513
Use -1
to specify default buffer size
2022-07-06 15:43:35 +09:00
Dean Herbert
ae49aafde2
Fix BeatSyncedContainer
unintentionally blocking on beatmap load
2022-07-06 14:58:06 +09:00
Dean Herbert
a52ea3cabe
Enable NRT and simplify LineBufferedReader
2022-07-06 14:57:56 +09:00
Dean Herbert
7053a8507b
Merge pull request #18993 from Joehuu/fix-personal-best-delete-context-menu
...
Fix personal best score showing delete option on context menu
2022-07-06 14:53:35 +09:00
Dean Herbert
6fb00d84f9
Apply NRT to LoginForm
and remove nullability of IAPIProvider
2022-07-06 01:29:00 +09:00
Dean Herbert
3a68f386a8
Add forgotten password link to login form
2022-07-06 01:25:04 +09:00
Dean Herbert
99afbc7b73
Add missing endpoint URLs
2022-07-05 22:15:52 +09:00
Dean Herbert
bdd1bf4da0
Save last processed id to config for now
2022-07-05 21:42:35 +09:00
Dean Herbert
59d0bac728
Hook up update flow to metadata stream
2022-07-05 21:32:00 +09:00
Dean Herbert
b0d4f7aff6
Add recovery logic after disconnection
2022-07-05 21:32:00 +09:00
Dean Herbert
d217d66852
Add OnlineMetadataClient
2022-07-05 21:32:00 +09:00
Dean Herbert
85e589f863
Merge pull request #19005 from Susko3/initial-cookie
...
Allow MIDI and joysticks to trigger the osu! cookie on the initial screen
2022-07-05 19:26:56 +09:00
Susko3
4c3789ec5d
Split into a function
2022-07-05 11:15:37 +02:00
Dean Herbert
33db508301
Add note regarding why the realmRetrievalLock
return is done on the async thread
2022-07-05 16:23:10 +09:00
Dean Herbert
5adec2c738
Ensure blocking restoration only completes after update callback work is completed
2022-07-05 14:39:14 +09:00
Dean Herbert
1b98936328
Rename realm ThreadLocal
to better convey what it's doing
...
Every time I looked at this code I have to re-learn what it's doing.
Changing these variable names should help quite a bit.
2022-07-05 13:38:25 +09:00
Susko3
bb0f212448
Trigger the initial cookie with midi and joysticks
2022-07-05 00:38:18 +02:00
Dean Herbert
506409a9c4
Fix realm backup creation failing when run from RealmAccess
constructor
...
At the point of construction, we are not on the update thread, but it
doesn't really matter at this point because there's no other usages.
2022-07-04 16:45:23 +09:00
Dean Herbert
64edc6888d
Add test coverage of corrupt realm creating backup
2022-07-04 16:45:23 +09:00
Dean Herbert
925d7b1fdc
Update framework
2022-07-04 15:01:01 +09:00
Dan Balasescu
65917fbb99
Merge pull request #18990 from andy840119/remove-nullable-disable-in-the-ruleset-filter
...
Remove nullable disable annotation in the ruleset filter.
2022-07-04 13:46:31 +09:00
Joseph Madamba
df152421a8
Fix personal best score showing delete option on context menu
2022-07-03 10:23:17 -07:00
Dean Herbert
e4bf2224c6
Update framework
2022-07-03 23:16:51 +09:00
andy840119
59e3d4b9e5
Remove the nullable disable annotation in the Ruleset.Filter namespace.
2022-07-03 21:00:54 +08:00
Dan Balasescu
9bf91835b6
Merge pull request #18962 from peppy/slider-range-control
...
Move star difficulty filter to song select
2022-07-03 21:58:00 +09:00
Dan Balasescu
385bd5a1b2
Merge pull request #18965 from peppy/mark-flaky-tests
...
Mark, document and silence remaining flaky tests on standard CI runs
2022-07-03 21:41:14 +09:00
Dan Balasescu
ccc322e100
Merge pull request #18985 from andy840119/remove-nullable-disable-in-the-replays
...
Remove nullable disable annotation in replays namespace
2022-07-03 21:19:36 +09:00
Dan Balasescu
724fd19038
Remove nullable disables
2022-07-03 21:15:13 +09:00
andy840119
8c2f4b48fc
Use debug.assert for better readable.
2022-07-03 19:27:56 +08:00
Dan Balasescu
1ccfd69690
Merge pull request #18978 from peppy/send-beatmap-hash-to-server
...
Send beatmap hash to server on solo score request
2022-07-03 13:18:17 +09:00
Dean Herbert
052a786eff
Only show hover effect on one nub at a time
2022-07-03 03:06:03 +09:00
Dean Herbert
7d8ea5e286
Remove unnecessary proxying
2022-07-03 02:59:10 +09:00
andy840119
0a1543c6e8
Use AsNonNull()
instead.
2022-07-02 19:48:32 +08:00
Dean Herbert
2a1777fa85
Merge branch 'master' into fix-player-star-difficulty-display
2022-07-02 18:57:46 +09:00
Salman Ahmed
9b833524c0
Merge branch 'master' into add-realm-blocking-logging
2022-07-02 12:41:36 +03:00
Dean Herbert
b626135940
Fix dragging slider bars on nub not performing correctly relative movement
2022-07-02 17:49:38 +09:00
Dean Herbert
24cd845d1b
Update framework
2022-07-02 17:18:50 +09:00
Salman Ahmed
e28ee8bc7a
Count time spent upwards to display attempts correctly
2022-07-02 10:46:52 +03:00
Dean Herbert
93809a92d4
Fix clashing error messaging during realm block operations
2022-07-02 16:30:04 +09:00
Salman Ahmed
a4b9097709
Merge branch 'master' into mod-overlay-appear-sfx
2022-07-02 09:28:24 +03:00
Salman Ahmed
19d300e311
Fix player loader not accepting star difficulty updates after display
2022-07-02 09:17:38 +03:00
andy840119
c6d0f0f81b
pretend that the beatmap property will not be null.
...
Not really throw exception will be the better way?
2022-07-02 13:20:46 +08:00
andy840119
ea573f314e
Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project.
2022-07-02 13:08:25 +08:00
andy840119
fa5f7c1a00
Remove the nullable disable annotation in the Replays namespace.
2022-07-02 13:03:01 +08:00
Dean Herbert
2cc9c579d4
Merge pull request #18969 from smoogipoo/fix-multiplayer-cross-pollution
...
Fix cross-pollution of server- and client-side multiplayer objects in tests
2022-07-02 13:18:35 +09:00
Dean Herbert
9e30c1de3e
Merge branch 'master' into mod-overlay-appear-sfx
2022-07-02 12:59:04 +09:00
Dean Herbert
a03abc747b
Tidy up comments and simplify bounding box centre logic
2022-07-02 12:58:34 +09:00
Dean Herbert
426c53fe65
Fix potential null being sent to extension method which doesn't support it
2022-07-02 12:50:28 +09:00
Dean Herbert
1fd9c64803
Change song select FooterButton
sound
2022-07-02 12:48:33 +09:00
Dean Herbert
4fd47b5fa0
Add more verbose logging to realm blocking process
2022-07-02 12:36:56 +09:00
Dean Herbert
634b6cdbbe
Send beatmap has to server on solo score request
...
Right now, the client does nothing to ensure a beatmap is in a valid
state before requesting to submit a score. There is further work to be
done client-side so it is more aware of this state (already handled for
playlists, but not for the solo gameplay loop), but the solution I have
in mind for that is a bit more involved.
This is not used server-side yet, but I want to get this sending so we
can start using it for some very basic validation.
Will resolve the basic portion of #11922 after implemented server-side.
2022-07-02 12:16:17 +09:00
Dean Herbert
623a99d53a
Update resources
2022-07-02 11:58:45 +09:00
Jamie Taylor
9d28d5f8ee
Update SFX for mod overlay show/hide
2022-07-01 20:43:12 +09:00
Dan Balasescu
3b1842a2c2
Merge pull request #18835 from peppy/beatmap-update-flow
...
Split out beatmap update tasks to `BeatmapUpdater` and invoke from editor save flow
2022-07-01 20:28:04 +09:00
Dean Herbert
0cf58646f4
Merge pull request #18803 from Joehuu/fix-overlay-header-tab-item-localisable-string
...
Fix profile header tab items not localising
2022-07-01 19:37:57 +09:00
Dean Herbert
6baccad058
Merge pull request #18821 from ggliv/locked-room-filter
...
Add room access type filter to multiplayer lounge screen
2022-07-01 19:37:43 +09:00
Dan Balasescu
084a65578c
Always clone messages incoming from client-side
2022-07-01 19:36:37 +09:00
Dan Balasescu
37acec1952
Isolate client's LocalUser from TestMultiplayerClient
2022-07-01 19:23:41 +09:00
Dan Balasescu
b64c0d011c
Isolate client's Room from TestMultiplayerClient
2022-07-01 19:23:25 +09:00
Dan Balasescu
0be858b5bf
Rename APIRoom -> ClientAPIRoom, remove unused asserts
2022-07-01 19:21:59 +09:00
Dan Balasescu
1c2ffb3bc4
Fix server-side objects being sent to client
2022-07-01 19:21:53 +09:00
Dean Herbert
b829884861
Merge pull request #18963 from peppy/more-placeholder-suggestions
...
Add difficulty filter reset to song select "no results" suggestions
2022-07-01 17:55:23 +09:00
Dean Herbert
b460a52faf
Merge pull request #18966 from smoogipoo/fix-flaky-multiplayer-test
...
Fix test sometimes referencing old ModSelect object
2022-07-01 17:55:06 +09:00
Salman Ahmed
5880b824d0
Simplify description logic for overlay tab items
2022-07-01 11:30:51 +03:00
Dean Herbert
e213c1a4ef
Rename enum to explicitly mention it is a filter
2022-07-01 17:27:03 +09:00
Salman Ahmed
7f9ef6c23f
Merge branch 'master' into fix-overlay-header-tab-item-localisable-string
2022-07-01 11:27:00 +03:00
Dean Herbert
9911c6cbf0
Merge branch 'master' into locked-room-filter
2022-07-01 17:17:01 +09:00
Salman Ahmed
3bca439c4f
Merge branch 'master' into more-placeholder-suggestions
2022-07-01 10:52:32 +03:00
Dan Balasescu
58c9bb031f
Apply PR reviews/fixes
2022-07-01 16:51:15 +09:00
Dan Balasescu
c22e77e481
Fix test sometimes referencing old ModSelect object
2022-07-01 16:46:27 +09:00
Dean Herbert
615c3234d8
Remove non-required NRT hint
2022-07-01 16:25:21 +09:00
Dean Herbert
c4f1660841
Rename ENVVAR in line with previous one (OSU_TESTS_NO_TIMEOUT
)
2022-07-01 16:20:34 +09:00
Dean Herbert
1777a6d24a
Add attribute to retry flaky tests on normal CI runs
2022-07-01 16:06:18 +09:00
Dean Herbert
58e25a3a01
Fix potential crash in BeatmapLeaderboard
during rapid refresh operations
2022-07-01 15:42:35 +09:00
Dan Balasescu
409224560f
Merge pull request #18874 from peppy/realm-fix-async-write-after-disposal
...
Ensure all async writes are completed before realm is disposed
2022-07-01 15:29:01 +09:00
Dean Herbert
3e0f4e7609
Add test coverage of difficulty filter reset
2022-07-01 15:28:55 +09:00
Dean Herbert
f3af612133
Suggest removing difficulty filter if no matches found at song select
2022-07-01 15:18:04 +09:00
Dean Herbert
545df0a8e8
Display difficulty on nub
2022-07-01 15:17:26 +09:00
Dean Herbert
cb9947b1c9
Align song select components a bit better
2022-07-01 15:17:12 +09:00
Dean Herbert
32139ac13f
Tidy up implementation and add basic visual test
2022-07-01 15:16:58 +09:00
Dean Herbert
d54f7fc728
Move slider range control to song select
2022-07-01 14:41:36 +09:00
Dean Herbert
3785027284
Update OsuSliderBar
colours to not use transparency
2022-07-01 14:41:36 +09:00
Dan Balasescu
42d56aa640
Merge pull request #18958 from andy840119/remove-nullable-disable-in-the-extension
...
Remove nullable disable annotation in the extension namespace.
2022-07-01 13:52:12 +09:00
andy840119
48047f2e58
Move the null check in the outside.
...
AddCursor() should not accept the null value.
2022-06-30 23:29:49 +08:00
andy840119
a5b1f1a688
mark the string as nullable.
2022-06-30 23:23:14 +08:00
andy840119
26de34da84
Remove the nullable disable annotation.
2022-06-30 23:20:40 +08:00
andy840119
e50e0f7339
Remove the nullable disable annotate.
2022-06-30 23:05:09 +08:00
cdwcgt
33209ecd25
remove useless value change
2022-06-30 19:51:58 +09:00
Dean Herbert
447b496eff
Merge branch 'master' into realm-fix-async-write-after-disposal
2022-06-30 19:07:15 +09:00
Dean Herbert
2a73210865
Add xmldoc and update parameter naming for MemoryCachingComponent.Invalidate
flow
2022-06-30 17:17:06 +09:00
Dean Herbert
aab4dcefbd
Remove unnecessary invalidation handling flow
2022-06-30 17:13:26 +09:00
Dean Herbert
0698471627
Move BeatmapOnlineLookupQueue
to inside BeatmapUpdater
2022-06-30 17:03:19 +09:00
Dean Herbert
ef42c6ecdf
Add missing xmldoc
2022-06-30 16:51:31 +09:00
Dean Herbert
e34c2f0aca
Remove unnecessary nullable-enable
2022-06-30 16:47:26 +09:00
Dean Herbert
82134ad1a6
Allow null
parameter to GetWorkingBeatmap
for now
2022-06-30 16:46:28 +09:00
Dean Herbert
98938821e5
Merge branch 'master' into beatmap-update-flow
2022-06-30 16:44:17 +09:00
Dean Herbert
356c0501ec
Guard again potential nulls in RealmNamedFileUsage
...
Hopefully help in figuring out https://sentry.ppy.sh/organizations/ppy/issues/3679/?project=2&query=user%3A%22id%3A10078484%22
2022-06-30 15:40:57 +09:00
Dean Herbert
78d86fd3ff
Fix PerformWrite
not rolling back transaction on exception
2022-06-30 15:15:09 +09:00
Dean Herbert
e89f220e9a
Merge pull request #18949 from smoogipoo/fix-flaky-star-display-test
...
Ensure PlaylistItem's beatmap is not null
2022-06-30 15:15:06 +09:00
Dan Balasescu
c6520de749
Ensure PlaylistItem beatmap is not null
2022-06-30 14:24:49 +09:00
Dan Balasescu
edc4ace17e
Attach DT with NC, SD with PF, and Cinema with Autoplay
2022-06-30 11:52:30 +09:00
Dean Herbert
582175c3a4
Update framework
2022-06-29 22:57:52 +09:00
cdwcgt
fd0d8b1ce3
Add button state, fix async issues, watch replay method
...
Most borrowed from `ReplayDownloadButton`
2022-06-29 22:50:47 +09:00
Dean Herbert
7cb4e32c17
Add one more lock to appease CI
2022-06-29 22:45:19 +09:00
Dean Herbert
a3b4a515fc
Merge branch 'master' into realm-fix-async-write-after-disposal
2022-06-29 22:39:05 +09:00
Dean Herbert
18d465eff7
Guard against NaN
star difficulty results
2022-06-29 21:02:29 +09:00
Dean Herbert
32af4e41ea
Add back thread safety and locking as required
2022-06-29 20:56:01 +09:00
Salman Ahmed
87e3b44181
Ensure icon is loaded inside try-catch
2022-06-29 13:37:42 +03:00
Salman Ahmed
e3eba58cb6
Catch in triangles intro
2022-06-29 13:37:42 +03:00
Dean Herbert
6c64cea057
Catch a second location
2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a
Guard against ruleset icon creation failures to avoid whole game death
2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71
Merge branch 'master' into speed-acc-scaling
2022-06-29 16:15:20 +09:00
Dan Balasescu
f435f0d8e4
Merge pull request #18920 from andy840119/remove-nullable-disable-in-the-migration
...
Remove the nullable disable annotations in the class belongs to the migration namespace.
2022-06-29 14:40:11 +09:00
Dan Balasescu
fde5b2cf2b
Merge pull request #18921 from andy840119/remove-nullable-disable-in-the-localisation
...
Remove the nullable disable annotation in the localisation.
2022-06-29 13:51:50 +09:00
Dan Balasescu
114f1b47c4
Merge branch 'master' into remove-nullable-disable-in-the-migration
2022-06-29 13:11:45 +09:00
Bartłomiej Dach
a0125cbb62
Merge branch 'master' into fix-da-settings-slider-padding
2022-06-28 20:53:07 +02:00
Dean Herbert
ecdb30d215
Fix one more case of collection modification during enumeration
...
https://sentry.ppy.sh/share/issue/a61c27b2a63a4a6aa80e75873f9d87ca/
2022-06-29 02:28:23 +09:00
Joseph Madamba
aacded0ecf
Fix difficulty adjust settings having more padding on sliders
2022-06-28 07:33:05 -07:00
andy840119
de7f2a0bba
Remove the nullable disable annotation in the localisation.
2022-06-28 20:59:57 +08:00
andy840119
2269f1046e
Remove the nullable disable annotations.
2022-06-28 20:59:03 +08:00
cdwcgt
946178ca41
Remove useless LocalisableDescription
2022-06-28 20:03:21 +09:00
Dean Herbert
7c9c499e19
Update resources (translation updates)
2022-06-28 19:21:46 +09:00
Dean Herbert
c282e19316
Update language initialisation in line with framework LocalisationManager
changes
2022-06-28 18:19:48 +09:00
Dean Herbert
975ba83838
Update framework
2022-06-28 18:19:48 +09:00
Dean Herbert
e10ac45fd7
Remove probably redundant realmLock
...
As far as I can tell all accesses are safe due to update thread
guarantees. The only weird one may be async writes during a
`BlockAllOperations`, but the `Compact` loop should handle this quite
amicably.
2022-06-28 16:55:54 +09:00
Dan Balasescu
d630b62cfc
Merge pull request #18915 from peppy/slider-snaking-test-refactoring
...
Apply various refactorings to `TestSceneSliderSnaking`
2022-06-28 16:16:35 +09:00
Dan Balasescu
8e4a6c43b5
Merge pull request #18914 from peppy/spectator-playback-test-leniences
...
Increase leniences on `TestSceneSpectatorPlayback.TestWithSendFailure`
2022-06-28 16:15:51 +09:00
Dean Herbert
6bfd351dec
Add logging of GameplayClockContainer
seeks
2022-06-28 15:23:29 +09:00
Dean Herbert
35745c83b7
Replace dodgy SetUpSteps
overriding with usage of HasCustomSteps
2022-06-28 15:19:02 +09:00
Dean Herbert
22b254e5c5
Handle task exception outside of schedule to avoid unobserved exceptions
2022-06-28 15:09:28 +09:00
Dean Herbert
c1075d113f
Add logging around current channel changes and join requests
...
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false ):
```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test: TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]: ⏳ Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker: min 1 max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion: min 1 max 1,000 available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```
This kind of logging should be helpful:
```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
2022-06-28 14:00:30 +09:00
Bartłomiej Dach
93e13ef890
Merge branch 'master' into no-invalid-operation-without-message
2022-06-27 19:11:08 +02:00
Dean Herbert
54fe6b7df3
Fix incorrect string interpolation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-06-28 01:43:09 +09:00
Dean Herbert
569fde4b47
Add messages to all InvalidOperationException
s
...
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dean Herbert
b28cfc222b
Schedule unregister instead
2022-06-28 01:19:28 +09:00
Dean Herbert
3e3843dcf9
Fix potential crash on CloseAllOverlays
due to collection mutation
2022-06-28 00:32:36 +09:00
Dan Balasescu
d43b980a17
Merge pull request #18872 from peppy/add-working-beatmap-changed-logging
...
Add various logging of global `WorkingBeatmap` state changes
2022-06-27 21:34:05 +09:00
Dan Balasescu
c2b03cb6b9
Merge pull request #18875 from peppy/logging-finalise-selection-abort-operations
...
Add logging for various cases of `SongSelect.FinaliseSelection` being aborted
2022-06-27 21:33:51 +09:00
Dan Balasescu
6c6de9ce53
Fix typo
2022-06-27 20:40:02 +09:00
Dan Balasescu
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
...
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dean Herbert
aa7d54f8b6
Add logging for various cases of SongSelect.FinaliseSelection
being aborted
2022-06-27 20:10:17 +09:00
Dean Herbert
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
...
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
Dean Herbert
83982d258d
Throw immediately if attempting to WriteAsync
after disposed
2022-06-27 19:34:28 +09:00
Dean Herbert
c39c99bd43
Ensure all async writes are completed before realm is disposed
2022-06-27 19:21:05 +09:00
Dan Balasescu
8f91ce8f0c
Merge pull request #18871 from peppy/fix-realm-assertion-during-tests
...
Fix occasional failure in realm test proceedings due to incorrect `Debug.Assert`
2022-06-27 18:48:47 +09:00
Dean Herbert
50c1c066de
Add various logging of global WorkingBeatmap
state changes
2022-06-27 18:41:31 +09:00
Dean Herbert
0ba29b6fa6
Use currentScreen
instead to make sure the screen we care about is loaded
2022-06-27 18:28:00 +09:00
Dan Balasescu
b13fa924fd
Merge pull request #18865 from peppy/fix-flaky-chat-test
...
Fix chat tests failing 1/10000 runs
2022-06-27 18:06:00 +09:00
Dean Herbert
f6a61472c4
Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
...
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.
To ensure this works as expected, I've tracked the initialised state via
a new `bool`.
```csharp
System.TimeoutException : Attempting to block for migration took too long.
1) Host threw exception System.AggregateException: One or more errors occurred. (: )
---> NUnit.Framework.AssertionException: :
at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
at System.Diagnostics.Debug.Fail(String message, String detailMessage)
at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Graphics.Drawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```
https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
Dean Herbert
13dcaf82ad
Fix chat tests failing 1/10000 runs
...
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)
Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8
Centralise and harden editor-ready-for-use check
...
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:
```csharp
05:19:07 osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07 Failed TestAddAudioTrack [161 ms]
05:19:07 Error Message:
05:19:07 TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07 Stack Trace:
05:19:07 --TearDown
05:19:07 at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07 at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07 at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07 at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07 at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07 at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07 at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07 at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07 at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07 at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dan Balasescu
0fd2c010e5
Remove NRT disables from attributes classes
2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8
Add IBeatmapOnlineInfo parameter and use to extract more data
2022-06-27 16:07:15 +09:00
Dan Balasescu
f6a6538e96
Add more properties to IBeatmapOnlineInfo
2022-06-27 16:07:15 +09:00
Dean Herbert
10d1bbb131
Log global working beatmap updates in OsuGameBase
instead of OsuGame
2022-06-27 15:58:51 +09:00
Dean Herbert
01487a1185
Add assertion on realm re-fetch being not-null
2022-06-27 15:52:45 +09:00
Dean Herbert
13c8d33009
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 15:29:01 +09:00
Dean Herbert
da61d0547f
Include archive name in import log output
2022-06-27 15:24:25 +09:00
Dan Balasescu
2b278ed324
Merge pull request #18841 from peppy/menu-cursor-better-rotation
...
Adjust menu cursor rotation to use a floating centre-point
2022-06-27 14:18:54 +09:00
Dean Herbert
1a22377e19
Fix test deadlock due to TPL threadpool saturation
...
As found in aggressive CI runs:
```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```
Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00
Dean Herbert
2ecab454aa
Adjust animations and tolerances to make things feel snappier
2022-06-25 19:50:10 +09:00
Dean Herbert
a039f9878a
Adjust menu cursor rotation to follow mouse, rather than be fixated around original click location
2022-06-25 19:33:44 +09:00
Bartłomiej Dach
a83c45b50e
Fix compile failures from framework breaking change
2022-06-24 16:07:14 +02:00
Bartłomiej Dach
df30bedab6
Update framework again
2022-06-24 16:01:52 +02:00
Dean Herbert
14327943a2
Update framework
2022-06-24 21:28:30 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511
Merge branch 'master' into c-sharp-10
2022-06-24 21:22:33 +09:00
Dean Herbert
7692bac35a
Simplify refetch (and ensure to invalidate after processing)
2022-06-24 21:02:38 +09:00
Dean Herbert
0c3d890f76
Fix reprocessing not working on import due to realm threading woes
2022-06-24 21:02:38 +09:00
Dean Herbert
30b3973c9f
Difficulty cache invalidation flow
2022-06-24 21:02:38 +09:00
Dean Herbert
66a01d1ed2
Allow song select to refresh the global WorkingBeatmap
after an external update
2022-06-24 21:02:38 +09:00
Dean Herbert
6999933d33
Split updater process into realm transaction and non-transaction
2022-06-24 21:02:38 +09:00
Dean Herbert
021b16f2f3
Ensure WorkingBeatmap
is invalidated after update
2022-06-24 21:02:38 +09:00
Dean Herbert
fe570d8052
Queue beatmaps for update after editing
2022-06-24 21:02:38 +09:00
Dean Herbert
06d59b717c
Move beatmap processing tasks to new BeatmapUpdater
class
2022-06-24 21:02:37 +09:00
Dean Herbert
2ca4184eda
Merge pull request #18834 from bdach/ban-implicit-to-lower-upper
...
Disallow usage of `string.To{Upper,Lower}()` without explicit culture
2022-06-24 20:39:58 +09:00
Dan Balasescu
7eb49dac7a
Merge pull request #18832 from peppy/bdc-remove-unused-path
...
Remove unused bindable retrieval flow in `BeatmapDifficultyCache`
2022-06-24 20:20:23 +09:00
Dean Herbert
823b3c1c0f
Ensure WorkingBeatmap
is always using a detached instance
2022-06-24 19:07:54 +09:00
Dean Herbert
2ae48d5a87
Rename incorrect parameter name in BeatmapManager.GetWorkingBeatmap
2022-06-24 19:07:54 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}()
2022-06-24 11:57:45 +02:00
Dean Herbert
c179127670
Remove unused bindable retrieval flow
2022-06-24 17:09:56 +09:00
Dean Herbert
0755430006
Use AddOnce
for update calls
2022-06-24 17:09:56 +09:00
Dean Herbert
8912f07745
Merge branch 'master' into difficulty-icon-refactor-pass
2022-06-24 16:34:35 +09:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Dean Herbert
28837693e5
Nuke calculating everything
...
The whole component is pointless so I'm just going to nuke for now I
guess. Kind of makes the whole refactor effort pointless but oh well?
To expand on this, the implementation was actually incorrect as pointed
out at https://github.com/ppy/osu/pull/18819#pullrequestreview-1017886035 .
2022-06-24 14:24:06 +09:00
Dean Herbert
12ea8369ee
Update retriever to be relatively sized
2022-06-24 14:06:31 +09:00
Dean Herbert
d9c1a9d71f
Use new property to specify no tooltip, rather than passing only ruleset
2022-06-24 14:06:18 +09:00