Skip to content

Modernize to .NET 8: add SDK-style projects, CI and NuGet publish workflow#91

Open
forcewake wants to merge 4 commits intomasterfrom
codex/review-and-update-.net-project-u12ggk
Open

Modernize to .NET 8: add SDK-style projects, CI and NuGet publish workflow#91
forcewake wants to merge 4 commits intomasterfrom
codex/review-and-update-.net-project-u12ggk

Conversation

@forcewake
Copy link
Owner

Motivation

  • Move the repository to a modern-only strategy targeting .NET 8 and prepare a v2 breaking release.
  • Replace legacy build matrix and msbuild/psake-based pipeline with SDK-style projects and dotnet-based tooling.
  • Improve runtime performance and reduce allocations in core reflection/conversion/parser paths.

Description

  • Added new SDK-style projects under src/*/*.Modern for FlatFile.Core, Core.Attributes, Delimited, FixedLength and their attribute variants targeting net8.0 with version 2.0.0 and a Directory.Build.props to centralize package metadata and README packaging.
  • Implemented runtime improvements in core code: replaced reflection DynamicInvoke cache with compiled expression factories and ConcurrentDictionary caches in ReflectionHelper, added converter caching and invariant-culture conversion in TypeChangeExtensions, and small parser/trim optimizations in DelimitedLineParser and FixedLengthLineParser.
  • Updated build automation: converted assets/psake-common.ps1 tasks to use dotnet restore/clean/build for modern projects, added docs/modernization-plan.md, and updated README.md to document modernization and NuGet publishing.
  • Added GitHub Actions workflows: .github/workflows/ci.yml to run dotnet build for modern projects on push/PR and .github/workflows/publish-nuget.yml to dotnet pack and push packages to NuGet on master (uses NUGET_API_KEY secret and generates package version 2.0.<run_number>).

Testing

  • No existing unit tests were modified as part of this change and no automated unit-test runs were executed in this PR.
  • A CI workflow (CI) was added that will run dotnet build for the modern projects on pushes and pull requests, but this workflow was added (not executed) by the change itself.
  • A publish workflow (Publish NuGet (v2)) was added to pack and push .Modern projects; it validates that NUGET_API_KEY is configured before publishing.
  • Local or CI build validation should be performed after adding the repository NUGET_API_KEY secret and/or on subsequent pushes to verify packaging and publishing steps.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant