Skip to content

Bump the nuget group with 3 updates - #215

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/nuget-cd3c246ec9
Open

Bump the nuget group with 3 updates#215
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/nuget-cd3c246ec9

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 5, 2026

Copy link
Copy Markdown
Contributor

Updated Microsoft.Testing.Extensions.CodeCoverage from 18.10.0 to 18.11.0.

Release notes

Sourced from Microsoft.Testing.Extensions.CodeCoverage's releases.

No release notes found for this version range.

Commits viewable in compare view.

Updated Quartz.Extensions.Hosting from 3.20.0 to 3.20.1.

Release notes

Sourced from Quartz.Extensions.Hosting's releases.

3.20.1

Quartz.NET 3.20.1 is a maintenance release: every change is a bug fix, the public API is untouched (the baselines did not move), and the schema is 3.20's. Most of it was found while 4.0 was being finished and rehearsed — a fix that turned out to be as old as 3.x was ported here rather than left on the newer line — and one item comes from a production application's 3.19.1 → 4.0 upgrade that also read on 3.x. Eight of the fixes change what a running scheduler does, each marked Behavior change worth noting below.

dotnet add package Quartz --version 3.20.1

What changed

Landed on the branch since 3.20.0:

  • A DailyTimeIntervalTrigger stored through the default Newtonsoft path reads back againTimeOfDay has no parameterless constructor, so with the trigger converters off (the default) EndTimeOfDay threw "Unable to find a constructor" and StartTimeOfDay silently read back as midnight. A converter scoped to TimeOfDay-typed members reads both forms; nothing about what is written changed, so every blob a released 3.20 wrote is one this reads. (9ee33fec17, fixes #​3508)
  • A daily time interval trigger never fires before it startsStartTimeUtc kept its milliseconds while the fire times are counted in whole seconds, so a start of 22:50:00.68 could produce a first fire at 22:50:00.000. Start and end are rounded down to the second when set, as CronTriggerImpl always did. (cc051a7788, #​3386)
  • A trigger with nothing left to fire is finished however its last firing ended — a firing abandoned by a failing job listener, a veto or a shutdown left a one-shot trigger waiting for ever in RAMJobStore and as a permanent COMPLETE row in the ADO store. Both stores finish it now. (0af9431d3e, #​3507)
  • The in-memory store applies the misfire policy of a trigger it unblocks — a trigger blocked behind a [DisallowConcurrentExecution] job is neither acquired nor swept, so the completion that unblocks it is the first thing that can settle its missed fire time; RAMJobStore now does what JobStoreSupport.RecoverUnblockedMisfires always did. (c9d8658a35, #​3463)
  • Pausing a trigger no longer throws its error awayRAMJobStore wrote Paused over Error, so a failed trigger vanished from every listing once its group was paused and ResetTriggerFromErrorState had nothing to reset. It now pauses only what the ADO store pauses: waiting, acquired and blocked triggers. (a56a16ca0c)
    • Behavior change worth noting: 3.20.0's notes listed this among the store-parity alignments left off 3.x; it is on 3.x now.
  • Rescheduling recomputes a fire time its new start time left behindRescheduleJob advanced a never-fired repeating simple trigger's start time past a next fire time it kept, so it fired at the stale time and again at its start. (3e086091fc, #​3554)
  • A trigger loaded beside its job by the XML processor is scheduled once, not twice — every such trigger was scheduled and then immediately rescheduled with overwrite-existing-data on, and a repeating trigger that starts now fired twice milliseconds apart. (f25080cef6, #​3554)
  • Both serializers read a string dictionary written by the other — a Dictionary<string, string> job-data value written by the Newtonsoft package carried a $type the System.Text.Json reader handed back as an entry, and one written by System.Text.Json came back from Json.NET as a JObject. Both readers read both shapes; neither writer changed. (83ba80ce79, part of #​3582)
  • Schema validation checks QRTZ_SIMPROP_TRIGGERS too — a database missing only that table passed validation and failed on the first calendar-interval, daily-time-interval or recurrence trigger insert. (b33c70487b, #​3564)
  • The 3.20 index-alignment scripts name the 4.0 index script that supersedes them (4b3c43a90e); untagged builds from the branch say 3.20 (0e2f6bcf31); the XML scheduling integration test opens its own fixture's data source (4c07210199, #​3573).

Ported from 4.0:

  • A job listener that throws before it returns no longer wedges the firing — a synchronous throw from JobToBeExecuted escaped as itself rather than the exception the run shell catches, so TriggeredJobComplete was never reached: the trigger stayed acquired and, for a [DisallowConcurrentExecution] job, every sibling trigger stayed blocked; the firing was also listed as executing for the life of the process. (port of #​3502)
  • MySQL's misfire sweep reads the index that has the shape it needs — both misfire statements and the count every misfire pass starts with were forced onto IDX_QRTZ_T_NFT_ST_MISFIRE, whose second column is compared with <> and stops the seek dead. Measured on 4.x against 100,000 triggers: the count 111 ms → 0.7 ms, the sweep 66 ms → 0.7 ms. No schema change. (port of #​3608)
  • A process that cannot load the job classes can edit their schedulesRescheduleJob and UpdateTriggerDetails on the ADO store resolved the job's class to decide whether the new trigger could run, and failed in an administration node without the assembly. Both read the job's two attribute flags from QRTZ_JOB_DETAILS now, so the decision is right without the class and a placeholder ITypeLoadHelper — which decided that question by whether the placeholder carried the attribute — is no longer needed. (port of #​3705)
  • A transaction the database rolled back is retried whatever the driver calls it — SQLSTATE class 40 (40001, 40P01; 40002 excepted) is transient. Firebird reports a write conflict that way with IsTransient false, and MySql.Data its 1213 deadlock. (port of #​3454)
    • Behavior change worth noting: those failures are retried where they were treated as permanent.
  • A persistent store refuses a repeat interval it cannot hold — a SimpleTrigger interval finer than a millisecond was stored as 0, read back as zero, and left the trigger in ACQUIRED for good behind a divide-by-zero the store logged and swallowed. It is refused on write now, naming the trigger and the column; RAMJobStore keeps accepting it. (port of #​3673)
    • Behavior change worth noting: storing such a trigger throws where it used to succeed and leave the trigger stuck; a trigger already stored with a zero interval is unaffected by this release.
  • System.Text.Json refuses a job-data value it cannot read back — a List<string> or a nested object serialized happily and threw on the next read with the blob already in the database, and every later acquisition of the trigger failed on it. A value that would be stored as a JSON array, or as an object other than a Dictionary<string, string>, is refused before the first byte is written, naming the entry and its type. Anything stored as a number or a string — every numeric type, DateTime, Guid, byte[], Uri — still round-trips exactly as before. (port of #​3495)
    • Behavior change worth noting: such a value is a JsonSerializationException at store time, where it used to be a blob the next read failed on. The refusal also covers three shapes that did not throw before but never came back as themselves either — a non-generic Hashtable, an object whose properties are all strings, and a JobDataMap nested inside a JobDataMap — each of which the reader handed back as a Dictionary<string, string>. Store one of those as a string of your own making.
  • A daily time interval trigger stops at its end time — an EndTimeUtc falling between two fire times of the same day let the trigger go on firing until the daily window closed, and FinalFireTimeUtc reported that close even when it was a day past the end. (port of the daily half of #​3458)
    • Behavior change worth noting: a trigger whose end time fell mid-window fires fewer times than on 3.20.
  • NativeJob no longer deadlocks a child that writes more than a pipe buffer — both streams were redirected whether or not consumeStreams asked for them to be read, so with the defaults a chatty process blocked on its own write and the job's synchronous wait held a worker for ever. Nothing is redirected unless consumed. (port of the rc.1 fix)
  • A connection that cannot join the ambient transaction is refusedEnlistConnection inside a TransactionScope took a Microsoft.Data.Sqlite connection on trust, and SQLite cannot enlist, so every statement committed on the spot and a rolled-back scope left the schedule behind. EnlistTransaction(DbTransaction) still works there. (port of the beta.1 fix)
  • The misfire threshold instant itself is late, on every store — a trigger due at exactly now - MisfireThreshold was a misfire to RAMJobStore and to the ADO store's single-trigger path but not to its periodic sweep; the sweep says <= now and the acquisition predicate moved to > in step. (port of #​3462)
    • Behavior change worth noting: a trigger due at exactly that instant is swept as a misfire where the periodic sweep used to pass over it, so its misfire instruction now applies to it.
  • A job-data number written with a decimal comma is unreadable, not a hundredfold of itself"3,14" read as 314 from the floating-point accessors while GetInt threw. (port of the beta.1 fix)
    • Behavior change worth noting: GetDouble and GetFloat throw a FormatException for such a string where they used to answer a number a hundred times too large.
  • A group matcher containing [ matches literally on SQL Server — T-SQL reads [ as a character class in LIKE; it is escaped on that dialect only, because the standard forbids escaping a non-wildcard elsewhere. (port of the rc.1 fix)
    • Behavior change worth noting: a matcher whose value contains [ matches the groups it names rather than the character class T-SQL read it as, so it can list, pause, resume or delete a different set than on 3.20.
  • DirectoryScanJob stores its previous scan as something a job store can write — it kept a List<FileInfo> under [PersistJobDataAfterExecution], which System.Text.Json cannot write, so its first firing on such a store failed to persist. A legacy list already in a running scheduler is still read. (port of the rc.1 fix)
  • DirectoryScanJob runs at all on 3.20 — it read its optional job-data keys with GetString, which throws for a key that is not there, so a job configured without a directory provider or listener name failed on every firing with KeyNotFoundException. Found while porting the previous item; the optional keys are asked for rather than read.
  • SelectSchedulerStateRecords binds its parameters in statement order — only a provider with BindByName off could ever have noticed. (port of the alpha.3 fix)

Public API

Unchanged. No signature was added, altered or removed, and the PublicApiTest baselines did not move.
... (truncated)

Commits viewable in compare view.

Updated TUnit from 1.65.68 to 1.66.8.

Release notes

Sourced from TUnit's releases.

1.66.8

What's Changed

Other Changes

Dependencies

Full Changelog: thomhurst/TUnit@v1.66.0...v1.66.8

1.66.0

What's Changed

Other Changes

Dependencies

Full Changelog: thomhurst/TUnit@v1.65.68...v1.66.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 Microsoft.Testing.Extensions.CodeCoverage from 18.10.0 to 18.11.0
Bumps Quartz.Extensions.Hosting from 3.20.0 to 3.20.1
Bumps TUnit from 1.65.68 to 1.66.8

---
updated-dependencies:
- dependency-name: Microsoft.Testing.Extensions.CodeCoverage
  dependency-version: 18.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget
- dependency-name: Quartz.Extensions.Hosting
  dependency-version: 3.20.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget
- dependency-name: TUnit
  dependency-version: 1.66.8
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget
...

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 Sep 5, 2026
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

✅ TUnit Test Results — 1 suite

200 tests across 1 suite in 362ms100.0% passed

Suite Tests ⏭️ Duration
Spottarr.Tests 200 200 0 0 362ms

📄 Combined HTML report: /home/runner/work/_temp/tunit-aggregate/run-33954283694-1-build/merged-report.html — upload it as an artifact to keep it after the job.


🟢 Spottarr.Tests (.NETCoreApp,Version=v10.0)

✓  Passed✘  Failed↷  Skipped∑  Total⧗  Elapsed
2002001s

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

Summary

Summary
Generated on: 09/05/2026 - 08:07:44
Parser: Cobertura
Assemblies: 4
Classes: 109
Files: 129
Line coverage: 27.3% (1996 of 7293)
Covered lines: 1996
Uncovered lines: 5297
Coverable lines: 7293
Total lines: 12809
Branch coverage: 26.8% (559 of 2080)
Covered branches: 559
Total branches: 2080
Method coverage: Feature is only available for sponsors
Tag: 664_33954283694

Coverage

Spottarr.Configuration - 0%
Name Line Branch
Spottarr.Configuration 0% ****
Spottarr.Configuration.Helpers.ConfigurationExtensions 0%
Spottarr.Configuration.Options.AdminOptions 0%
Spottarr.Configuration.Options.DatabaseOptions 0%
Spottarr.Configuration.Options.NewznabOptions 0%
Spottarr.Configuration.Options.SpotnetOptions 0%
Spottarr.Configuration.Options.UsenetOptions 0%
Spottarr.Configuration.ServiceCollectionExtensions 0%
Spottarr.Data - 10.6%
Name Line Branch
Spottarr.Data 10.6% 0%
Spottarr.Data.Entities.FtsSpot 0%
Spottarr.Data.Entities.Spot 100%
Spottarr.Data.Helpers.DatabaseFacadeExtensions 0%
Spottarr.Data.Helpers.DateConverters 0%
Spottarr.Data.Helpers.DbContextOptionsBuilderExtensions 0% 0%
Spottarr.Data.Helpers.DbPathHelper 0% 0%
Spottarr.Data.Helpers.HostExtensions 0% 0%
Spottarr.Data.Logging.LoggerExtensions 0% 0%
Spottarr.Data.ServiceCollectionExtensions 0%
Spottarr.Data.SpottarrDbContext 0% 0%
Spottarr.Services - 49%
Name Line Branch
Spottarr.Services 49% 48.8%
Spottarr.Services.ApplicationVersionService 0% 0%
Spottarr.Services.DatabaseMaintenanceService 0%
Spottarr.Services.Helpers.CollectionExtensions 0% 0%
Spottarr.Services.Helpers.HostEnvironmentExtensions 0%
Spottarr.Services.Helpers.PooledNntpClientExtensions 0% 0%
Spottarr.Services.Helpers.SegmentTextReader 100% 87.5%
Spottarr.Services.Helpers.SpotExtensions 0% 0%
Spottarr.Services.Helpers.StringExtensions 0%
Spottarr.Services.Helpers.XmlWriterExtensions 0% 0%
Spottarr.Services.Jobs.CleanUpSpotsJob 0%
Spottarr.Services.Jobs.ImportSpotsJob 0%
Spottarr.Services.Jobs.JobKeys 0%
Spottarr.Services.Jobs.JobsServiceCollectionExtensions 0% 0%
Spottarr.Services.Jobs.ServiceCollectionQuartzConfiguratorExtensions 0%
Spottarr.Services.Jobs.ServiceCollectionQuartzConfiguratorExtensions 0%
Spottarr.Services.Jobs.TriggerConfiguratorExtensions 0% 0%
Spottarr.Services.Logging.LoggerExtensions 0% 0%
Spottarr.Services.Models.SpotSearchFilter 0%
Spottarr.Services.Newznab.NewznabCategoryMapper 100% 95.2%
Spottarr.Services.Nntp.NntpArticleRangeFactory 100% 100%
Spottarr.Services.Parsers.BbCodeParser 100% 100%
Spottarr.Services.Parsers.HeaderDateParser 0% 0%
Spottarr.Services.Parsers.ImdbIdParser 85.7% 75%
Spottarr.Services.Parsers.NzbArticleParser 92% 88.8%
Spottarr.Services.Parsers.ParserResult 88.8% 25%
Spottarr.Services.Parsers.QueryExclusionParser 78.5% 77.2%
Spottarr.Services.Parsers.ReleaseTitleParser 100% 75%
Spottarr.Services.Parsers.SpotnetHeaderParser 100% 90%
Spottarr.Services.Parsers.SpotnetXmlParser 87.5% 100%
Spottarr.Services.Parsers.YearEpisodeSeasonParser 100% 94.4%
Spottarr.Services.ServiceCollectionExtensions 0% 0%
Spottarr.Services.Spotnet.Category 100% 100%
Spottarr.Services.Spotnet.Image 91.3% 75%
Spottarr.Services.Spotnet.Nzb 100% 100%
Spottarr.Services.Spotnet.Posting 100% 100%
Spottarr.Services.Spotnet.SpotHeaderExtensions 0% 0%
Spottarr.Services.Spotnet.SpotnetArticleNumberService 0% 0%
Spottarr.Services.Spotnet.SpotnetAttachmentService 0% 0%
Spottarr.Services.Spotnet.SpotnetSpotService 0% 0%
Spottarr.Services.Spotnet.SpotnetXml 100%
Spottarr.Services.Spotnet.SpotnetXmlCleaner 72.2% 42.8%
Spottarr.Services.Spots.MarkedSpotProcessor 0% 0%
Spottarr.Services.Spots.SpotCleanUpService 0% 0%
Spottarr.Services.Spots.SpotEnricher 0% 0%
Spottarr.Services.Spots.SpotImportService 0% 0%
Spottarr.Services.Spots.SpotPersistenceExtensions 0% 0%
Spottarr.Services.Spots.SpotReimportService 0% 0%
Spottarr.Services.Spots.SpotReindexService 0% 0%
Spottarr.Services.Spots.SpotSearchService 0% 0%
System.Text.RegularExpressions.Generated 83% 67.5%
Spottarr.Web - 4.4%
Name Line Branch
Spottarr.Web 4.4% 3.1%
Microsoft.AspNetCore.OpenApi.Generated 0% 0%
Program 0% 0%
Spottarr.Web.Api.SpotMapper 0% 0%
Spottarr.Web.Api.SpotSelectionMapper 100% 95%
Spottarr.Web.Auth.AdminAuthenticationHandler 0% 0%
Spottarr.Web.Auth.NewznabAuthenticationHandler 0% 0%
Spottarr.Web.EndpointResults.HtmlResult 0%
Spottarr.Web.EndpointResults.NewznabRssResult 0%
Spottarr.Web.EndpointResults.XmlResult 0%
Spottarr.Web.Endpoints.ApiEndpoints 0% 0%
Spottarr.Web.Endpoints.HtmxEndpoints 0% 0%
Spottarr.Web.Endpoints.NewznabEndpoints 0% 0%
Spottarr.Web.Helpers.AdminSecuritySchemeTransformer 0% 0%
Spottarr.Web.Helpers.AuthenticationBuilderExtensions 0%
Spottarr.Web.Helpers.ConfigurationManagerExtensions 0% 0%
Spottarr.Web.Helpers.EnumExtensions 0% 0%
Spottarr.Web.Helpers.EnumExtensions 0% 0%
Spottarr.Web.Helpers.HttpResponseExtensions 0%
Spottarr.Web.Helpers.NewznabHttpRequestExtensions 0%
Spottarr.Web.Helpers.NewznabOperationTransformer 0% 0%
Spottarr.Web.Helpers.SpottarrJsonSerializerContext 0% 0%
Spottarr.Web.Helpers.StringExtensions 100% 100%
Spottarr.Web.Helpers.WriteableQueryCollection 0% 0%
Spottarr.Web.Logging.LoggerExtensions 0% 0%
Spottarr.Web.Logging.LoggingBuilderExtensions 0% 0%
Spottarr.Web.Middlewares.NewznabQueryActionMiddleware 0% 0%
Spottarr.Web.Newznab.CapabilitiesHelper 0% 0%
Spottarr.Web.Newznab.Models.Capabilities 0%
Spottarr.Web.Newznab.Models.Category 0%
Spottarr.Web.Newznab.Models.Error 0%
Spottarr.Web.Newznab.Models.Limits 0%
Spottarr.Web.Newznab.Models.MainCategory 0%
Spottarr.Web.Newznab.Models.Registration 0%
Spottarr.Web.Newznab.Models.Search 0%
Spottarr.Web.Newznab.Models.Searching 0%
Spottarr.Web.Newznab.Models.ServerInfo 0%
Spottarr.Web.Newznab.NewznabMapper 26.1% 8.4%
Spottarr.Web.Newznab.NewznabRssSerializer 100%
Spottarr.Web.Newznab.SyndicationFeedExtensions 85.9% 50%
Spottarr.Web.ServiceCollectionExtensions 0% 0%
System.Runtime.CompilerServices 0%
System.Text.RegularExpressions.Generated 0% 0%

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