Skip to content

Bump croner from 10.0.1 to 11.0.0 - #639

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/croner-11.0.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/npm_and_yarn/croner-11.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 1, 2026

Copy link
Copy Markdown
Contributor

Bumps croner from 10.0.1 to 11.0.0.

Release notes

Sourced from croner's releases.

11.0.0

Croner 11.0.0 is a major release focused on correctness and predictability: DST handling aligned with croner-rust and Vixie cron, a new iterator API, and a long list of scheduling fixes around timezones, clock changes and edge-case patterns.

Highlights

  • Iterator API — The new enumerate() method returns a stateful CronIterator that works with for...of, destructuring, next(), peek() and reset(), and honors maxRuns.

  • Predictable DST handling — DST transitions now work as in croner-rust and Vixie cron. Fixed-time jobs in a spring-forward gap run at the first valid time after it, and interval jobs keep running through the repeated hour at fall back. Negative timer re-arming during fall back is fixed.

  • Inclusive startAt — A pattern match exactly at startAt now runs.

  • dayOffset that matches reality — nextRun(), nextRuns(), previousRuns(), msToNext() and enumerate() return actual run times, the same ones the scheduler uses.

  • Date-based jobs for "now" — A one-off job dated up to 1 second in the past fires immediately. The new allowPast option lets older dates fire too.

  • Faster timezone scheduling — Intl.DateTimeFormat instances are cached per timezone.

  • Timezone and clock robustness — ISO 8601 strings are read in the job's timezone/utcOffset, and scheduling recovers properly after system clock steps forward or backward.

Breaking Changes

  • DST handling aligned with croner-rust and Vixie cron, deliberately deviating from OCPS 1.4 §4.3.1 (0 30 2 * * * in a DST gap now runs at 3:00 AM instead of 3:30 AM, and interval jobs run on both occurrences of a repeated time)
  • startAt is inclusive (not when interval is set)
  • With dayOffset, nextRun() and related methods return actual run times, and startAt/stopAt apply to the shifted run time
  • previousRun() returns when the previous run started, as documented, instead of when it finished

See the migration guide further down for a smooth upgrade from 10.x.

Thank you to all contributors, and a special welcome to @​SynthLuvr, @​exceptdev, @​EmersonBraun, @​premsreelathasugeendran, @​bensynapse, @​youdie006, @​sarmah-rup, @​Shaisolaris and @​cristianchiriac for their first contributions! 🎉

Details

Breaking changes

  • DST handling aligned with croner-rust and Vixie cron, deviating from OCPS 1.4 §4.3.1: jobs are either fixed-time jobs (one value each for seconds, minutes and hours) or interval jobs.
    • A fixed-time job in a DST gap (spring forward) runs at the first valid time after the gap. In 10.x it ran as much later as the gap was long (0 30 2 * * * ran at 3:30 AM, now 3:00 AM).
    • An interval job runs on both occurrences of a time repeated by a DST overlap (fall back), so * * * * * keeps running through the repeated hour (#343, #407). Patterns with more than one hour, minute or second, like 0 30 1,2 * * *, are interval jobs.
    • Fixed-time jobs still run once, at the first occurrence, in a DST overlap.
  • startAt is inclusive: a pattern match exactly at startAt now runs. Previously the first run was the following match. This does not apply with interval set, which works as in 10.x. A startAt between two whole seconds counts from the next whole second, and a run in the same second before a fractional stopAt (00:00:00 with stopAt 00:00:00.500) now runs. 10.x excluded it.
  • With dayOffset, nextRun(), nextRuns(), previousRuns(), msToNext() and enumerate() return actual run times, searched from the reference, the same way the scheduler and isRunning() do. Previously they shifted the next pattern match after the reference, so a negative offset could return a time before the reference, and msToNext() ignored the offset. startAt and stopAt also apply to the shifted run time. In 10.x they applied to the unshifted pattern match, so a job could run before startAt or after stopAt.
  • previousRun() returns when the previous run started, as documented. Previously it returned when the run finished.

Added

  • enumerate(startAt?) method returning a stateful CronIterator that supports iterator/iterable protocols (for...of, destructuring, next(), peek(), reset()) and honors maxRuns (#365). The CronIterator class is exported.
  • allowPast option for explicitly allowing date-based jobs scheduled more than 1 second in the past to fire immediately (#349).
  • CatchCallbackFn, CronMode and ProtectCallbackFn are exported from the source entry point (JSR). The npm type declarations already exposed them.

Changed

... (truncated)

Changelog

Sourced from croner's changelog.

[11.0.0] - 2026-10-25

Breaking changes

  • DST handling aligned with croner-rust and Vixie cron, deviating from OCPS 1.4 §4.3.1: jobs are either fixed-time jobs (one value each for seconds, minutes and hours) or interval jobs.
    • A fixed-time job in a DST gap (spring forward) runs at the first valid time after the gap. In 10.x it ran as much later as the gap was long (0 30 2 * * * ran at 3:30 AM, now 3:00 AM).
    • An interval job runs on both occurrences of a time repeated by a DST overlap (fall back), so * * * * * keeps running through the repeated hour (#343, #407). Patterns with more than one hour, minute or second, like 0 30 1,2 * * *, are interval jobs.
    • Fixed-time jobs still run once, at the first occurrence, in a DST overlap.
  • startAt is inclusive: a pattern match exactly at startAt now runs. Previously the first run was the following match. This does not apply with interval set, which works as in 10.x. A startAt between two whole seconds counts from the next whole second, and a run in the same second before a fractional stopAt (00:00:00 with stopAt 00:00:00.500) now runs. 10.x excluded it.
  • With dayOffset, nextRun(), nextRuns(), previousRuns(), msToNext() and enumerate() return actual run times, searched from the reference, the same way the scheduler and isRunning() do. Previously they shifted the next pattern match after the reference, so a negative offset could return a time before the reference, and msToNext() ignored the offset. startAt and stopAt also apply to the shifted run time. In 10.x they applied to the unshifted pattern match, so a job could run before startAt or after stopAt.
  • previousRun() returns when the previous run started, as documented. Previously it returned when the run finished.

Added

  • enumerate(startAt?) method returning a stateful CronIterator that supports iterator/iterable protocols (for...of, destructuring, next(), peek(), reset()) and honors maxRuns (#365). The CronIterator class is exported.
  • allowPast option for explicitly allowing date-based jobs scheduled more than 1 second in the past to fire immediately (#349).
  • CatchCallbackFn, CronMode and ProtectCallbackFn are exported from the source entry point (JSR). The npm type declarations already exposed them.

Changed

  • Cached Intl.DateTimeFormat instances per timezone, making timezone-aware scheduling noticeably faster (based on #389).
  • Date-based jobs dated up to 1 second in the past now fire immediately, so a job created for "now" is not lost to the time it took to create it. Older dates fire only with allowPast: true. Previously a date-based job in the past never fired (#348, #349).
  • Clarified dayOffset JSDoc and completed missing option documentation, including iterator usage, allowPast, and DST behavior.
  • Updated the copyright year to 2026.

Fixed

  • Fixed timers being re-armed with negative delays throughout the repeated hour of a DST fall back

... (truncated)

Commits
  • 2df1672 Merge pull request #425 from Hexagon/dev
  • ecf62fd Release review fixes for 11.0.0 (#426)
  • b02a7a8 CI: run tests on master instead of main
  • 0e9e034 Bump version to 11.0.0
  • 4f2d08f Release prep: changelog corrections and docs cleanup for 11.0.0 (#421)
  • 2b4597e Fix CronDate ignoring field changes after construction (#422)
  • b16eee9 Fix documentation examples that throw or are invalid (#423)
  • 2024e6b Keep milliseconds in ISO strings, compare one-off dates with exact startAt (#...
  • e68341b Fix npm provenance: match repository.url casing to GitHub repo (#420)
  • 8dd3714 Bump version to 11.0.0-dev.9
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by GitHub Actions, a new releaser for croner since your current version.


Dependabot compatibility score

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 this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [croner](https://github.com/Hexagon/croner) from 10.0.1 to 11.0.0.
- [Release notes](https://github.com/Hexagon/croner/releases)
- [Changelog](https://github.com/Hexagon/croner/blob/master/CHANGELOG.md)
- [Commits](Hexagon/croner@10.0.1...11.0.0)

---
updated-dependencies:
- dependency-name: croner
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update Javascript code labels Nov 1, 2026

This branch had an error being deployed

1 failed deployment
e2e — c2b1a6a9 Deployed Nov 1, 2026 by dependabot[bot] via Deploy e2e #312
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 javascript Pull requests that update Javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants