Before, sawmill log levels were very clunky to use. We set the root sawmill to something like debug or info, but then it becomes impossible to specify specific sawmills to be verbose. This is because sawmills checked the log level at every part of the hierarchy when navigating "up" to find log handlers to write into.
This changes the behavior so that the filter log level is the FIRST set log level encountered on the hierarchy. This means the log level is compared only once, and a sawmill down the hierarchy that has a level like Verbose set can cause verbose messages to come up even if the root is still set to Debug. This matches the logging behavior in libraries such as ASP.NET Core.
* Move to Central Package Management.
Allows us to store NuGet package versions all in one place. Yay!
* Update NuGet packages and fix code for changes.
Notable:
Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.
* Remove dotnet-eng NuGet package source.
I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.
* Fix double loading of assemblies due to ALC shenanigans.
Due to how the "sideloading" code for the ModLoader was set up, it would first try to load Microsoft.Extensions.Primitives from next to the content dll. But we already have that library in Robust!
Chaos ensues.
We now try to forcibly prioritize loading from the default ALC first to avoid this.
* Remove Robust.Physics project.
Never used.
* Remove erroneous NVorbis reference.
Should be VorbisPizza and otherwise wasn't used.
* Sandbox fixes
* Remove unused unit test package references.
Castle.Core and NUnit.ConsoleRunner.
* Update NUnit to 4.0.1
This requires replacing all the old assertion methods because they removed them 🥲
* Mute CA1416 (platform check) errors
TerraFX started annotating APIs with this and I can't be arsed to entertain this analyzer so out it goes.
* Fine ya cranky, no more CPM for Robust.Client.Injectors
* Changelog
* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.
* Central package management for remaining 2 robust projects
* Ok that was a bad idea let's just use NUnit 3 on the analyzer test project
* Oh right forgot to remove this one
* Update to a newer version of RemoteExecutor
* Disable RemoteExecutor test
https://github.com/dotnet/arcade/issues/8483 Yeah this package is not well maintained and clearly we can't rely on it.
* Fix immutable list serialization
* Add ISawmill.Verbose log helpers
* Verbose logs for server-side networking handshake.
* Replays: final boss
It does zippies now. It fucking works. Amazingly, in fact.
* Add ZipArchive to sandbox
* Removed the Interfaces folder.
* All objects inside the GameObjects subfolders are now in the GameObjects namespace.
* Added a Resharper DotSettings file to mark the GameObjects subfolders as not providing namespaces.
* Simplified Robust.client.Graphics namespace.
* Automated remove redundant using statements.
Actually respects terminal encoding.
Doesn't do ANSI characters if unsupported (Windows) or redirected.
Uses 4-bit color codes instead of RGB codes.
More optimal outputting of ANSI escape codes. It's const all the way down.
* Project file refactor
Move all the .csproj files to the new .NET Core style.
This doesn't make any difference for compiling for Framework,
but it does reduce a ton of useless boilerplate.
As an extension of this, killed a bunch of uncompiled & unmaintained .cs files.
Compiling for release (to profile) works now.
Removed AnyCPU targets from the solution file.
* Fix compiler warnings.
RobustToolbox projects should be named Robust.*
This PR changes the RobustToolbox projects from SS14.* to Robust.*
Updates SS14.* prefixes/namespaces to Robust.*
Updates SpaceStation14.sln to RobustToolbox.sln
Updates MSBUILD/SS14.* to MSBUILD/Robust.*
Updates CSProject and MSBuild references for the above
Updates git_helper.py
Removes Runserver and Runclient as they are unusable