Skip to content

Sync main → net8#758

Merged
arcenox merged 116 commits intonet8from
sync-main-to-net8-20260321-150721
Mar 21, 2026
Merged

Sync main → net8#758
arcenox merged 116 commits intonet8from
sync-main-to-net8-20260321-150721

Conversation

@arcenox
Copy link
Copy Markdown
Collaborator

@arcenox arcenox commented Mar 21, 2026

Automated Branch Sync

This PR merges recent changes from main into net8.


Created automatically by branch sync workflow

arcenox and others added 30 commits November 14, 2025 18:51
* Fixed the scheduler background to Task.Delay since the Peridic Timer were skipping ticks on short interval with seconds.

* small refactor

* fixed the mixd up delete ticker
* Made improvements and new feature: request by default not using GZIP compression

* Added timezone dashboard support and other fix on features.

* Fixed the seefing data
* Added some new features on dashboard and on demand running directly without giving pressure of background scheduler

* Added dispatch interfaces

* added pagination on machine names

* Added test coverage

* added examples

* Added sample sqlite for samples

* Added csproj fules for Sample data

* fixed the locking of immediate run ticker in safe for runcondition

* fiexed indexing, the scheduler on high run and memory persistence

* fixed dashboard path merge

* small fixes on manager

* Added migration changes for examples
* Fix schema assignment logic in UseTickerQDbContext and add SetSchema method

* Refactor UseTickerQDbContext to simplify schema assignment logic
* Checkpoint from VS Code for coding agent session

* Remove documentation on separating job queueing from job processing
* Add retry logic improvements and unit tests for ExecuteTaskAsync

* Refactor retry test setup to use SetupRetryTestFixture for consistency
arcenox and others added 24 commits March 16, 2026 01:03
* Simplify EF Core DbContext session pattern and remove dead validation

- Remove dead originalDescriptor lookup and throw in UseApplicationDbContext
  (the variable was unused after PR #590 switched to IDbContextOptionsConfiguration)
- Replace ITickerDbContextFactory/ITickerDbContextSession interfaces with a
  simpler DbContextLease struct that handles both IDbContextFactory and
  scoped DbContext resolution
- Remove ITickerDbContextFactory DI registration — BasePersistenceProvider
  now takes IServiceProvider directly and creates leases via helper methods
- Addresses feedback from @jods4 on PR #590

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update EF Core tests to use IServiceProvider instead of removed ITickerDbContextFactory

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…#691)

Tests cover factory path, scoped path, pooled factory, precedence,
instance isolation, dispose behavior, change tracking isolation,
and error cases when no DbContext is registered.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Includes 6 comparison benchmarks (cron parsing, job creation, serialization,
startup registration, delegate invocation, concurrent throughput) plus 7
internal TickerQ micro-benchmarks. All runnable via `dotnet run -c Release`.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
)

* Register scoped DbContext from factory for direct injection (#700)

UseTickerQDbContext only registered IDbContextFactory<TContext> but not
TContext itself, preventing users from injecting the DbContext directly.
Add a scoped registration that creates instances from the factory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* new fix on db context scope create, release: 10.2.1

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…er (#709)

* Restructure hub projects: move RemoteExecutor and SDKs into hub/ folder

- Move TickerQ.RemoteExecutor to hub/remoteExecutor/
- Move TickerQ.SDK (.NET) to hub/sdks/dotnet/
- Add TickerQ Node.js SDK to hub/sdks/node/ with full source, README, and LICENSE
- Add hub/Directory.Build.props with corrected icon.jpg path for NuGet packaging
- Add .gitignore for Node.js SDK
- Update src.sln project references to new paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix TickerQ.slnx project paths for hub restructuring

Update RemoteExecutor and SDK paths in root slnx to match the new
hub/ folder structure, fixing CI build and test failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix build.yml project paths for hub restructuring

Update SDK and RemoteExecutor build/pack paths from src/ to hub/
to match the new folder structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- Add CLA.md with copyright/patent license grants for contributors
- Add CONTRIBUTING.md with development setup and contribution process
- Add GitHub Actions CLA workflow using contributor-assistant/github-action
- Allowlist dependabot, github-actions, and renovate bots

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ection

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update LICENSE, CLA.md, README.md to reference Arcenox LLC
- Add Authors and Copyright tags to Directory.Build.props
- Clean trailing whitespace in LICENSE

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace cherry-pick workflow with merge-based sync (handles renames/deletions naturally)
- Add .sync-overrides config for generic version replacement rules
- Apply version overrides from config instead of hardcoded sed commands
- Post PR comment with sync details (restored files + version overrides applied)
- Auto-resolve conflicts: excluded files keep target, everything else takes main

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The .sync-overrides file only exists on main, but was being loaded
from the target branch (net8/net9) before the merge. Load it from
main using git show instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Load .sync-exclude from main (not target branch) so it's always up to date
- Escape regex special characters in sed replacements (fixes [x.0.0,y.0.0) values)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Values like [8.0.0,9.0.0) contain regex special chars that break sed.
Use awk string matching instead which handles literal characters.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…on in CI

- Replace hardcoded FlexLabs.Upsert version with $(DotNetVersion)
- Replace hardcoded EF Core Sqlite version in benchmarks with $(DotNetVersion)
- Add overrides for tests/Directory.Build.props and sample/benchmark csproj files
- Detect .NET version and solution file dynamically in PR and build workflows
- Fix PR comment table formatting (property column was empty)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- src/Directory.Build.props is the single source of truth for
  TargetFramework, Version, DotNetVersion, DotNetAbstractionsVersion
- tests/samples/benchmarks import from src/ and disable packaging
- Replace all hardcoded package versions with $(DotNetVersion)
- Simplify .sync-overrides to only override src/Directory.Build.props
- Detect .NET version dynamically in PR and build workflows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Uses IDbContextOptionsConfiguration<T> which only exists in EF Core 10.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Race condition: PR may not be indexed when comment step runs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts:
#	.github/workflows/build.yml
#	.github/workflows/pr.yaml
#	.github/workflows/sync-version-branches.yml
#	.sync-exclude
#	TickerQ.sln
#	hub/remoteExecutor/TickerQ.RemoteExecutor/TickerQ.RemoteExecutor.csproj
#	hub/sdks/dotnet/TickerQ.SDK/TickerQ.SDK.csproj
#	samples/TickerQ.Sample.ApplicationDbContext/TickerQ.Sample.ApplicationDbContext.csproj
#	samples/TickerQ.Sample.Console/TickerQ.Sample.Console.csproj
#	samples/TickerQ.Sample.Dashboard.ReflectionFree/TickerQ.Sample.Dashboard.ReflectionFree.csproj
#	samples/TickerQ.Sample.WebApi/TickerQ.Sample.WebApi.csproj
#	samples/TickerQ.Sample.WorkerService/TickerQ.Sample.WorkerService.csproj
#	src/Directory.Build.props
#	src/TickerQ.Dashboard/TickerQ.Dashboard.csproj
#	src/TickerQ.EntityFrameworkCore/Customizer/CustomizerServiceDescriptor.cs
#	src/TickerQ.EntityFrameworkCore/Infrastructure/BasePersistenceProvider.cs
#	src/TickerQ.EntityFrameworkCore/Infrastructure/MappingExtensions.cs
#	src/TickerQ.EntityFrameworkCore/Properties/InternalsVisibleTo.cs
#	src/TickerQ.EntityFrameworkCore/TickerQ.EntityFrameworkCore.csproj
#	src/TickerQ.Instrumentation.OpenTelemetry/TickerQ.Instrumentation.OpenTelemetry.csproj
#	src/TickerQ.Utilities/TickerQ.Utilities.csproj
#	tests/Directory.Build.props
#	tests/TickerQ.EntityFrameworkCore.Tests/TickerQ.EntityFrameworkCore.Tests.csproj
#	tests/TickerQ.Tests/TickerQ.Tests.csproj
@arcenox arcenox added automated Automated PR sync Branch synchronization net8 Target: net8 branch labels Mar 21, 2026
@arcenox
Copy link
Copy Markdown
Collaborator Author

arcenox commented Mar 21, 2026

Sync Details

Excluded files restored from net8

These files have version-specific implementations and were kept as-is (defined in .sync-exclude).

  • src/TickerQ.EntityFrameworkCore/Infrastructure/MappingExtensions.cs
  • src/TickerQ.EntityFrameworkCore/Infrastructure/BasePersistenceProvider.cs
  • src/TickerQ.EntityFrameworkCore/Infrastructure/TickerQueryExtensions.cs
  • src/TickerQ.EntityFrameworkCore/Customizer/CustomizerServiceDescriptor.cs
  • TickerQ.sln

Version overrides applied

Rules from .sync-overrides were applied to match net8 versions.

File Property Change
src/Directory.Build.props Version 10.2.2 -> 8.2.2
src/Directory.Build.props TargetFramework net10.0 -> net8.0
src/Directory.Build.props DotNetVersion [10.0.0,11.0.0) -> [8.0.0,9.0.0)

@arcenox arcenox merged commit e16f130 into net8 Mar 21, 2026
1 check passed
@arcenox arcenox deleted the sync-main-to-net8-20260321-150721 branch March 21, 2026 15:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated Automated PR net8 Target: net8 branch sync Branch synchronization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants