fthomas/fs2-cron
57.6
Adequate · 20 September 2026
185
lines of production code
Scala
primary language
1
measurement over time
What this system is
This system is a Scala library that provides a unified scheduling abstraction for functional stream processing. It allows users to define and execute recurring tasks using standard cron expressions, cron4s expressions, or calendar-based events through a consistent ZonedDateTimeScheduler interface. The library integrates with the fs2 ecosystem to handle timezone-aware scheduling logic and includes automated tooling for dependency updates and releases.
Features
Add Calev and CronUtils scheduler implementations
Users can now schedule cron jobs using the \calev\ and \cron-utils\ libraries in addition to existing options. This change introduces \CalevScheduler\ for calendar event expressions and \CronUtilsScheduler\ for standard cron expressions, both implementing the \ZonedDateTimeScheduler\ interface to provide consistent scheduling behavior across different expression types.
modules/calev · high confidence
Add Cron4s integration for scheduling
Users can now schedule tasks using cron4s expressions via the new Cron4sScheduler. This component integrates the cron4s library with fs2-cron, allowing users to define schedules using cron4s CronExpr types and execute them based on ZonedDateTime calculations.
modules/cron4s/src/main · high confidence
Automated release script added
A new release script (scripts/release.sh) has been added to automate the release process. When invoked with a version number, it creates an annotated and signed Git tag, runs the readme/mdoc generation via sbt, commits the version update, and pushes both the code and tags to the remote repository.
scripts · high confidence
Initial project setup and documentation
The repository is initialized with the Apache 2.0 license, a comprehensive README detailing usage with Cron4s and Calev libraries, and standard build configuration files including .gitignore, .scalafmt.conf, and .mergify.yml for automated dependency updates.
(repo-wide) · high confidence
Introduce Scheduler abstraction and ZonedDateTimeScheduler implementation
The core module now exposes a new \Scheduler\ trait that defines scheduling operations such as \sleepUntilNext\, \awakeEvery\, and \schedule\, along with a concrete \ZonedDateTimeScheduler\ implementation that handles time-zone-aware scheduling. This change provides a structured API for calculating durations until the next scheduled event and executing tasks based on those schedules, replacing the previous inline logic within \ScheduledStreams\.
modules/core/src/main · high confidence
Test coverage
Added ZonedDateTimeSchedulerSuite for core scheduling tests; Added tests for Cron4s scheduler integration.
Dependencies
Updated core dependencies to fs2 3.12.2 and calev 0.7.4
The build configuration has been updated to use fs2-core version 3.12.2 and calev-core version 0.7.4. This change affects the underlying libraries used for stream processing and cron expression parsing within the fs2-cron modules.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 58.
Lenses
- Code Health 100
- Architecture 69
- Maturity 57
- Readiness 50
- Security 65
Changes since last survey
- 300 commits — 294 feature/other, 6 fixes
By area
- (repo) — 124 commits
- (root) — 79 commits
- project/plugins.sbt — 59 commits
- project/build.properties — 22 commits
- .github/workflows — 8 commits
- modules/core — 6 commits
- modules/calev — 1 commit
- modules/cron4s — 1 commit
Notable commits
- fix: Fix off-by-one error in fromNowUntilNext
- fix: Fix publishing?
- fix: Fix rounding
- fix: Merge pull request #559 from hugo-vrijswijk/fix-tl-base-version
- fix: Merge pull request #599 from fthomas/fix/598
- fix: Update cron4s and fix tlBaseVersion
- change: Add 'Reformat with scalafmt 3.9.7' to .git-blame-ignore-revs
- change: Also merge updates from scala-steward[bot]
- change: Do not run tests parallel
- change: Merge Scala Steward's PRs
- change: Merge pull request #454 from scala-steward/update/scala-library-2.13.12
- change: Merge pull request #475 from fthomas/update/sbt-1.9.8
- change: Merge pull request #476 from fthomas/update/sbt-typelevel-0.6.4
- change: Merge pull request #477 from scala-steward/update/sbt-scalajs-1.15.0
- change: Merge pull request #478 from scala-steward/update/mdoc-2.5.2
- change: Merge pull request #479 from scala-steward/update/sbt-typelevel-0.6.5
- change: Merge pull request #480 from scala-steward/update/cron4s-core-0.7.0
- change: Merge pull request #482 from scala-steward/update/fs2-core-3.9.4
- change: Merge pull request #483 from scala-steward/update/scalafmt-core-3.8.0
- change: Merge pull request #484 from scala-steward/update/sbt-scoverage-2.0.10
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
fthomas/fs2-cron was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8ee560c9e33fcf3772b53d4699c374890d63e627 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.