Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -398,5 +398,9 @@ FodyWeavers.xsd
# JetBrains Rider
*.sln.iml

# Claude AI Assistant files
.claude/
CLAUDE.md


.nuget/
21 changes: 10 additions & 11 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
<Project>
<!-- Shared package refs - moved to Directory.Packages.props -->
<PropertyGroup>
<!-- Suppress NU1507 (multiple package sources with CPM) -->
<NoWarn>$(NoWarn);NU1507;MSTEST0001</NoWarn>
<WarningsNotAsErrors>$(WarningsNotAsErrors);MSTEST0001</WarningsNotAsErrors>
</PropertyGroup>
<ItemGroup>
<!-- NBGV drives versions; PrivateAssets=all keeps it out of consumers -->
<PackageReference Include="Nerdbank.GitVersioning" PrivateAssets="all" />

<!-- SourceLink for GitHub -->
<PackageReference Include="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Nerdbank.GitVersioning" />
<PackageReference Include="Microsoft.SourceLink.GitHub" />
</ItemGroup>

<!-- SourceLink / build hygiene -->
Expand Down Expand Up @@ -42,9 +40,10 @@
PackagePath="\"
Link="LICENSE" />
</ItemGroup>
<!-- Global project properies -->
<!-- Global project properties - .NET 10 LTS First Strategy -->
<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
<!-- Primary target: .NET 10 (next LTS), with .NET 9 for current support, .NET 8 for compatibility -->
<TargetFrameworks>net10.0;net9.0;net8.0</TargetFrameworks>
</PropertyGroup>
</Project>
56 changes: 38 additions & 18 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
<Project>
<!-- Enable Central Package Management -->
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<!-- Centralized Package Versions -->
<ItemGroup>
<!-- Build and Development Tools -->
<PackageVersion Include="BenchmarkDotNet" Version="0.15.8" />
<PackageVersion Include="FastExpressionCompiler" Version="5.1.1" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.9.50" />
<PackageVersion Include="Hyperbee.Collections" Version="2.7.3" />
<PackageVersion Include="Nerdbank.GitVersioning" Version="3.9.50">
<PrivateAssets>all</PrivateAssets>
</PackageVersion>
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.102">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<!-- Core Libraries -->
<PackageVersion Include="Hyperbee.Collections" Version="2.4.0" />
<PackageVersion Include="Hyperbee.Expressions" Version="1.2.0" />
<PackageVersion Include="Parlot" Version="1.3.6" />
<!-- Microsoft Libraries - Common for both .NET 8 and .NET 9 -->
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.1" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.1" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.2" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.2" />
<!-- NuGet Libraries -->
<PackageVersion Include="NuGet.Configuration" Version="7.0.1" />
<PackageVersion Include="NuGet.DependencyResolver.Core" Version="7.0.1" />
Expand All @@ -27,34 +27,54 @@
<PackageVersion Include="Spectre.Console" Version="0.50.0" />
<PackageVersion Include="Spectre.Console.Cli" Version="0.50.0" />
<!-- System Libraries -->
<PackageVersion Include="System.Reflection.Metadata" Version="10.0.1" />
<PackageVersion Include="System.Reflection.MetadataLoadContext" Version="10.0.1" />
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.1" />
<PackageVersion Include="System.Reflection.Metadata" Version="10.0.2" />
<PackageVersion Include="System.Reflection.MetadataLoadContext" Version="10.0.2" />
<PackageVersion Include="System.Text.Encodings.Web" Version="10.0.2" />
<!-- Testing Libraries -->
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageVersion Include="MSTest.TestAdapter" Version="4.0.2" />
<PackageVersion Include="MSTest.TestFramework" Version="4.0.2" />
</ItemGroup>
<!-- .NET 8 specific package versions - Using 4.13.0 minimum due to Hyperbee.Expressions dependency -->
<!-- .NET 8 specific package versions -->
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
<PackageVersion Include="Microsoft.CodeAnalysis" Version="4.13.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.13.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.13.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.13.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.13.0" />
<PackageVersion Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.25177.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharp" Version="1.0.0-beta.25177.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.25177.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.PackageManagement" Version="1.0.0-beta.25177.1" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces" Version="4.13.0" />
<PackageVersion Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.24568.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharp" Version="1.0.0-beta.24568.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.24568.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.PackageManagement" Version="1.0.0-beta.24568.1" />
<PackageVersion Include="Hyperbee.Expressions" Version="1.2.0" />
</ItemGroup>
<!-- .NET 9 specific package versions -->
<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageVersion Include="Microsoft.CodeAnalysis" Version="4.14.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="4.14.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Scripting.Common" Version="4.14.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces" Version="4.14.0" />
<PackageVersion Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.25323.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharp" Version="1.0.0-beta.25323.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.25323.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.PackageManagement" Version="1.0.0-beta.25323.1" />
<PackageVersion Include="Hyperbee.Expressions" Version="1.2.0" />
</ItemGroup>
<!-- .NET 10 specific package versions -->
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageVersion Include="Microsoft.CodeAnalysis" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Scripting" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Scripting.Common" Version="5.0.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.Workspaces" Version="5.0.0" />
<PackageVersion Include="Microsoft.DotNet.Interactive" Version="1.0.0-beta.26071.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.CSharp" Version="1.0.0-beta.26071.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.Formatting" Version="1.0.0-beta.26071.1" />
<PackageVersion Include="Microsoft.DotNet.Interactive.PackageManagement" Version="1.0.0-beta.26071.1" />
<PackageVersion Include="Hyperbee.Expressions" Version="1.3.2" />
</ItemGroup>
</Project>
8 changes: 4 additions & 4 deletions src/Hyperbee.XS.Cli/Commands/Script.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ internal static class Script
{
#if NET9_0_OR_GREATER

internal static string Compile(
string script,
string outputAssemblyName,
string outputFile,
internal static string Compile(
string script,
string outputAssemblyName,
string outputFile,
string outputModuleName = null,
string outputClassName = null,
string outputMethodName = null,
Expand Down
6 changes: 1 addition & 5 deletions src/Hyperbee.XS.Cli/Hyperbee.Xs.Cli.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<OutputType>Exe</OutputType>
<PackAsTool>true</PackAsTool>
<ToolCommandName>xs</ToolCommandName>
<!--<PackageOutputPath>./nupkg</PackageOutputPath> -->

<Authors>Stillpoint Software, Inc.</Authors>
<PackageId>Hyperbee.XS.Cli</PackageId>
Expand Down Expand Up @@ -41,10 +40,7 @@
<None Include="README.md" Pack="true" PackagePath="\" />
<ProjectReference Include="..\Hyperbee.XS.Extensions\Hyperbee.Xs.Extensions.csproj" />
<ProjectReference Include="..\Hyperbee.XS\Hyperbee.XS.csproj" />
<PackageReference Update="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Microsoft.SourceLink.GitHub" />

</ItemGroup>

Expand Down
12 changes: 8 additions & 4 deletions src/Hyperbee.XS.Extensions/AsyncParseExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ public Parser<Expression> CreateParser( ExtensionBinder binder )
Terms.Char( '}' )
).Named( "async block" )
.Then<Expression>( static ( ctx, parts ) =>
ExpressionExtensions.BlockAsync(
[.. ctx.Scope().Variables.EnumerateValues( LinkedNode.Current )],
{
var vars = new System.Collections.ObjectModel.ReadOnlyCollection<ParameterExpression>(
[.. ctx.Scope().Variables.EnumerateValues( LinkedNode.Current )]
);
var exprs = new System.Collections.ObjectModel.ReadOnlyCollection<Expression>(
[.. parts]
)
),
);
return ExpressionExtensions.BlockAsync( vars, exprs );
} ),
static ctx =>
{
ctx.ExitScope();
Expand Down
12 changes: 8 additions & 4 deletions src/Hyperbee.XS.Extensions/EnumerableParseExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,15 @@ public Parser<Expression> CreateParser( ExtensionBinder binder )
Terms.Char( '}' )
).Named( "enumerable block" )
.Then<Expression>( static ( ctx, parts ) =>
ExpressionExtensions.BlockEnumerable(
[.. ctx.Scope().Variables.EnumerateValues( LinkedNode.Current )],
{
var vars = new System.Collections.ObjectModel.ReadOnlyCollection<ParameterExpression>(
[.. ctx.Scope().Variables.EnumerateValues( LinkedNode.Current )]
);
var exprs = new System.Collections.ObjectModel.ReadOnlyCollection<Expression>(
[.. parts]
)
),
);
return ExpressionExtensions.BlockEnumerable( vars, exprs );
} ),
static ctx =>
{
ctx.ExitScope();
Expand Down
7 changes: 2 additions & 5 deletions src/Hyperbee.XS.Extensions/Hyperbee.Xs.Extensions.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<Nullable>disable</Nullable>
<IsPackable>true</IsPackable>

<Authors>Stillpoint Software, Inc.</Authors>
<PackageId>Hyperbee.XS.Extensions</PackageId>
<PackageReadmeFile>README.md</PackageReadmeFile>
Expand Down Expand Up @@ -44,10 +44,7 @@
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
<PackageReference Include="Parlot" />
<ProjectReference Include="..\Hyperbee.XS\Hyperbee.XS.csproj" />
<PackageReference Update="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Microsoft.SourceLink.GitHub" />
</ItemGroup>

</Project>
23 changes: 10 additions & 13 deletions src/Hyperbee.XS.Interactive/Hyperbee.Xs.Interactive.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,27 @@
<PackageReference Include="System.Text.Encodings.Web" />
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' != 'net8.0'">
<PackageReference Include="Microsoft.DotNet.Interactive.PackageManagement" />
</ItemGroup>

<ItemGroup>
<None Remove="bin\Debug\net8.0\/net9.0/Hyperbee.Xs.Interactive.dll" />
<None Remove="bin\Debug\net*/Hyperbee.Xs.Interactive.dll" />
</ItemGroup>

<ItemGroup>
<None Include="$(OutputPath)/net8.0/Hyperbee.Xs.Interactive.dll" Pack="true" PackagePath="interactive-extensions/dotnet" />
<None Include="$(OutputPath)/net9.0/Hyperbee.Xs.Interactive.dll" Pack="true" PackagePath="interactive-extensions/dotnet" />
<None Include="$(OutputPath)/net10.0/Hyperbee.Xs.Interactive.dll" Pack="true" PackagePath="interactive-extensions/dotnet" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\assets\icon.png" Pack="true" Visible="false" PackagePath="/" />
<None Include="..\..\LICENSE" Pack="true" Visible="false" PackagePath="/" />
<None Include="..\..\NOTICES" Pack="true" Visible="false" PackagePath="/" />
<None Include="README.md" Pack="true" PackagePath="\" />
<ProjectReference Include="..\Hyperbee.XS.Extensions\Hyperbee.Xs.Extensions.csproj" />
<ProjectReference Include="..\Hyperbee.XS\Hyperbee.XS.csproj" />
<PackageReference Update="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>

</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net9.0'">
<PackageReference Include="Microsoft.DotNet.Interactive.PackageManagement" />
<PackageReference Update="Microsoft.SourceLink.GitHub" />
</ItemGroup>

</Project>
7 changes: 2 additions & 5 deletions src/Hyperbee.XS/Hyperbee.XS.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<PropertyGroup>
<Nullable>disable</Nullable>
<IsPackable>true</IsPackable>

<Authors>Stillpoint Software, Inc.</Authors>
<PackageId>Hyperbee.XS</PackageId>
<PackageReadmeFile>README.md</PackageReadmeFile>
Expand Down Expand Up @@ -48,10 +48,7 @@
<PackageReference Include="NuGet.ProjectModel" />
<PackageReference Include="NuGet.Protocol" />
<PackageReference Include="Parlot" />
<PackageReference Update="Microsoft.SourceLink.GitHub">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Microsoft.SourceLink.GitHub" />
</ItemGroup>

</Project>
Loading
Loading