Skip to content

Commit 13ce061

Browse files
authored
Merge pull request #44 from jeffijoe/net8
Upgrade to .NET 8, update packages, fix unit tests to be culture-invariant
2 parents 14e9a9d + 08b468f commit 13ce061

File tree

11 files changed

+31
-27
lines changed

11 files changed

+31
-27
lines changed

.github/workflows/ci.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ jobs:
1818
runs-on: ubuntu-latest
1919

2020
steps:
21-
- uses: actions/checkout@v2
21+
- uses: actions/checkout@v4
2222
with:
2323
fetch-depth: 100
2424

2525
- name: Setup .NET
26-
uses: actions/setup-dotnet@v3
26+
uses: actions/setup-dotnet@v4
2727
with:
28-
dotnet-version: 7.0.x
28+
dotnet-version: 8.0.x
2929

3030
- name: Install dependencies
3131
working-directory: ./src

src/.idea/.idea.MessageFormat/.idea/projectSettingsUpdater.xml

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Jeffijoe.MessageFormat.MetadataGenerator/Jeffijoe.MessageFormat.MetadataGenerator.csproj

+4-3
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,20 @@
55
<AssemblyOriginatorKeyFile>../Jeffijoe.MessageFormat/MessageFormat.snk</AssemblyOriginatorKeyFile>
66
<LangVersion>default</LangVersion>
77
<Nullable>enable</Nullable>
8-
<TargetFrameworks>net6.0;netstandard2.0;netstandard2.1</TargetFrameworks>
8+
<TargetFramework>netstandard2.0</TargetFramework>
9+
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
910
</PropertyGroup>
1011

1112
<ItemGroup>
1213
<EmbeddedResource Include="data/plurals.xml" />
1314
</ItemGroup>
1415

1516
<ItemGroup>
16-
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.3">
17+
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4">
1718
<PrivateAssets>all</PrivateAssets>
1819
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1920
</PackageReference>
20-
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.0.1" />
21+
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.9.2" />
2122
</ItemGroup>
2223

2324

src/Jeffijoe.MessageFormat.Tests/Formatting/Formatters/DateFormatterTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ public void DateFormatter_Custom()
5151
{
5252
var formatter = new CustomValueFormatters
5353
{
54-
Date = (CultureInfo _, object? value, string? _, out string? formatted) =>
54+
Date = (CultureInfo culture, object? value, string? _, out string? formatted) =>
5555
{
5656
// This is just a test, you probably shouldn't be doing this in real workloads.
57-
formatted = $"{value:MMMM d 'in the year' yyyy}";
57+
formatted = ((FormattableString)$"{value:MMMM d 'in the year' yyyy}").ToString(culture);
5858
return true;
5959
}
6060
};

src/Jeffijoe.MessageFormat.Tests/Formatting/Formatters/NumberFormatterTests.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ public void NumberFormatter_Decimal_CustomFormat(decimal number, string expected
3030
{
3131
var formatters = new CustomValueFormatters
3232
{
33-
Number = (CultureInfo _, object? value, string? style, out string? formatted) =>
33+
Number = (CultureInfo culture, object? value, string? style, out string? formatted) =>
3434
{
35-
formatted = string.Format($"{{0:{style}}}", value);
35+
formatted = string.Format(culture, $"{{0:{style}}}", value);
3636
return true;
3737
}
3838
};

src/Jeffijoe.MessageFormat.Tests/Jeffijoe.MessageFormat.Tests.csproj

+7-7
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@
66
<GenerateAssemblyInfo>False</GenerateAssemblyInfo>
77
<LangVersion>9</LangVersion>
88
<Nullable>enable</Nullable>
9-
<TargetFramework>net7.0</TargetFramework>
9+
<TargetFramework>net8.0</TargetFramework>
1010
</PropertyGroup>
1111

1212
<ItemGroup>
1313
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
14-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.1" />
15-
<PackageReference Include="xunit" Version="2.5.0" />
14+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
15+
<PackageReference Include="xunit" Version="2.9.2" />
1616
<PackageReference Include="xunit.abstractions" Version="2.0.3" />
17-
<PackageReference Include="xunit.assert" Version="2.5.0" />
18-
<PackageReference Include="xunit.core" Version="2.5.0" />
19-
<PackageReference Include="xunit.extensibility.core" Version="2.5.0" />
20-
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
17+
<PackageReference Include="xunit.assert" Version="2.9.2" />
18+
<PackageReference Include="xunit.core" Version="2.9.2" />
19+
<PackageReference Include="xunit.extensibility.core" Version="2.9.2" />
20+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
2121
<PrivateAssets>all</PrivateAssets>
2222
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2323
</PackageReference>

src/Jeffijoe.MessageFormat.Tests/MessageFormatterStringExtensionTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public async Task FormatMessage_with_multiple_tasks()
3232
var t1 = Task.Run(() => MessageFormatter.Format(pattern, new { fileCount = 1 }));
3333
var t2 = Task.Run(() => MessageFormatter.Format(pattern, new { fileCount = 1 }));
3434
var t3 = Task.Run(() => MessageFormatter.Format(pattern, new { fileCount = 5 }));
35-
await Task.WhenAll(t1, t2);
35+
await Task.WhenAll(t1, t2, t3);
3636

3737
Assert.Equal("Copying one file.", t1.Result);
3838
Assert.Equal("Copying one file.", t2.Result);

src/Jeffijoe.MessageFormat.Tests/Parsing/LiteralParserTests.cs

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// Author: Jeff Hansen <[email protected]>
55
// Copyright (C) Jeff Hansen 2015. All rights reserved.
66

7+
using System;
78
using System.Linq;
89
using System.Text;
910

@@ -135,6 +136,11 @@ public void ParseLiterals_unclosed_escape_sequence(
135136
")]
136137
public void ParseLiterals_position_and_inner_text(string source, int[] position, string expectedInnerText)
137138
{
139+
// It seems that depending on platform this is compiled on, the actual representation of new lines in the
140+
// string literals can differ, which can make this test fail due to differences.
141+
// This will normalize those changes.
142+
expectedInnerText = expectedInnerText.Replace("\r\n", "\n");
143+
138144
var sb = new StringBuilder(source);
139145
var subject = new LiteralParser();
140146
var actual = subject.ParseLiterals(sb);

src/Jeffijoe.MessageFormat.Tests/Parsing/PatternParserGetKeyTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public void ReadLiteralSection_throws_with_invalid_characters(
136136
[InlineData("SupDawg,yeah ", "yeah", 8)]
137137
[InlineData("SupDawg, ", null, 8)]
138138
[InlineData("SupDawg,", null, 8)]
139-
public void ReadLiteralSection_with_offset(string source, string expected, int offset)
139+
public void ReadLiteralSection_with_offset(string source, string? expected, int offset)
140140
{
141141
var literal = new Literal(10, 10, 1, 1, source);
142142
Assert.Equal(expected, PatternParser.ReadLiteralSection(literal, offset, true, out _));

src/Jeffijoe.MessageFormat/Formatting/Formatters/NumberFormatter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static string FormatInteger(IFormatProvider cultureInfo, object? value)
5555
value switch
5656
{
5757
decimal or float or double => string.Format(cultureInfo, "{0}", Convert.ToInt64(value)),
58-
string s => decimal.TryParse(s, out var parsed) ? FormatInteger(cultureInfo, parsed) : s,
58+
string s => decimal.TryParse(s, NumberStyles.Any, cultureInfo, out var parsed) ? FormatInteger(cultureInfo, parsed) : s,
5959
_ => string.Format(cultureInfo, "{0}", value)
6060
};
6161
}

src/Jeffijoe.MessageFormat/Jeffijoe.MessageFormat.csproj

+3-6
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
<RepositoryUrl>https://github.com/jeffijoe/messageformat.net</RepositoryUrl>
1111
<LangVersion>latest</LangVersion>
1212
<Nullable>enable</Nullable>
13-
<TargetFrameworks>net6.0;net7.0;netstandard2.0;netstandard2.1</TargetFrameworks>
13+
<TargetFrameworks>net6.0;net8.0;netstandard2.0;netstandard2.1</TargetFrameworks>
1414
</PropertyGroup>
1515

1616
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
1717
<DocumentationFile>bin/$(Configuration)/$(TargetFramework)/$(AssemblyName).xml</DocumentationFile>
1818
</PropertyGroup>
1919

2020
<ItemGroup>
21-
<PackageReference Include="Microsoft.Extensions.ObjectPool" Version="6.0.1" />
22-
<PackageReference Include="MinVer" Version="4.3.0">
21+
<PackageReference Include="Microsoft.Extensions.ObjectPool" Version="8.0.8" />
22+
<PackageReference Include="MinVer" Version="6.0.0">
2323
<PrivateAssets>all</PrivateAssets>
2424
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
2525
</PackageReference>
@@ -29,9 +29,6 @@
2929
<ProjectReference Include="../Jeffijoe.MessageFormat.MetadataGenerator/Jeffijoe.MessageFormat.MetadataGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
3030
</ItemGroup>
3131

32-
<PropertyGroup>
33-
<PluralLanguagesMetadataExcludeLocales></PluralLanguagesMetadataExcludeLocales>
34-
</PropertyGroup>
3532
<ItemGroup>
3633
<CompilerVisibleProperty Include="PluralLanguagesMetadataExcludeLocales" />
3734
</ItemGroup>

0 commit comments

Comments
 (0)