Skip to content

Bump the nuget-minor group with 5 updates - #382

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Backend/nuget-minor-d86453b7ca
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/Backend/nuget-minor-d86453b7ca

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 13, 2026

Copy link
Copy Markdown
Contributor

Updated MailKit from 4.18.0 to 4.18.1.

Release notes

Sourced from MailKit's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated Quartz from 4.2.1 to 4.4.0.

Release notes

Sourced from Quartz's releases.

4.4.0

Quartz.NET 4.4 is history you can run a business on. Each run says what it achieved: succeeded, failed,
cancelled or skipped, with a summary and metrics. The history keeps that per job, sweeps it by result and charts
it over time, and a health check degrades when a required job stops succeeding. Recovery respects rolling
deploys, and triggers already due fire in the transaction that acquires them: at 20 triggers a second on
PostgreSQL, 95–99 % of firings land within ±50 ms, up from 54 % on 4.3.0. Quartz.Weasel now manages the job store's schema on six databases, adding MySQL, Oracle and Firebird.

dotnet add package Quartz --version 4.4.0

Highlights

  • A run says what it achieved, and the history keeps it per job. context.Result, a status per job, retention
    by result, and a chart of runs over time. Execution history and outcomes
  • A health check per job. RequireSuccessWithin(jobKey, TimeSpan.FromHours(26)) degrades when a nightly job
    stops succeeding. Execution history and outcomes
  • A retry policy on the job class, and a scheduler-wide default. Also RunAtStartup, scheduling a trigger
    already paused, and pausing a set of keys with a reason in one call. Scheduling
  • Fire on acquire. One transaction per round instead of two: one-off throughput on PostgreSQL goes from 258–272 to
    420–429 firings a second. Reliability and clustering
  • Recovery that respects rolling deploys. A firing cancelled by a graceful shutdown can be replayed by a peer
    or the restarted node. Reliability and clustering
  • Weasel for six databases. Quartz.Weasel.MySQL, Quartz.Weasel.Oracle and Quartz.Weasel.Firebird join
    PostgreSQL, SQL Server and SQLite. Databases and Weasel
  • An HTTP client that reads a newer host, and HTTP API errors as problem details under native AOT.
    HTTP API and dashboard

Execution history and outcomes

  • Job outcomes (#​3971, closes #​3957). A job says what its run achieved:
    context.Result = JobRunReport.Skipped("…").With("released", 3).
    • Results: JobRunResult {Succeeded, Failed, Cancelled, Skipped}.
    • A summary and metrics go with it. Metrics are JSON, AOT-safe, capped at 4,000 characters (log events
      1059/1060).
    • Vetoes are recorded in the misfire feed (MisfireReason.Vetoed). Manual runs (TriggerJob) are marked.
    • Per-job JobRunStatus: last run, last success and failure, consecutive failures, counts.
    • Retention by result (RetentionByResult, MisfireRetention) and MaxEntriesPerJob.
    • How-to: Job Outcomes.
  • The database history keeps all of it (#​3980, closes #​3959; schema #​3972, closes #​3958).
    • Each run's row and its job's status commit in one transaction on the history connection.
    • The sweep is tiered by result, capped per job, and clears status rows of deleted jobs. One elected node
      sweeps per cluster.
    • The misfire feed is filtered by reason. A 4.2 row with no reason reads as Missed.
    • Known cost: runs of one job that complete at once take turns on its status row. On PostgreSQL, one hot job
      with history on went from 113–248 to 77–189 firings a second. Tracked in #​3979.
    • Fixed: the optional-table refusal named database/migrations/database/migrations/…. (#​3972)
  • A run whose job threw records the job's own message (#​3995, closes #​3992). The history, the per-job status
    and the HTTP API's JobExecuted event carry it, not the wrapper's "Job threw an unhandled exception". Log
    templates are unchanged.
  • Health check per job (#​3982, closes #​3961).
    ... (truncated)

4.3.0

Quartz.NET 4.3 is an additive minor. Every public change is a new type, a new member on a type we own, or a default
interface member, and its schema change is one generated folder, database/migrations/4.3/, that only adds
nullable columns. A released 4.2 node and a 4.3 node share one PostgreSQL database in CI to prove a mixed cluster
runs safely. A 4.2 application upgrades by changing the version and, on a persistent store, running the 4.3 scripts
before the first 4.3 node starts. The headlines: a scheduler on a database fires one-off jobs 2.8× faster than 4.2
at its shipped defaults; a job can be a lambda; and a schedule can be steered while it runs, with an overlap policy,
a pause that says why, backfill, progress and captured logs, and a dashboard that edits. Four new packages put the job store's tables under Weasel, for applications on Marten or Wolverine.

dotnet add package Quartz --version 4.3.0

Highlights

Faster where it runs

  • A job that takes nothing from the container — no constructor parameters, not registered, no ConfigureScope —
    is built without a DI scope: 1.84 → 1.68 KB a firing on RAMJobStore, a little faster too. Every other job keeps
    its scope exactly as before. (#​3866)

  • RAMJobStore computes a cron trigger's next fire time once per firing, not twice, inside its lock. (#​3866)

  • A scheduler on a database batches what is already due, out of the box. MaxBatchSize now defaults to
    automatic: the thread pool's size on a persistent store, clustered or not, and 1 in memory.
    Nothing fires early (the fire-ahead window is still zero). On PostgreSQL a backlog of one-off jobs goes from
    about 80–91 to 125 firings a second, and from 6.0 to 2.8 commits a firing. MaxBatchSize = 1 restores 4.2.
    On a cluster, the flip was gated on a 2- and 4-node drain against a durable PostgreSQL: 1.7–2.1× faster on
    two nodes and 1.6–2.0× on four, at a lock-wait p99 of about 60 ms. One of four sittings read 0.78× on four nodes
    while every lock wait on that shared VM was slower. (#​3862, #​3900)

  • Scheduling a job costs less. ScheduleJob with a simple trigger allocates 2.76 KB, down from 3.83 KB,
    and a cron one 3.3 KB, down from 4.6 KB. Scheduling a trigger later than the one the scheduler is already
    waiting for no longer wakes it, and listener lists are built when they change, not on every call. (#​3865)

  • A firing that may run beside itself completes without the store's lock. Completions of
    concurrent-allowed jobs no longer queue behind each other on TRIGGER_ACCESS. With the batching default above,
    one-off jobs on PostgreSQL go from 4.2's 91 to 237 firings a second on the same database: 2.6×. Repeating
    triggers fire 1.5–1.9× faster. A 2- and 4-node cluster drains 1.5–1.8× faster at a fifth of the lock wait. A
    [DisallowConcurrentExecution] job, a retry, a trigger with continuations, a buffered overlap policy and a
    non-durable job's last trigger keep the lock. The misfire pass also settles a continuation whose parent no
    longer exists. (#​3863)

  • Measured on the release candidate against 4.2.0, alternating sittings on one box and one durable PostgreSQL:

    4.2.0 4.3.0
    One-off jobs on PostgreSQL, shipped defaults 90–91 a second 251–255 a second (2.8×)
    Repeating triggers on PostgreSQL at 20 a second, within ±50 ms 22 % 52 % (all within ±250 ms; worst 84–96 ms, was 205 ms)
    In-memory throughput, bytes per execution 2.81 KB 2.07 KB, and not slower
    Scheduling one simple trigger 3.4–3.6 KB 2.6–2.7 KB

    In memory every firing still lands within ±50 ms.

A job can be a lambda

... (truncated)

4.2.4

One fix, additive: no public API change and no schema change. It affects a persistent store when a database error hits one trigger of a fire batch.

Fixed

  • A database error on one trigger of a fire batch no longer commits half of it. A non-transient error while firing one trigger was recorded as that trigger's failure, and the batch committed anyway. On SQL Server and MySQL the commit kept the failed trigger's partial writes, which could leave its [DisallowConcurrentExecution] job's other triggers BLOCKED for good. On PostgreSQL the error aborted the transaction, so the commit silently rolled back triggers already reported fired: their jobs ran while the store still held them as reserved, and could run again after recovery. The failing attempt now rolls back whole, and the batch fires again without that trigger, which is reported failed. Nothing changes when nothing fails. New Warning event 3049 names the trigger. (#​3931, #​3942)

The same fix ships for 3.x in 3.22.3.

Full Changelog: quartznet/quartznet@v4.2.3...v4.2.4

4.2.3

Two fixes, both additive: no public API change and no schema change. The first affects a clustered persistent store that acquires one trigger at a time, which is 4.2's default. The second affects the cron fast path in a process that has asked about other decades.

Fixed

  • A clustered node no longer idles behind a [DisallowConcurrentExecution] job running on another node. When two nodes reserved triggers of the same such job, the node that lost released its trigger back to WAITING, though the job was still running. With one trigger acquired at a time, that trigger then sat at the head of the node's queue. It was skipped on every pass, it hid the triggers due behind it, and the node slept its whole IdleWaitTime (30 s by default). Two 4.2.2 nodes fired a once-a-second trigger 17 s late on average. A released trigger now stays BLOCKED while its job runs, and acquisition reads past a trigger it has to skip. Nothing was lost or doubled. Found by 4.3's mixed-version cluster test. (#​3926, #​3932)
  • The cron fast path answers in every year a trigger can reach, whatever the process asked about first. Its offset tables were capped at four 8-year windows per time zone. An application that had checked a calendar or an expression against other decades could leave the current window on the slow path for good, about 520 ns instead of about 37 ns a lookup. One window that failed verification also switched the whole zone off. Each window now gets its own table, built once. (#​3918, #​3932)

The acquisition fix ships for 3.x in 3.22.2. 3.x has no cron fast path.

Full Changelog: quartznet/quartznet@v4.2.2...v4.2.3

4.2.2

Three fixes, all additive: no public API change and no schema change. The first two are in the scheduler's loop and affect any scheduler on the real clock. The third affects a SQL Server store under lock contention.

Fixed

  • A trigger no longer fires after Standby() has returned. The scheduler's loop checked whether it was paused before draining its wake-up signal, so a Standby() that landed between the two, most likely while the loop was waiting for a free worker on a busy scheduler, was lost. The round then went on to acquire and fire a trigger due within the next IdleWaitTime (30 s by default). The loop now checks again after the drain. (#​3907)
  • A trigger scheduled just after another is no longer passed over, and one held in standby is let go. When two schedule calls landed before the loop read the first, the later one's time overwrote the earlier, more urgent one. That trigger then ran up to IdleWaitTime late, or went through misfire handling. The same overwrite meant Standby() followed by ScheduleJob() could fire a trigger the loop was holding. The loop now keeps the earliest pending candidate. (#​3907)
  • A row-lock handler no longer acts on a transaction SQL Server has ended. When SQL Server aborted a transaction contending for the lock row, the handler retried its lock statement inside the dead transaction. That is error 41302 with memory-optimized QRTZ_LOCKS, or a 1205 deadlock victim with the default SelectForUpdateLockHandler. SqlClient ran the retry outside any transaction, so the store acted without holding TRIGGER_ACCESS, its statements committed one by one, and the final commit failed. The handler now gives up, and the store retries the whole operation in a fresh transaction. (#​3903, #​3907)
  • A shutdown that does not wait for its jobs gives them their settle window in wall time, whatever clock the scheduler keeps. On a frozen FakeTimeProvider it used to wait forever. (#​3907)

The same scheduling and lock-handler fixes ship for 3.x in 3.22.1.

Full Changelog: quartznet/quartznet@v4.2.1...v4.2.2

Commits viewable in compare view.

Updated SkiaSharp from 4.152.1 to 4.153.1.

Updated SkiaSharp.NativeAssets.Linux.NoDependencies from 4.152.1 to 4.153.1.

Updated Swashbuckle.AspNetCore from 10.2.3 to 10.3.0.

Release notes

Sourced from Swashbuckle.AspNetCore's releases.

10.3.0

What's Changed

New Contributors

Full Changelog: domaindrivendev/Swashbuckle.AspNetCore@v10.2.3...v10.3.0

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps MailKit from 4.18.0 to 4.18.1
Bumps Quartz from 4.2.1 to 4.4.0
Bumps SkiaSharp from 4.152.1 to 4.153.1
Bumps SkiaSharp.NativeAssets.Linux.NoDependencies from 4.152.1 to 4.153.1
Bumps Swashbuckle.AspNetCore from 10.2.3 to 10.3.0

---
updated-dependencies:
- dependency-name: MailKit
  dependency-version: 4.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-minor
- dependency-name: Quartz
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor
- dependency-name: SkiaSharp
  dependency-version: 4.153.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor
- dependency-name: SkiaSharp.NativeAssets.Linux.NoDependencies
  dependency-version: 4.153.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor
- dependency-name: Swashbuckle.AspNetCore
  dependency-version: 10.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Oct 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants