TaskForest Write-Up at SourceForge
SourceForge.net has a blog in which they feature a different hosted project every day. Today's blog entry features TaskForest. I'd like to take this opportunity to thank SourceForge for their support of open source software.
TaskForest Version 1.37 Released
There are two main enhancements in this release. The first is that now you can configure TaskForest to automatically retry running a job if it fails. The number of times it retries, as well as the amount of time between retries is configurable on a per-job basis.
TaskForest now also features a very powerful email system. You can configure TaskForest to email you when a job fails, when a job is retried, and when a job suceeds after failing and being retried. Each kind of email can be sent to a different email address, and these email addresses can be configured system-wide, or for each job, or for anything in the middle.
If you have developed your own run wrapper, please be advised that the interface to the run wrappers has changed. Instead of being passed parameters as command line arguments, the wrappers now look for environment variables.
TaskForest Version 1.36 Released
We've added a button to the logs form on the website that pops up a calendar window to help you select a date. Many thanks to Steve Hulet for providing the patch.
The logs display page on the website now has links to navigate to the previous and next days. Many thanks to Steve Hulet for providing the patch.
This version fixes a few more test cases that wouldn't run properly during certain times of the day.
TaskForest Version 1.35 Released
Starting in this release, you can now place a Waiting job on hold. If a job is placed on hold, it will not run during the current day even if all its dependencies are met. The only way to make it run as normal is if you first release the hold off the job.
The taskforestd web server now supports the default_time_zone option. This new configuration option will control how times are displayed in the 'logs' page, when the time zone in which the job ran is not known.
This version now gracefully handles the case where a job is marked for rerun and then removed from the Family file before it has the chance to rerun.
If a job fails, its status line on the web page is now colored.
The web site now prunes out carriage returns from job files. This would cause interpreted scripts to fail because the '#!' line contained a \r.
This version fixes a few test cases that wouldn't run properly during certain times of the day.
TaskForest Version 1.33 Released
You can now have a job in one Family depend on the completion of a job in another Family. This allows you to have one Family depend on another.
For example, job J2 in Family F2 can wait on Job J1 in Family F1 by specifying the dependency like this:
# This is in the F2 Family file J1::F1() J2()
For more information, check out the jobs and families configuration documentation.
TaskForest Version 1.26 Released
There was an unnecessary call to 'use Date::Calc' in Calendar.pm. I didn't notice it, because I have it installed. It is not being used. It may cause tests to fail. I have removed the line.
TaskForest Version 1.25 Released
TaskForest now supports calendars. A calendar is a set of rules that defines on what days a job may run. Each rule can may or may not conclusively determine whether or not a Family should run today. The rules are evaluated in the order in which they are specified. The last rule that conclusively determines whether of not a Family should run wins, in the case of conflicting rules. If none of the rules is conclusive, then the Family will not run today. You can set rules to specify certain dates or ranges of dates, or specific days, like "third friday of every month."
For more information, check out the calendars documentation.
We've also added a new FAQ page.
TaskForest Version 1.24 Released
This release introduces the concept of tokens. A token is a new kind of dependency. If a job depends on a token, it must acquire a free token before it can run, or wait for another job to release a token after completion. Since there is a finite set of tokens, you can use tokens to prevent too many jobs from running at the same time.
For example, if there are 20 jobs that rely on token T, but only 5 instances of the token, only a maximum of 5 of those jobs may run at the same time.
This release also formalizes the way Families with foreign time zones are handled. This allows you to 'time shift' your family, essentially allowing your family to run for 24 hours in a later timezone. This shifts the end of day towads the end of the family's running time.
TaskForest Version 1.23 Released
This release fixes a nasty bug where Family files were not being parsed properly if the files were in DOS format (with CRLF endings, instead of just LF). Unfortunately, most web browsers save textarea text with CRLF, so a Family file that was originally in Unix format (LF) could wind up being in DOS (CRLF) format if you edited it via the website.
TaskForest Version 1.22 Released
New in this version is the ability to release all dependencies from a job. This makes the job available to run immediately, regardless of how many jobs it is supposed to wait for, or what time dependency it has. Releasing a job effectively changes its status from 'Waiting' to 'Ready.' This option is only available to jobs that are currently in the 'Waiting' state.