Keeping ToDoListLib in Sync with ToDoList

As always, Dan Godson (dan.g.) is extending a helping hand. As new versions of ToDoList are in development, Dan will periodically update the TdlSchema.tdl file which contains an example of all possible functionality. Dan and Tony share a Dropbox where this file will be stored. When the file is updated, Tony will pull it into the library and will perform the CodeGen operation to see if the new XML/schema affects the library.

The schema file (TdlSchema.xsd) that comes from CodeGen will be passed back to Dan, or he'll generate it himself. So unlike in the past, as a result of this project every new version of ToDoList itself should have a current schema that corresponds to the .tdl file. This will help anyone who is writing XSLT to transform lists into HTML or some other format.

That should also help to ensure that when a new release of ToDoList is issued that this library will be updated to support it. But this is not a guarantee!

If I (Tony and perhaps other library developers) are not available to get that update, then it's possible that a new version of ToDoList will be published and will thus be out of sync with the library. Even if we do get the update it will take some time to incorporate changes into the library. We may be able to issue a library update simultaneously with a new TDL release, within hours after, or it might take several days.

You mean there might be a new ToDoList version and the library will be different?!

Yes. That's exactly what I mean.

This is completely unacceptable!

In principle I agree but as developers and consumers we see this literally every day:

  • When a new release of Drupal is issued, it may take developers several months to update their mods to agree with the core. Some developers simply never get around to it. So you'll see a lot of extensions for v4, for example, that aren't certified for v5, and thousands of people asking for updates that never come.
  • The exact same scenario exists for Facebook apps, Wordpress, osCommerce, and any other Free and Open Source Software (FOSS) that has an extensible model (they support plugins, addons, mods, or extensions). This happens with games like World Of Warcraft and Minecraft. It happens with FireFox extensions, and Internet Explorer and the other browsers. And the Mono/C# project was always playing catchup with Microsoft to support .NET Framework features. This is the rule, not the exception.
  • It happens with mobile apps for iPhone, Android, and Windows Phone. Every time you get a new phone you will go to the app store and find some apps that you love aren't yet available - and then at some point they might be, or not.
  • If you're a developer you've probably faced issues with end-users upgrading their OS, browser, or other software, compelling you to respond with a compatible update.

So you need to make a decision about this and all such software that you use in life. If you are going to rely on FOSS for your daily business, how long can you wait for that software to be updated? The rule of thumb here is that if you come to rely on this software, you must only update your ToDoList software in sync with whichever version this library supports. You need to get out of the habit of just installing the very latest TDL point-release.

If you can't wait (hours or days), consider that this is one of the reasons why both Dan and I make all of this software available to you, completely Free (for no monetary cost and you are free as in Liberty to modify the code yourself) and Open Source. I wrote this in C# rather than C++ like TDL in part because it's extremely easy to find developers to modify this code if you don't want to wait (hours or days). And if you do modify the code (or you get someone to do it), please consider passing your mods back to this project for everyone else. Of course it will take time to incorporate contributions into the library but this is where the collaboration features of CodePlex help - you can download someone else's mods if you don't want to wait for an official update. Will they work? We don't know. So once again you have choices before you.

Summary

When I started a project to provide software based on someone else's software I knew I was going to subject myself to pleas for "we need to keep up with the core!". As you see, I'm going to try my best to make that happen and Dan is being very supportive as well. But it takes Our uncompensated time to provide You with Free software, so we can't do it on a time table. As more developers join this project we should be able to get releases out faster. This is one of the cornerstones of FOSS, though as we see with ToDoList itself, sometimes the only developer is the one who started the project. Is that unacceptable? That's your call.

At some point I might put up ads or offer development services for this package to give it priority over other projects. But in the meantime let's see how this all works without going to that next step.

Please feel free to post comments about this in the Discussion area. Thanks.

Last edited Feb 16, 2014 at 11:24 PM by TonyGravagno, version 2