Skip to content

Commit 1eb8e3b

Browse files
committed
updated to .NET 9.0; added performance test
1 parent 68b88ed commit 1eb8e3b

File tree

10 files changed

+78
-32
lines changed

10 files changed

+78
-32
lines changed

nuget-dotnetcli/dotnet-typegen.nuspec

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package>
33
<metadata>
44
<id>dotnet-typegen</id>
5-
<version>5.0.1</version>
5+
<version>6.0.0</version>
66
<authors>Jacek Burzynski</authors>
77
<owners>Jacek Burzynski</owners>
88
<license type="file">LICENSE</license>
@@ -11,8 +11,8 @@
1111
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1212
<description>TypeGen .NET CLI tool (TypeGen is a single-class-per-file C# to TypeScript generator)</description>
1313
<releaseNotes>
14-
- updated the project URL in the nuspec
15-
- fixed the issue with generic inheritance #185
14+
- updated to .NET 9.0
15+
- fixed import line break not using the OS's newline #208
1616
</releaseNotes>
1717
<tags>code-generator generator code typescript ts csharp cs dotnet cli</tags>
1818
<packageTypes>

nuget/TypeGen.nuspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package>
33
<metadata>
44
<id>TypeGen</id>
5-
<version>5.0.1</version>
5+
<version>6.0.0</version>
66
<authors>Jacek Burzynski</authors>
77
<owners>Jacek Burzynski</owners>
88
<license type="file">LICENSE</license>
@@ -11,13 +11,13 @@
1111
<requireLicenseAcceptance>false</requireLicenseAcceptance>
1212
<description>TypeGen is a single-class-per-file C# to TypeScript generator</description>
1313
<releaseNotes>
14-
- updated the project URL in the nuspec
15-
- fixed the issue with generic inheritance #185
14+
- updated to .NET 9.0
15+
- fixed import line break not using the OS's newline #208
1616
</releaseNotes>
1717
<tags>code-generator generator code typescript ts csharp cs</tags>
1818
<dependencies>
1919
<group targetFramework=".NETStandard2.0" />
20-
<group targetFramework="net8.0" />
20+
<group targetFramework="net9.0" />
2121
<group>
2222
<dependency id="System.Reflection.TypeExtensions" version="4.7.0" />
2323
<dependency id="System.Dynamic.Runtime" version="4.3.0" />

publish.ps1

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ if (-not $args -contains "-nobuild")
99
dotnet clean .\src\TypeGen\TypeGen.Core
1010
dotnet restore .\src\TypeGen\TypeGen.Core
1111
dotnet build .\src\TypeGen\TypeGen.Core -f netstandard2.0 -c Release
12-
dotnet build .\src\TypeGen\TypeGen.Core -f net8.0 -c Release
12+
dotnet build .\src\TypeGen\TypeGen.Core -f net9.0 -c Release
1313
}
1414

1515

1616
# publish TypeGen Cli
1717
dotnet clean .\src\TypeGen\TypeGen.Cli
1818
dotnet restore .\src\TypeGen\TypeGen.Cli
19-
dotnet publish .\src\TypeGen\TypeGen.Cli -c Release -f net8.0
19+
dotnet publish .\src\TypeGen\TypeGen.Cli -c Release -f net9.0
2020

2121

2222
# create TypeGen NuGet package
@@ -29,8 +29,8 @@ if (test-path nuget\tools)
2929
}
3030

3131
new-item -Force -Path nuget\tools -ItemType Directory
32-
$binFolder = if (test-path "src\TypeGen\TypeGen.Cli\bin\Any CPU\Release\net8.0\publish") {"bin\Any CPU"} else {"bin"}
33-
copy -Recurse "src\TypeGen\TypeGen.Cli\$($binFolder)\Release\net8.0\publish\*" nuget\tools
32+
$binFolder = if (test-path "src\TypeGen\TypeGen.Cli\bin\Any CPU\Release\net9.0\publish") {"bin\Any CPU"} else {"bin"}
33+
copy -Recurse "src\TypeGen\TypeGen.Cli\$($binFolder)\Release\net9.0\publish\*" nuget\tools
3434
mv nuget\tools\TypeGen.Cli.exe nuget\tools\TypeGen.exe
3535

3636

@@ -47,11 +47,11 @@ $binFolder = if (test-path "src\TypeGen\TypeGen.Core\bin\Any CPU\Release\netstan
4747
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\netstandard2.0\TypeGen.Core.dll" nuget\lib\netstandard2.0
4848
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\netstandard2.0\TypeGen.Core.xml" nuget\lib\netstandard2.0
4949

50-
#net8.0
51-
new-item -Force -Path nuget\lib\net8.0 -ItemType Directory
52-
$binFolder = if (test-path "src\TypeGen\TypeGen.Core\bin\Any CPU\Release\net8.0") {"bin\Any CPU"} else {"bin"}
53-
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\net8.0\TypeGen.Core.dll" nuget\lib\net8.0
54-
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\net8.0\TypeGen.Core.xml" nuget\lib\net8.0
50+
#net9.0
51+
new-item -Force -Path nuget\lib\net9.0 -ItemType Directory
52+
$binFolder = if (test-path "src\TypeGen\TypeGen.Core\bin\Any CPU\Release\net9.0") {"bin\Any CPU"} else {"bin"}
53+
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\net9.0\TypeGen.Core.dll" nuget\lib\net9.0
54+
copy "src\TypeGen\TypeGen.Core\$($binFolder)\Release\net9.0\TypeGen.Core.xml" nuget\lib\net9.0
5555

5656
nuget pack nuget\TypeGen.nuspec
5757

@@ -63,12 +63,12 @@ if (test-path nuget-dotnetcli\tools)
6363
rm -Recurse -Force nuget-dotnetcli\tools
6464
}
6565

66-
new-item -Force -Path nuget-dotnetcli\tools\net8.0\any -ItemType Directory
67-
$binFolder = if (test-path "src\TypeGen\TypeGen.Cli\bin\Any CPU\Release\net8.0\publish") {"bin\Any CPU"} else {"bin"}
68-
copy -Recurse "src\TypeGen\TypeGen.Cli\$($binFolder)\Release\net8.0\publish\*" nuget-dotnetcli\tools\net8.0\any
66+
new-item -Force -Path nuget-dotnetcli\tools\net9.0\any -ItemType Directory
67+
$binFolder = if (test-path "src\TypeGen\TypeGen.Cli\bin\Any CPU\Release\net9.0\publish") {"bin\Any CPU"} else {"bin"}
68+
copy -Recurse "src\TypeGen\TypeGen.Cli\$($binFolder)\Release\net9.0\publish\*" nuget-dotnetcli\tools\net9.0\any
6969

70-
New-Item nuget-dotnetcli\tools\net8.0\any\DotnetToolSettings.xml
71-
set-content nuget-dotnetcli\tools\net8.0\any\DotnetToolSettings.xml '<?xml version="1.0" encoding="utf-8"?>
70+
New-Item nuget-dotnetcli\tools\net9.0\any\DotnetToolSettings.xml
71+
set-content nuget-dotnetcli\tools\net9.0\any\DotnetToolSettings.xml '<?xml version="1.0" encoding="utf-8"?>
7272
<DotNetCliTool Version="1">
7373
<Commands>
7474
<Command Name="dotnet-typegen" EntryPoint="TypeGen.Cli.dll" Runner="dotnet" />

src/TypeGen/TypeGen.Cli.Test/TypeGen.Cli.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<IsPackable>false</IsPackable>
55
</PropertyGroup>
66
<ItemGroup>

src/TypeGen/TypeGen.Cli/ApplicationConfig.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ namespace TypeGen.Cli;
22

33
internal class ApplicationConfig
44
{
5-
public const string Version = "5.0.1";
5+
public const string Version = "6.0.0";
66
}

src/TypeGen/TypeGen.Cli/TypeGen.Cli.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
33
<OutputType>Exe</OutputType>
4-
<TargetFramework>net8.0</TargetFramework>
5-
<AssemblyVersion>5.0.0.0</AssemblyVersion>
6-
<FileVersion>5.0.0.0</FileVersion>
7-
<Version>5.0.1</Version>
4+
<TargetFramework>net9.0</TargetFramework>
5+
<AssemblyVersion>6.0.0.0</AssemblyVersion>
6+
<FileVersion>6.0.0.0</FileVersion>
7+
<Version>6.0.0</Version>
88
<PackageId>TypeGen</PackageId>
99
<Authors />
1010
</PropertyGroup>

src/TypeGen/TypeGen.Core.Test/TypeGen.Core.Test.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFramework>net8.0</TargetFramework>
3+
<TargetFramework>net9.0</TargetFramework>
44
<IsPackable>false</IsPackable>
55
<AssemblyName>TypeGen.Core.Test</AssemblyName>
66
<RootNamespace>TypeGen.Core.Test</RootNamespace>

src/TypeGen/TypeGen.Core/TypeGen.Core.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<TargetFrameworks>netstandard2.0;net8.0</TargetFrameworks>
3+
<TargetFrameworks>netstandard2.0;net9.0</TargetFrameworks>
44
<DocumentationFile>TypeGen.Core.xml</DocumentationFile>
55
<LangVersion>latest</LangVersion>
6-
<AssemblyVersion>5.0.0.0</AssemblyVersion>
7-
<FileVersion>5.0.0.0</FileVersion>
6+
<AssemblyVersion>6.0.0.0</AssemblyVersion>
7+
<FileVersion>6.0.0.0</FileVersion>
88
</PropertyGroup>
99
<ItemGroup>
1010
<None Remove="Templates\Class.tpl" />
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Diagnostics;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using TypeGen.Core.Generator;
8+
using TypeGen.FileContentTest.TestingUtils;
9+
using Xunit.Abstractions;
10+
using Xunit;
11+
12+
namespace TypeGen.FileContentTest;
13+
14+
public class PerformanceTest
15+
{
16+
private readonly ITestOutputHelper _testOutputHelper;
17+
18+
public PerformanceTest(ITestOutputHelper testOutputHelper)
19+
{
20+
_testOutputHelper = testOutputHelper;
21+
}
22+
23+
[Fact]
24+
public void test_performance()
25+
{
26+
// arrange
27+
var assembly = GetType().Assembly;
28+
var generator = new Generator();
29+
var interceptor = GeneratorOutputInterceptor.CreateInterceptor(generator);
30+
var sw = new Stopwatch();
31+
32+
// act
33+
sw.Start();
34+
generator.Generate(assembly);
35+
sw.Stop();
36+
37+
// assert
38+
var typeCount = interceptor.GeneratedOutputs.Count;
39+
var totalMs = (double)sw.ElapsedTicks / TimeSpan.TicksPerMillisecond;
40+
var avgMsPerType = totalMs / typeCount;
41+
42+
_testOutputHelper.WriteLine($"Number of types: {typeCount}");
43+
_testOutputHelper.WriteLine($"Total elapsed [ms]: {totalMs}");
44+
_testOutputHelper.WriteLine($"Average per type [ms]: {avgMsPerType}");
45+
}
46+
}

src/TypeGen/TypeGen.FileContentTest/TypeGen.FileContentTest.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net8.0</TargetFramework>
4+
<TargetFramework>net9.0</TargetFramework>
55

66
<IsPackable>false</IsPackable>
77

0 commit comments

Comments
 (0)