Skip to content

Conversation

@CybotTM
Copy link
Member

@CybotTM CybotTM commented Nov 25, 2025

Summary

This PR modernizes the robfig/cron fork with critical fixes and improvements:

Bug Fixes

Enhancements

CI/Quality

  • Add comprehensive GitHub Actions CI workflow
  • Add golangci-lint v2 configuration
  • Add Dependabot for dependency updates
  • Fix deprecated io/ioutil usage

Documentation

  • Update README for fork with migration instructions
  • Document all fixes and improvements

Test plan

  • All existing tests pass
  • New tests added for panic fixes
  • DST test expectations updated for ISC cron behavior
  • Linter passes (golangci-lint run)
  • Successfully integrated into Ofelia with all tests passing

Bug robfig#554/robfig#555: TZ= parsing panic
- Added bounds check for space index in timezone parsing
- Returns error instead of panicking when spec has no fields after timezone
- Added comprehensive tests for malformed timezone specs

Bug robfig#551: Entry.Job.Run() bypasses chain decorators
- Added Entry.Run() method that executes through WrappedJob
- Ensures SkipIfStillRunning, DelayIfStillRunning, Recover are respected
- Added tests validating chain behavior

Tests: All new panic-prevention tests pass
- Updated go.mod from Go 1.12 to Go 1.25
- Changed module path from github.com/robfig/cron/v3 to github.com/netresearch/cron
- Fresh start with v1 versioning (no /v3 suffix)
- All tests pass with new Go version
Based on multi-model consensus (9/10 confidence), the repository
has been renamed from 'gron' to 'go-cron' following Go ecosystem
naming conventions (go-redis, go-github, etc.).
When time jumps forward due to DST (e.g., 2am→3am), jobs scheduled
during the skipped hour now run immediately at the next valid time
instead of being skipped entirely.

This follows ISC cron behavior and fixes common user expectations.
Based on robfig/cron PR robfig#541.
- Update badges and import paths for the fork
- Document panic fixes (issues robfig#554, robfig#555, robfig#551)
- Document DST handling improvements (PR robfig#541)
- Update Go version requirement to 1.25
- Simplify and modernize documentation structure
- Add comprehensive CI workflow with tests, linting, security scans
- Add Dependabot for gomod and github-actions updates
- Add golangci-lint v2 configuration with staticcheck, govet
- Fix deprecated io/ioutil usage (replace with io package)
- Apply gofmt/gofumpt/gci formatting across codebase
- Disable S1000/S1037 staticcheck rules for test patterns
@CybotTM CybotTM merged commit 14f3a34 into master Nov 25, 2025
2 checks passed
@CybotTM CybotTM deleted the fix/panic-bugs-and-modernization branch November 25, 2025 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants