web2project Status Update:Cascadng Tasks

This is the fifth in my weekly web2project updates.  For those of you just joining us, feel free to subscribe to my web2project-only newsfeed here.

We've had six commits this past week.  Some have been small – borderline trivial – but there are a couple that are huge and covered later in this post.

Next, we have thirteen open bugs.  While this seems like a bad thing, I don't consider it that.  Lots of bugs is often a sign that the software is in bad shape.  In some cases, this is true… I don't believe it is here.  Instead, I see this as an opportunity to catch issues pre-Release before they become support issues and fill the forums with plantive cries of "omg!!!111 help me!"  Resolving these problems now will save everyone time and stress… and probably save team credibility.

But there's something more subtle here…

If you found an Open Source project and there were *no* bugs reported, would you think the code was perfect?  I know I wouldn't.  Instead, I would think that either no one is using it or no one cares enough – in the team or larger community – to report issues.  The flood of bugs and supporting updates/feedback – have come from a small set of users (Large_Fries, dmarmga, eureka, and amallick)- but it's a sign of people using the system and caring enough (or being annoyed enough) to want their problems solved.

Next, the big nasty ugly problem of dependent tasks not cascading has been attacked.  I spent a large amount of time on Wednesday, reworking the logic of how the start/end dates are calculated based on the dependency tree.  This solution is not perfect and has not been tested with all possible data sets, but I believe it's solid and it works, but I need feedback, suggestions, criticism, and any problems passed along.

For sanity's sake, please leave all comments on the "Task dependencies not cascading" issue.

Unfortunately, I had to rework some of the code from the ground up to simplify the problem being partially solved. Once I'm confident – and have independent validation – that the logic itself is right and complete, I plan to move this recalculation to the store() method.  This will mean that whenever a Task is stored through the proper methods – you're not using raw database calls, right!? – the corresponding data will be updated accordingly.  This should make it a seemless operation that no one ever has to worry about… and will reduce duplication throughout the Task manipulation code.

Finally… as a result of this fix, I plan on spending time this weekend to evaulate if we're ready for a Release Candidate (RC).  With this update, I think we're very close, but I'd like to have some outside sets of eyes.  If there are any bugs, annoyances, etc that you've found, fixed, or worked around in your web2project, please let us know.  Report them in the web2project bug tracker so that we can do a pre-RC triage and get this thing out the door.