feat: Updates to .NET 9 (#1984)
### Summary * Bumps to .NET 9 with updated dependencies * Comparing a value type against null is no longer allowed * CI/CD now uses the version specified in global.json * Serialization generator updated to .NET 9 with bug fixes, fixes to turkish language, and parallelization
This commit is contained in:
parent
51d15d264c
commit
c75514cc04
24 changed files with 56 additions and 58 deletions
|
|
@ -3,7 +3,7 @@
|
|||
"isRoot": true,
|
||||
"tools": {
|
||||
"modernuoschemagenerator": {
|
||||
"version": "2.11.3",
|
||||
"version": "2.12.10",
|
||||
"commands": [
|
||||
"ModernUOSchemaGenerator"
|
||||
]
|
||||
|
|
|
|||
8
.github/workflows/build-test.yml
vendored
8
.github/workflows/build-test.yml
vendored
|
|
@ -23,10 +23,10 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
|
||||
- name: Setup .NET 8
|
||||
- name: Install .NET 9
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
global-json-file: global.json
|
||||
- name: Install Prerequisites
|
||||
run: |
|
||||
brew update
|
||||
|
|
@ -86,10 +86,10 @@ jobs:
|
|||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
|
||||
- name: Setup .NET 8
|
||||
- name: Install .NET 9
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
global-json-file: global.json
|
||||
- name: Build
|
||||
run: ./publish.cmd Release
|
||||
- name: Test
|
||||
|
|
|
|||
4
.github/workflows/create-release.yml
vendored
4
.github/workflows/create-release.yml
vendored
|
|
@ -14,10 +14,10 @@ jobs:
|
|||
with:
|
||||
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
|
||||
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
||||
- name: Setup .NET 8
|
||||
- name: Install .NET 9
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 8.0.x
|
||||
global-json-file: global.json
|
||||
- name: Install NGBV
|
||||
uses: dotnet/nbgv@master
|
||||
id: nbgv
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<Authors>Kamron Batman</Authors>
|
||||
<Company>ModernUO</Company>
|
||||
<Copyright>2019-2023</Copyright>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net9.0</TargetFramework>
|
||||
<LangVersion>12</LangVersion>
|
||||
<PublicRelease>true</PublicRelease>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
|
|
@ -62,11 +62,11 @@
|
|||
<AnalysisLevel>latest</AnalysisLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Serilog" Version="4.0.2" />
|
||||
<PackageReference Include="Serilog.Sinks.Async" Version="2.0.0" />
|
||||
<PackageReference Include="Serilog" Version="4.2.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Async" Version="2.1.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
|
||||
<PackageReference Include="Nerdbank.GitVersioning" Condition="!Exists('packages.config')">
|
||||
<Version>3.6.143</Version>
|
||||
<Version>3.6.146</Version>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<AdditionalFiles Include="..\..\Rules.ruleset" />
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<RootNamespace>Server.Tests</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ public class ArtData : IDisposable
|
|||
|
||||
Span<ushort> buffer = stackalloc ushort[entry.Size / 2];
|
||||
_dataStream.Seek(entry.Offset, SeekOrigin.Begin);
|
||||
_dataStream.Read(MemoryMarshal.AsBytes(buffer));
|
||||
_ = _dataStream.Read(MemoryMarshal.AsBytes(buffer));
|
||||
|
||||
var width = buffer[2];
|
||||
var height = buffer[3];
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public static class UOClient
|
|||
{
|
||||
using FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
var buffer = GC.AllocateUninitializedArray<byte>((int)fs.Length, true);
|
||||
fs.Read(buffer);
|
||||
_ = fs.Read(buffer);
|
||||
// VS_VERSION_INFO (unicode)
|
||||
Span<byte> vsVersionInfo = stackalloc byte[]
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3077,7 +3077,7 @@ public class Item : IHued, IComparable<Item>, ISpawnable, IObjectPropertyListEnt
|
|||
|
||||
public virtual void SendWorldPacketTo(NetState ns, ReadOnlySpan<byte> world = default)
|
||||
{
|
||||
if (world != null)
|
||||
if (world != ReadOnlySpan<byte>.Empty)
|
||||
{
|
||||
ns?.Send(world);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public static class Localization
|
|||
{
|
||||
using var fs = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
Span<byte> header = stackalloc byte[6];
|
||||
fs.Read(header);
|
||||
_ = fs.Read(header);
|
||||
|
||||
byte[] data;
|
||||
BufferReader br;
|
||||
|
|
@ -120,7 +120,7 @@ public static class Localization
|
|||
else
|
||||
{
|
||||
data = GC.AllocateUninitializedArray<byte>((int)fs.Length - 6);
|
||||
fs.Read(data);
|
||||
_ = fs.Read(data);
|
||||
br = new BufferReader(data);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -449,7 +449,7 @@ public partial class NetState : IComparable<NetState>, IValueLinkListNode<NetSta
|
|||
|
||||
public void Send(ReadOnlySpan<byte> span)
|
||||
{
|
||||
if (span == null || this.CannotSendPackets())
|
||||
if (span == ReadOnlySpan<byte>.Empty || this.CannotSendPackets())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ public readonly struct Serial : IComparable<Serial>, IComparable<uint>,
|
|||
|
||||
public bool TryFormat(
|
||||
Span<char> destination, out int charsWritten, ReadOnlySpan<char> format, IFormatProvider provider
|
||||
) => format != null
|
||||
) => format != ReadOnlySpan<char>.Empty
|
||||
? Value.TryFormat(destination, out charsWritten, format, provider)
|
||||
: destination.TryWrite(provider, $"0x{Value:X8}", out charsWritten);
|
||||
|
||||
|
|
|
|||
|
|
@ -35,11 +35,11 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.3.2" />
|
||||
<PackageReference Include="LibDeflate.Bindings" Version="1.0.2.120" />
|
||||
<PackageReference Include="PollGroup" Version="1.5.1" />
|
||||
<PackageReference Include="System.IO.Hashing" Version="8.0.0" />
|
||||
<PackageReference Include="PollGroup" Version="1.6.1" />
|
||||
<PackageReference Include="System.IO.Hashing" Version="9.0.0" />
|
||||
|
||||
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
|
||||
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.11.3" />
|
||||
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.12.10" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AdditionalFiles Include="Migrations/*.v*.json" />
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ public static class StringHelpers
|
|||
)
|
||||
{
|
||||
size = 0;
|
||||
if (a == null || a.Length == 0)
|
||||
if (a == ReadOnlySpan<char>.Empty || a.Length == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -72,7 +72,7 @@ public static class StringHelpers
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static string Remove(this ReadOnlySpan<char> a, ReadOnlySpan<char> b, StringComparison comparison)
|
||||
{
|
||||
if (a == null)
|
||||
if (a == ReadOnlySpan<char>.Empty)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -338,7 +338,7 @@ public class TileMatrix
|
|||
|
||||
fixed (StaticTile* pTiles = staTiles)
|
||||
{
|
||||
DataStream.Read(new Span<byte>(pTiles, length));
|
||||
_ = DataStream.Read(new Span<byte>(pTiles, length));
|
||||
|
||||
if (m_Lists == null)
|
||||
{
|
||||
|
|
@ -423,7 +423,7 @@ public class TileMatrix
|
|||
|
||||
fixed (LandTile* pTiles = tiles)
|
||||
{
|
||||
MapStream.Read(new Span<byte>(pTiles, 192));
|
||||
_ = MapStream.Read(new Span<byte>(pTiles, 192));
|
||||
}
|
||||
|
||||
return tiles;
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ public class TileMatrixPatch
|
|||
var tiles = new LandTile[64];
|
||||
fixed (LandTile* pTiles = tiles)
|
||||
{
|
||||
fsData.Read(new Span<byte>(pTiles, 192));
|
||||
_ = fsData.Read(new Span<byte>(pTiles, 192));
|
||||
}
|
||||
|
||||
matrix.SetLandBlock(x, y, tiles);
|
||||
|
|
@ -149,7 +149,7 @@ public class TileMatrixPatch
|
|||
|
||||
fixed (StaticTile* pTiles = staTiles)
|
||||
{
|
||||
fsData.Read(new Span<byte>(pTiles, length));
|
||||
_ = fsData.Read(new Span<byte>(pTiles, length));
|
||||
|
||||
StaticTile* pCur = pTiles, pEnd = pTiles + tileCount;
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public static class HashUtility
|
|||
|
||||
public static uint ComputeHash32(ReadOnlySpan<char> str)
|
||||
{
|
||||
if (str == null)
|
||||
if (str == ReadOnlySpan<char>.Empty)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<Configurations>Debug;Release;Analyze</Configurations>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ namespace Server.Misc
|
|||
|
||||
var name = tokenizer.MoveNext() ? tokenizer.Current : null;
|
||||
var valueStr = tokenizer.MoveNext() ? tokenizer.Current : null;
|
||||
if (valueStr == null)
|
||||
if (valueStr == ReadOnlySpan<char>.Empty)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
</ProjectReference>
|
||||
<PackageReference Include="LibDeflate.Bindings" Version="1.0.2.120" />
|
||||
<PackageReference Include="MailKit" Version="4.8.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="8.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.FileSystemGlobbing" Version="9.0.0" />
|
||||
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.3.2" />
|
||||
<PackageReference Include="Argon2.Bindings" Version="1.16.1" />
|
||||
<PackageReference Include="ModernUO.CodeGeneratedEvents.Annotations" Version="1.0.0" />
|
||||
|
|
@ -47,7 +47,7 @@
|
|||
<PackageReference Include="Zstd.Binaries" Version="1.6.0" />
|
||||
|
||||
<PackageReference Include="ModernUO.Serialization.Annotations" Version="2.9.1" />
|
||||
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.11.3" />
|
||||
<PackageReference Include="ModernUO.Serialization.Generator" Version="2.12.10" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AdditionalFiles Include="Migrations/*.v*.json" />
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -21,8 +21,8 @@ ModernUO [](https://ubuntu.com/download/server)
|
||||
<br />
|
||||
[](https://alpinelinux.org/downloads/)
|
||||
[](https://getfedora.org/en/server/download/)
|
||||
[](https://access.redhat.com/downloads)
|
||||
[](https://getfedora.org/en/server/download/)
|
||||
[](https://access.redhat.com/downloads)
|
||||
[](https://www.centos.org/download/)
|
||||
[](https://get.opensuse.org/)
|
||||
[](https://www.suse.com/download/sles/)
|
||||
|
|
@ -31,25 +31,25 @@ ModernUO [](https://dotnet.microsoft.com/download/dotnet/8.0)
|
||||
[](https://dotnet.microsoft.com/download/dotnet/9.0)
|
||||
|
||||
##### Windows
|
||||
[](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022)
|
||||
|
||||
#### Development
|
||||
[](https://git-scm.com/downloads)
|
||||
[](https://dotnet.microsoft.com/download/dotnet/8.0)
|
||||
[](https://dotnet.microsoft.com/download/dotnet/9.0)
|
||||
|
||||
#### Supported IDEs
|
||||
|
||||
<p align="left"><a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2024.1+"
|
||||
alt="Jetbrains Rider 2024.1+"
|
||||
<p align="left"><a href="https://www.jetbrains.com/rider/download"><img height="64" title="Jetbrains Rider 2024.3+"
|
||||
alt="Jetbrains Rider 2024.3+"
|
||||
src="https://user-images.githubusercontent.com/3953314/133473479-734e425c-fbb6-433a-af2d-2cc8444398e8.png"></a><img
|
||||
alt="space" width="32" src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://code.visualstudio.com/download"><img height="64" title="VSCode"
|
||||
alt="VSCode"
|
||||
src="https://user-images.githubusercontent.com/3953314/200161017-7697171f-8f13-4829-95d0-8a25b59ee4c9.png"></a><img alt="space" width="32"
|
||||
src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2022 v17.10+"
|
||||
alt="Visual Studio 2022 v17.10+"
|
||||
src="https://user-images.githubusercontent.com/3953314/200151935-3c1521ec-16cb-487b-85a2-7454d347c585.png"><a href="https://visualstudio.microsoft.com/vs/community/"><img height="64" title="Visual Studio 2022 v17.12+"
|
||||
alt="Visual Studio 2022 v17.12+"
|
||||
src="https://user-images.githubusercontent.com/3953314/133473556-35fd48b4-6460-49b1-b7c5-b4a8c529cc04.png"></a></p>
|
||||
|
||||
## Getting Started
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ trigger:
|
|||
|
||||
variables:
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
|
||||
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT: 1
|
||||
|
||||
jobs:
|
||||
- job: BuildWindows
|
||||
|
|
@ -14,15 +13,14 @@ jobs:
|
|||
vmImage: 'windows-latest'
|
||||
|
||||
steps:
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Install .NET 8'
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: '8.0.x'
|
||||
- task: NuGetAuthenticate@1
|
||||
- script: ./publish.cmd Release
|
||||
displayName: 'Build'
|
||||
- powershell: ./.github/porcelain.ps1
|
||||
displayName: Migration Changes
|
||||
- script: dotnet test --no-restore
|
||||
displayName: 'Test'
|
||||
- task: UseDotNet@2
|
||||
displayName: 'Install .NET 9'
|
||||
inputs:
|
||||
useGlobalJson: true
|
||||
- task: NuGetAuthenticate@1
|
||||
- script: ./publish.cmd Release
|
||||
displayName: 'Build'
|
||||
- powershell: ./.github/porcelain.ps1
|
||||
displayName: Migration Changes
|
||||
- script: dotnet test --no-restore
|
||||
displayName: 'Test'
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ Everything is run from the _Distribution_ folder.
|
|||
Using _terminal_, run:
|
||||
```bash
|
||||
cd Distribution
|
||||
dotnet run ModernUO.dll
|
||||
dotnet ModernUO.dll
|
||||
```
|
||||
|
||||
=== "Game Files"
|
||||
|
|
@ -27,4 +27,4 @@ Everything is run from the _Distribution_ folder.
|
|||
|
||||
|
||||
!!! Tip
|
||||
Game files are not directly distributed in ModernUO, find the latest version to download these at [client download](https://uo.com/Client-Download/)
|
||||
Game files are not directly distributed in ModernUO, find the latest version to download these at [client download](https://uo.com/Client-Download/)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "8.0.0",
|
||||
"version": "9.0.101",
|
||||
"rollForward": "latestMajor",
|
||||
"allowPrerelease": false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
|
||||
"version": "0.13.6"
|
||||
"version": "0.13.7"
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue