Planned functionality
Documentation
Documentation is likely incomplete.
Script uses Easing::Stream
(Available with 0.1.3) Script is currently linewise, but should be updated to leverage Easing::Stream
.
Script timestamps option
(Available with 0.1.3) schedule-easing.pl --timestamps
should work. It is currently available but not well tested.
Tests
All of the following need tests reviewed:
To Review
Schedule::Easing::Stream
, alarm()
, and clock
See the comment about the single-use alarm() and how the clock
setting overlaps with the timing of batch processing.
Reducing messages over time
Behavior when begin>final
is undefined/untested. There may be situations where message reduction is desirable, such as when messages will be removed prior to other cleanup/refactoring/deprecation efforts.
Item weighting
All line/messages have the same weight. Message weighting may be a property of content on the line itself, however. Proposed to collect weights with a regexp, and use a configured total weight for scheduling. This would be separate than a function, though it may be implemented as a score modification function per line.
Value gaps
Both MD5 and Numeric can suffer from notable value gaps. Currently that requires separate configurations.
Sets
This library isn't really designed for ongoing rotation though sets of names, such as oncall rotations or words, such as the names of the days of the week. Preselection via modular arithmetic is a much simpler solution. Additional examples of name-based scheduling are needed before considering this as an easing option.
Rolling increasing window
Windows of the form 1, 2, 3, ..., followed by "1 and 2", then "2 and 3", ..., then "1 and 2 and 3". These can likely be achieved with MD5 using multiple digest captures.