danielgerlag / workflow-core

Lightweight workflow engine for .NET Standard
MIT License
5.4k stars 1.2k forks source link

[AOT] Trim compatibility for project WorkflowCore #1233

Open ling921 opened 10 months ago

ling921 commented 10 months ago

Describe the change

Since the release of .NET 7.0, many libraries have started to support the Ahead-of-Time (AOT) compilation feature. I believe it is essential for this library to stay current, so I invested some time in making it compatible.

Describe your implementation or design

Follow official document

Tests

Not yet, this topic may require further discussion.

Breaking change

None

Additional context

By the way, I've made some improvements:

  1. Add Central Package Management to make handling a bunch of packages way more convenient.
  2. I went ahead and bumped up the versions on some packages. Might need to double-check things.
  3. Fixed most of the warnings.
  4. Removed unnecessary dependencies from the WorkflowCore project
before after
ConcurrentHashSet-1.1.0
Microsoft.Extensions.DependencyInjection.Abstractions-2.2.0
Microsoft.Extensions.Hosting.Abstractions-2.2.0 Microsoft.Extensions.Hosting.Abstractions-*
Microsoft.Extensions.Logging.Abstractions-2.2.0 Microsoft.Extensions.Logging.Abstractions-?
Microsoft.Extensions.ObjectPool-2.2.0 Microsoft.Extensions.ObjectPool
Newtonsoft.Json-13.0.1 System.Text.Json-*
System.Threading.Tasks.Parallel-4.3.0
System.Threading.ThreadPool-4.3.0
System.Reflection-4.3.0
System.Reflection.TypeExtensions-4.7.0
System.Threading.Thread-4.3.0
System.Linq.Queryable-4.3.0
OpenTelemetry.Api-1.1.0 OpenTelemetry.Api-*
System.Diagnostics.DiagnosticSource-6.0.0
System.Linq.Queryable-4.3.0
System.Linq.Queryable-4.3.0
System.Linq.Queryable-4.3.0
System.Linq.Queryable-4.3.0
System.Linq.Queryable-4.3.0

-* indicates version dependency on the framework; -? indicates usage of references in certain frameworks.

brucezlata commented 7 months ago

Suggest to drop of .NET 7.0. And upgrade to .NET8.0 since it is a long support release (3 years), while .NET 7.0 is one year.