Skip to content

Bump Meziantou.Analyzer and 8 others - #115

Open
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/nuget/develop/nuget-remaining-8cd7cae011
Open

dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/nuget/develop/nuget-remaining-8cd7cae011

Conversation

@dependabot

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

Copy link
Copy Markdown
Contributor

Updated Meziantou.Analyzer from 3.0.312 to 3.0.315.

Release notes

Sourced from Meziantou.Analyzer's releases.

3.0.315

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.315

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.314...3.0.315

3.0.314

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.314

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.313...3.0.314

3.0.313

NuGet package: https://www.nuget.org/packages/Meziantou.Analyzer/3.0.313

What's Changed

Full Changelog: meziantou/Meziantou.Analyzer@3.0.312...3.0.313

Commits viewable in compare view.

Pinned NAudio.Wasapi at 3.3.0.

Release notes

Sourced from NAudio.Wasapi's releases.

3.3.0

A packaging and nullability release. The NAudio meta-package is now a single
net9.0 package that brings the Windows backends (WinMM and WASAPI) to plain
netX.0 projects, so a net10.0 console app on Windows gets working MP3
decoding and playback rather than a cross-platform subset that threw
NotSupportedException. In exchange it no longer pulls in NAudio.Asio,
NAudio.Dmo or NAudio.WinForms, which must now be referenced directly if
used. NAudio.WinMM, NAudio.Asio, NAudio.Dmo and NAudio.Vst3 likewise
now target plain net9.0.

Every NAudio package is now compiled with nullable reference types enabled.
This is a source-level change with no binary breaks, but projects with
nullable enabled may see new warnings, and a number of members that used to
throw NullReferenceException now throw ObjectDisposedException or
InvalidOperationException instead.

The fixes centre on WasapiRecorder/WasapiCapture restarting cleanly after
both successful and failed starts, buffer and handle lifetime bugs in the
winmm MIDI backend, and frame-aligned seeking in MediaFoundationReader.

  • Breaking: the NAudio meta-package is now a single net9.0 package that pulls in NAudio.Core, NAudio.Midi, NAudio.WinMM and NAudio.Wasapi on every target framework. A plain netX.0 project on Windows (e.g. a console app on net10.0) now gets Mp3FileReader, WaveOut, WasapiPlayer and an AudioFileReader that reads MP3, where previously it silently got a cross-platform subset that threw NotSupportedException (#​1472). It no longer includes NAudio.Asio, NAudio.Dmo or NAudio.WinForms: add those packages if you use AsioOut/AsioDevice, DirectSoundOut or the DMO effects, or WaveOutWindow/WaveInWindow/the NAudio.Gui controls. AudioFileReader now chooses its Media Foundation/ACM paths at runtime, and off Windows its NotSupportedException messages point to NAudio.SoundFile. NAudio.Extras is now single-target net9.0, with AudioPlaybackEngine marked Windows-only (#​1485)
  • NAudio.WinMM, NAudio.Asio, NAudio.Dmo and NAudio.Vst3 now target plain net9.0 instead of net9.0-windows, matching NAudio.Wasapi. They remain Windows-only, enforced by [SupportedOSPlatform("windows")], but can now be referenced directly from a plain netX.0 project (calls show CA1416 warnings unless guarded or the project is marked Windows-only) and built on Linux/macOS without EnableWindowsTargeting. No change for projects targeting netX.0-windows (#​1482)
  • Nullable reference types in NAudio.Core - NAudio.Core is now compiled with nullable reference types enabled, so its public API carries nullability annotations (e.g. WaveFileReader.ReadNextSampleFrame and Mp3Frame.LoadFromStream return nullable types, and Mp3Frame.RawData is byte[]? when a frame is read without its data). This is a source-level change only: there are no binary breaks, but projects with nullable enabled may see new warnings, and overrides of NAudio.Core virtual members may need matching annotations. XingHeader.LoadXingHeader now returns null for a frame read without its data instead of throwing. Thanks to @​Seb-stian (#​1452)
  • Nullable reference types in NAudio.Midi - NAudio.Midi is now also compiled with nullable reference types enabled (e.g. MidiInMessageEventArgs.MidiEvent and NoteOnEvent.OffEvent are nullable). Source-level change only; projects with nullable enabled may see new warnings. MidiEvent.ReadNextEvent now throws FormatException instead of NullReferenceException for running status with no previous event, and RawMetaEvent treats null data as empty (#​825)
  • Nullable reference types in NAudio.WinMM - NAudio.WinMM is now compiled with nullable reference types enabled (e.g. AcmDriver.FindByShortName and WaveCapabilitiesHelpers.GetNameFromGuid return nullable types, and AcmDriver.ShowFormatChooseDialog has nullable out parameters). Source-level change only; projects with nullable enabled may see new warnings. WaveOut.OutputWaveFormat before Init now throws InvalidOperationException, AcmStream members throw ObjectDisposedException after dispose, and GetNameFromGuid returns null instead of throwing when the registry key is missing, where each previously threw NullReferenceException (#​825)
  • Nullable reference types in NAudio.SoundFile and NAudio.Sampler - both packages are now compiled with nullable reference types enabled (e.g. the SoundFileTags fields, SoundFileWriterOptions.Tags and SoundFileException.Function are nullable, and the TryLoad methods on WaveSampleLoader / ISfzSampleLoader mark left as non-null on success and right as null for mono). Source-level change only; projects with nullable enabled may see new warnings, and custom ISfzSampleLoader implementations may need matching annotations (#​825)
  • Nullable reference types in NAudio.WinForms, NAudio.Alsa and NAudio.Extras - these packages are now compiled with nullable reference types enabled (e.g. WaveViewer.WaveStream, AlsaException.Function and the control/device events are nullable). Source-level change only; projects with nullable enabled may see new warnings. AlsaOut.OutputWaveFormat and WaveOutWindow.OutputWaveFormat now throw InvalidOperationException before Init (previously null and NullReferenceException respectively), and WaveOutWindow.Play before Init throws InvalidOperationException instead of NullReferenceException (#​825)
  • Nullable reference types in NAudio.Asio - NAudio.Asio is now compiled with nullable reference types enabled (e.g. the optional AsioPlaybackOptions.OutputChannels / AsioDuplexOptions.InputChannels, the AsioDevice/AsioOut events and the AsioDriverExt callbacks are nullable; required option members such as Source and Processor stay non-nullable). Source-level change only; projects with nullable enabled may see new warnings. AsioOut members now throw ObjectDisposedException after Dispose and AsioOut.OutputWaveFormat throws InvalidOperationException when no playback source is initialised, where they previously threw NullReferenceException or returned null (#​825)
  • Nullable reference types in NAudio.Dmo - NAudio.Dmo is now compiled with nullable reference types enabled (e.g. DirectSoundOut.PlaybackStopped and DirectSoundDeviceInfo.ModuleName are nullable). Source-level change only; projects with nullable enabled may see new warnings. DirectSoundOut.OutputWaveFormat now throws InvalidOperationException before Init instead of returning null, and the MediaObject wrappers, DmoResampler.MediaObject, WindowsMediaMp3Decoder.MediaObject and DmoOutputDataBuffer.MediaBuffer throw ObjectDisposedException after Dispose instead of returning null or throwing NullReferenceException (#​825)
  • Nullable reference types in NAudio.Wasapi (CoreAudioApi and MediaFoundation) - the NAudio.CoreAudioApi and NAudio.MediaFoundation types are now annotated for nullable reference types (e.g. AudioClient.TryGetAcousticEchoCancellationControl, MMDeviceEnumerator.TryGetDefaultAudioEndpoint, MfSourceReader.ReadSample, PropertyStoreProperty.Value and Part.AudioVolumeLevel/AudioMute/JackDescription are nullable); WasapiOut, WasapiCapture and the other top-level classes follow in a separate change. Source-level change only; projects with nullable enabled may see new warnings. The CoreAudio and Media Foundation COM wrappers now throw ObjectDisposedException when used after Dispose instead of NullReferenceException, AudioSessionManager.Sessions throws InvalidOperationException instead of returning null when sessions are unavailable, and AudioSessionControl.AudioMeterInformation / SimpleAudioVolume throw NotSupportedException instead of returning null if the session does not expose those interfaces (#​825)
  • Nullable reference types in NAudio.Wasapi (playback, capture and Media Foundation classes) - WasapiOut, WasapiCapture, WasapiPlayer, WasapiRecorder, their builders and MediaFoundationReader/StreamMediaFoundationReader/MediaFoundationEncoder are now annotated too, completing NAudio.Wasapi (e.g. WasapiPlayer/WasapiRecorder.DeviceId and DeviceFriendlyName, LowLatencyUnavailableReason, WasapiRecorder.AcousticEchoCancellationControl, WasapiPlayer.GetSupportedExclusiveFormat, MediaFoundationEncoder.SelectMediaType and the playback/recording events are nullable). Source-level change only; projects with nullable enabled may see new warnings. The WASAPI classes now throw ObjectDisposedException when used after Dispose, and report InvalidOperationException instead of NullReferenceException through PlaybackStopped when playback is started without Init (#​825)
  • Nullable reference types in NAudio.MacOS - NAudio.MacOS is now compiled with nullable reference types enabled (e.g. AudioSystemObject.DefaultInputDevice/DefaultOutputDevice, the ConvertUIDToDevice-style lookups, AudioObject.Owner, AudioDevice.Icon, ExtendedAudioFileReaderSettings.OutputFormat, ExtendedAudioFileWriterSettings.FileType/ProvidingFormat and the player, recorder and property-listener events are nullable). Source-level change only; projects with nullable enabled may see new warnings. Object-list properties such as AudioSystemObject.Devices now skip unknown object IDs instead of returning null entries, the parameterless CoreAudioPlayer/CoreAudioRecorder constructors throw InvalidOperationException instead of ArgumentNullException when there is no default device, and ExtendedAudioFileWriter captures ProvidingFormat when created rather than re-reading the settings object on every write (#​825)
  • Fixed WasapiRecorder and WasapiCapture failing with AUDCLNT_E_ALREADY_INITIALIZED when restarted after a start that failed late in initialization (e.g. no AEC reference control); the original error is now reported again (#​1493)
  • Fixed WasapiRecorder and WasapiCapture being left in the Starting state when initialization throws, so later StartRecording calls failed with "Already recording". (#​1490)
  • Fixed WasapiRecorder not able to re-start after successfully stopping the recorder. (#​1479)
  • Fixed several buffer and handle lifetime bugs in the winmm MIDI backend: MidiOut.SendBuffer no longer frees a sysex buffer while the driver may still own it, MidiIn now stops input before resetting it, and neither class calls into winmm with a handle it never opened. MidiOut.SendBuffer now blocks until the driver releases the buffer and throws MmException if the send fails (#​1478)
  • Fixed MediaFoundationReader reporting a Position that was not a whole number of frames after seeking a compressed file (e.g. MP3 or AAC), up to a frame before the requested position, and a Length that could include a partial frame. Seeks now round down to a frame boundary and land exactly on it (#​1488)

Commits viewable in compare view.

Pinned OpenTelemetry.Exporter.OpenTelemetryProtocol at 1.20.1.

Release notes

Sourced from OpenTelemetry.Exporter.OpenTelemetryProtocol's releases.

1.20.1

For highlights and announcements pertaining to this release see: Release Notes > 1.20.1.

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#​7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#​7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#​7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#​7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#​7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#​7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#​7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#​7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#​7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#​7968)

... (truncated)

1.20.1-rc.1

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1-rc.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#​7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#​7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#​7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#​7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#​7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#​7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#​7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#​7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#​7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#​7968)

    • Self-diagnostics messages written to the sinks configured by
      SelfDiagnosticsOptions are now truncated to 16,384 characters so that the
      ... (truncated)

1.20.1-beta.1

The following changes are from the previous release 1.20.0-beta.1.

  • NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.20.1-beta.1

    • Fixed scrape responses being handed to the server in a single write, which
      made the server buffer a full copy of the response for each client that did
      not read it until the request completed or timed out. Responses are now
      written in bounded slices so the server's back-pressure applies.
      (#​7957)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#​7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.20.1-beta.1

    • Fixed scrape responses being handed to the server in a single write, which
      on Linux and macOS made the listener allocate and hold a full copy of the
      response for each client that did not read it until the request completed or
      timed out. Responses are now written in bounded slices.
      (#​7957)

    • Fixed scrape requests that announce a request body holding a thread pool
      thread after their response had been sent on Linux and macOS for as long as
      the client kept trickling in the body. The connection is now closed after
      responding to a request with a body instead of being kept alive.
      (#​7962)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#​7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Shims.OpenTracing v1.20.1-beta.1

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

Commits viewable in compare view.

Pinned OpenTelemetry.Extensions.Hosting at 1.20.1.

Release notes

Sourced from OpenTelemetry.Extensions.Hosting's releases.

1.20.1

For highlights and announcements pertaining to this release see: Release Notes > 1.20.1.

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#​7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#​7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#​7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#​7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#​7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#​7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#​7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#​7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#​7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#​7968)

... (truncated)

1.20.1-rc.1

The following changes are from the previous release 1.20.0.

  • NuGet: OpenTelemetry v1.20.1-rc.1

    • Fixed a possible race condition on ARM64 when multiple threads record the
      first measurement with no tags, or the first overflow measurement, that could
      cause the measurement to be recorded incorrectly.
      (#​7951)

    • Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
      and prefixed JWTs.
      (#​7955)

    • Fixed default HTTP client log filtering when registering the OTLP log exporter
      through OpenTelemetryLoggerOptions.
      (#​7959)

    • Fixed legacy self-diagnostics logging terminating the process when the log
      file is truncated or the log volume runs out of space.
      (#​7956)

    • Experimental (pre-release builds only): Fixed Logger.EmitLog ignoring
      instrumentation suppression, which could cause recursive exports or deadlocks.
      (#​7961)

    • Fixed delta double counters losing subsequent measurements after a non-finite
      or large value and idle metric points with a NaN value failing to be reclaimed.
      (#​7963)

    • Improve the assignment of values to exponential histogram buckets when the
      value is near a bucket boundary by using a pre-computed lookup table.
      (#​7911)

    • Fixed LogRecords being returned to the shared pool while still queued for
      export when an exporter stops enumerating a single-item or array
      Batch<LogRecord> early which could cause a BatchLogRecordExportProcessor
      on the same provider to export missing or incorrect data.
      (#​7965)

    • Fixed a SuppressInstrumentationScope.Enter() reference count never being
      released when the Activity it was entered for is not recorded, which caused
      all subsequent telemetry in that execution context to be suppressed.
      (#​7966)

    • Self-diagnostics log files, whether configured through OTEL_DIAGNOSTICS.json
      or SelfDiagnosticsOptions, are now always created as new files.
      (#​7968)

    • Self-diagnostics messages written to the sinks configured by
      SelfDiagnosticsOptions are now truncated to 16,384 characters so that the
      ... (truncated)

1.20.1-beta.1

The following changes are from the previous release 1.20.0-beta.1.

  • NuGet: OpenTelemetry.Exporter.Prometheus.AspNetCore v1.20.1-beta.1

    • Fixed scrape responses being handed to the server in a single write, which
      made the server buffer a full copy of the response for each client that did
      not read it until the request completed or timed out. Responses are now
      written in bounded slices so the server's back-pressure applies.
      (#​7957)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#​7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Exporter.Prometheus.HttpListener v1.20.1-beta.1

    • Fixed scrape responses being handed to the server in a single write, which
      on Linux and macOS made the listener allocate and hold a full copy of the
      response for each client that did not read it until the request completed or
      timed out. Responses are now written in bounded slices.
      (#​7957)

    • Fixed scrape requests that announce a request body holding a thread pool
      thread after their response had been sent on Linux and macOS for as long as
      the client kept trickling in the body. The connection is now closed after
      responding to a request with a body instead of being kept alive.
      (#​7962)

    • Fixed startup scrapes permanently omitting target_info and configured
      resource constant labels from subsequent scrape responses.
      (#​7984)

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

  • NuGet: OpenTelemetry.Shims.OpenTracing v1.20.1-beta.1

    • Updated OpenTelemetry core component version(s) to 1.20.1.
      (#​7990)

    See CHANGELOG for details.

Commits viewable in compare view.

Pinned Quartz at 3.22.7.

Release notes

Sourced from Quartz's releases.

3.22.7

Fixes for the 3.x line, ported from 4.6. There is no public API change and no schema change.

Fixed

  • A trigger re-applied at startup keeps its previous fire time. Creating a scheduler re-applies the triggers the configuration registers through RescheduleJob, which replaced the stored trigger with one that had none, so PreviousFireTimeUtc was lost on every restart. It is now carried over when the replacement has none. (#​4127, from #​4122)
  • A recovered trigger keeps its job's execution group. A firing replayed after a node failure, a shutdown hand-back or startup recovery was stored ungrouped and ran beside a live firing of the same group, whatever the group's limit. (#​4085)
  • A manual firing carries the execution group its job's triggers share. TriggerJob and the dashboard's Trigger now carried none, so they ignored the group's limit. (#​4110)
  • Names in IConfiguration keep their case. A hierarchical section camel-cased every path segment on its way to the flat quartz.* keys, names the user chose included, and StdSchedulerFactory looks names up ordinally: Quartz:DataSource:MyDS beside Quartz:JobStore:DataSource = MyDS failed with no data source found. Data source, listener, execution-limit and context names now keep their case, and a plugin's name stays camel-cased, so the XML plugin's stored file-scan job keeps its key. (#​4108)
  • The dashboard's cron preview uses the trigger's time zone and calendar, and previews the expression being edited. (#​4118)

Warnings

  • A clustered scheduler warns when every node would share the instance id NON_CLUSTERED, which makes each node read the other's fired triggers as its own. Set quartz.scheduler.instanceId to AUTO, or a distinct id per node. 4.6 generates the id instead; 3.x keeps the default, because changing it would re-key an existing deployment's rows. (#​4106)
  • A generated job or trigger identity in a persistent store logs a warning: a generated key is new on every start, so a persistent store keeps another copy each time, and every copy of a trigger fires. Give it a stable key with WithIdentity. (#​4114)

What's Changed

Other changes

Full Changelog: quartznet/quartznet@v3.22.6...v3.22.7

Commits viewable in compare view.

Pinned Quartz.Extensions.Hosting at 3.22.7.

Release notes

Sourced from Quartz.Extensions.Hosting's releases.

3.22.7

Fixes for the 3.x line, ported from 4.6. There is no public API change and no schema change.

Fixed

  • A trigger re-applied at startup keeps its previous fire time. Creating a scheduler re-applies the triggers the configuration registers through RescheduleJob, which replaced the stored trigger with one that had none, so PreviousFireTimeUtc was lost on every restart. It is now carried over when the replacement has none. (#​4127, from #​4122)
  • A recovered trigger keeps its job's execution group. A firing replayed after a node failure, a shutdown hand-back or startup recovery was stored ungrouped and ran beside a live firing of the same group, whatever the group's limit. (#​4085)
  • A manual firing carries the execution group its job's triggers share. TriggerJob and the dashboard's Trigger now carried none, so they ignored the group's limit. (#​4110)
  • Names in IConfiguration keep their case. A hierarchical section camel-cased every path segment on its way to the flat quartz.* keys, names the user chose included, and StdSchedulerFactory looks names up ordinally: Quartz:DataSource:MyDS beside Quartz:JobStore:DataSource = MyDS failed with no data source found. Data source, listener, execution-limit and context names now keep their case, and a plugin's name stays camel-cased, so the XML plugin's stored file-scan job keeps its key. (#​4108)
  • The dashboard's cron preview uses the trigger's time zone and calendar, and previews the expression being edited. (#​4118)

Warnings

  • A clustered scheduler warns when every node would share the instance id NON_CLUSTERED, which makes each node read the other's fired triggers as its own. Set quartz.scheduler.instanceId to AUTO, or a distinct id per node. 4.6 generates the id instead; 3.x keeps the default, because changing it would re-key an existing deployment's rows. (#​4106)
  • A generated job or trigger identity in a persistent store logs a warning: a generated key is new on every start, so a persistent store keeps another copy each time, and every copy of a trigger fires. Give it a stable key with WithIdentity. (#​4114)

What's Changed

Other changes

Full Changelog: quartznet/quartznet@v3.22.6...v3.22.7

Commits viewable in compare view.

Pinned Quartz.Plugins at 3.22.7.

Release notes

Sourced from Quartz.Plugins's releases.

3.22.7

Fixes for the 3.x line, ported from 4.6. There is no public API change and no schema change.

Fixed

  • A trigger re-applied at startup keeps its previous fire time. Creating a scheduler re-applies the triggers the configuration registers through RescheduleJob, which replaced the stored trigger with one that had none, so PreviousFireTimeUtc was lost on every restart. It is now carried over when the replacement has none. (#​4127, from #​4122)
  • A recovered trigger keeps its job's execution group. A firing replayed after a node failure, a shutdown hand-back or startup recovery was stored ungrouped and ran beside a live firing of the same group, whatever the group's limit. (#​4085)
  • A manual firing carries the execution group its job's triggers share. TriggerJob and the dashboard's Trigger now carried none, so they ignored the group's limit. (#​4110)
  • Names in IConfiguration keep their case. A hierarchical section camel-cased every path segment on its way to the flat quartz.* keys, names the user chose included, and StdSchedulerFactory looks names up ordinally: Quartz:DataSource:MyDS beside Quartz:JobStore:DataSource = MyDS failed with no data source found. Data source, listener, execution-limit and context names now keep their case, and a plugin's name stays camel-cased, so the XML plugin's stored file-scan job keeps its key. (#​4108)
  • The dashboard's cron preview uses the trigger's time zone and calendar, and previews the expression being edited. (#​4118)

Warnings

  • A clustered scheduler warns when every node would share the instance id NON_CLUSTERED, which makes each node read the other's fired triggers as its own. Set quartz.scheduler.instanceId to AUTO, or a distinct id per node. 4.6 generates the id instead; 3.x keeps the default, because changing it would re-key an existing deployment's rows. (#​4106)
  • A generated job or trigger identity in a persistent store logs a warning: a generated key is new on every start, so a persistent store keeps another copy each time, and every copy of a trigger fires. Give it a stable key with WithIdentity. (#​4114)

What's Changed

Other changes

Full Changelog: quartznet/quartznet@v3.22.6...v3.22.7

Commits viewable in compare view.

Pinned Quartz.Plugins.TimeZoneConverter at 3.22.7.

Release notes

Sourced from Quartz.Plugins.TimeZoneConverter's releases.

3.22.7

Fixes for the 3.x line, ported from 4.6. There is no public API change and no schema change.

Fixed

  • A trigger re-applied at startup keeps its previous fire time. Creating a scheduler re-applies the triggers the configuration registers through RescheduleJob, which replaced the stored trigger with one that had none, so PreviousFireTimeUtc was lost on every restart. It is now carried over when the replacement has none. (#​4127, from #​4122)
  • A recovered trigger keeps its job's execution group. A firing replayed after a node failure, a shutdown hand-back or startup recovery was stored ungrouped and ran beside a live firing of the same group, whatever the group's limit. (#​4085)
  • A manual firing carries the execution group its job's triggers share. TriggerJob and the dashboard's Trigger now carried none, so they ignored the group's limit. (#​4110)
  • Names in IConfiguration keep their case. A hierarchical section camel-cased every path segment on its way to the flat quartz.* keys, names the user chose included, and StdSchedulerFactory looks names up ordinally: Quartz:DataSource:MyDS beside Quartz:JobStore:DataSource = MyDS failed with no data source found. Data source, listener, execution-limit and context names now keep their case, and a plugin's name stays camel-cased, so the XML plugin's stored file-scan job keeps its key. (#​4108)
  • The dashboard's cron preview uses the trigger's time zone and calendar, and previews the expression being edited. (#​4118)

Warnings

  • A clustered scheduler warns when every node would share the instance id NON_CLUSTERED, which makes each node read the other's fired triggers as its own. Set quartz.scheduler.instanceId to AUTO, or a distinct id per node. 4.6 generates the id instead; 3.x keeps the default, because changing it would re-key an existing deployment's rows. (#​4106)
  • A generated job or trigger identity in a persistent store logs a warning: a generated key is new on every start, so a persistent store keeps another copy each time, and every copy of a trigger fires. Give it a stable key with WithIdentity. (#​4114)

What's Changed

Other changes

Full Changelog: quartznet/quartznet@v3.22.6...v3.22.7

Commits viewable in compare view.

Pinned Quartz.Serialization.SystemTextJson at 3.22.7.

Release notes

Sourced from Quartz.Serialization.SystemTextJson's releases.

3.22.7

Fixes for the 3.x line, ported from 4.6. There is no public API change and no schema change.

Fixed

  • A trigger re-applied at startup keeps its previous fire time. Creating a scheduler re-applies the triggers the configuration registers through RescheduleJob, which replaced the stored trigger with one that had none, so PreviousFireTimeUtc was lost on every restart. It is now carried over when the replacement has none. (#​4127, from #​4122)
  • A recovered trigger keeps its job's execution group. A firing replayed after a node failure, a shutdown hand-back or startup recovery was stored ungrouped and ran beside a live firing of the same group, whatever the group's limit. (#​4085)
  • A manual firing carries the execution group its job's triggers share. TriggerJob and the dashboard's Trigger now carried none, so they ignored the group's limit. (#​4110)
  • Names in IConfiguration keep their case. A hierarchical section camel-cased every path segment on its way to the flat quartz.* keys, names the user chose included, and StdSchedulerFactory looks names up ordinally: Quartz:DataSource:MyDS beside Quartz:JobStore:DataSource = MyDS failed with no data source found. Data source, listener, execution-limit and context names now keep their case, and a plugin's name stays camel-cased, so the XML plugin's stored file-scan job keeps its key. (#​4108)
  • The dashboard's cron preview uses the trigger's time zone and calendar, and previews the expression being edited. (#​4118)

Warnings

  • A clustered scheduler warns when every node would share the instance id NON_CLUSTERED, which makes each node read the other's fired triggers as its own. Set quartz.scheduler.instanceId to AUTO, or a distinct id per node. 4.6 generates the id instead; 3.x keeps the default, because changing it would re-key an existing deployment's rows. (#​4106)
  • A generated job or trigger identity in a persistent store logs a warning: a generated key is new on every start, so a persistent store keeps another copy each time, and every copy of a trigger fires. Give it a stable key with WithIdentity. (#​4114)

What's Changed

Other changes

Full Changelog: quartznet/quartznet@v3.22.6...v3.22.7

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 Meziantou.Analyzer from 3.0.312 to 3.0.315
Bumps NAudio.Wasapi from 3.2.0 to 3.3.0
Bumps OpenTelemetry.Exporter.OpenTelemetryProtocol from 1.20.0 to 1.20.1
Bumps OpenTelemetry.Extensions.Hosting from 1.20.0 to 1.20.1
Bumps Quartz from 3.22.6 to 3.22.7
Bumps Quartz.Extensions.Hosting from 3.22.6 to 3.22.7
Bumps Quartz.Plugins from 3.22.6 to 3.22.7
Bumps Quartz.Plugins.TimeZoneConverter from 3.22.6 to 3.22.7
Bumps Quartz.Serialization.SystemTextJson from 3.22.6 to 3.22.7

---
updated-dependencies:
- dependency-name: Meziantou.Analyzer
  dependency-version: 3.0.315
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: NAudio.Wasapi
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: nuget-remaining
- dependency-name: OpenTelemetry.Exporter.OpenTelemetryProtocol
  dependency-version: 1.20.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: OpenTelemetry.Extensions.Hosting
  dependency-version: 1.20.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: Quartz
  dependency-version: 3.22.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: Quartz.Extensions.Hosting
  dependency-version: 3.22.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: Quartz.Plugins
  dependency-version: 3.22.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: Quartz.Plugins.TimeZoneConverter
  dependency-version: 3.22.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
- dependency-name: Quartz.Serialization.SystemTextJson
  dependency-version: 3.22.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: nuget-remaining
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from w0rldx as a code owner October 20, 2026 21:46
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Oct 20, 2026

This branch has not been deployed

No deployments
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