As most of you probably know, there was a major dotProject release at the beginning of April. It was the release in approximately 14 months and fixed a huge number of significant issues including security, Gantt chart issues, and a few other important fixes. Since this time, I have done a number of dotProject upgrades for different organizations. Some of these have been done remotely, but the bulk have been performed onsite.
The one question that keeps coming up with all these upgrades is “Will my custom module X still work?”
Obviously without digging into the code, their SQL queries, and the various arcana of what the code does, I can't give them a solid answer. Instead I ask them three questions:
First, does the module execute directly against the database tables or does it exist within the module system? Obviously, either way can be highly dependent on the database schema, but being based within the module system requires additional interaction with the permissions system. On one client's site, they had an extensive reporting module which tracked detailed information on a number of projects. It was quite impressive and connected directly to the backend, so there have been minimal adjustments needed.
Next, which tables does the module interact with? If the module simply provides Task Tracking, Project Reporting, or similar added functionality, there should be minimal problems with dotProject v2.0 as the tables have changed very little. If the module does detailed dependency tracking, Critical Path Management, or PERT charting, it's likely to be a whole other story. There are now automated functions that happen when a Project Manager turns on “Track Dependencies” in task creation and could throw off the start/end dates for tasks if care attention is not applied. If the module interacts with permissions within the system – for example, a bulk user loader – this will not work at all.
Finally, does the module use parameters previously stored in config.php? If you've looked into the v2.0 config.php, you'll notice that it doesn't have to 20+ parameters it previously had. These have all been moved to the database for improved programatic access. The variables are interacted with in the same manner, but this move has thrown a few people off when their tools don't work as expected.
So here's the standing offer from CaseySoftware: If you are a user of dotProject and would like to upgrade to dotProject v2.0 but are concerned about your customizations, modules, extensions, let us help you. CaseySoftware will provide a first-pass analysis of your customizations, modules, extensions free of charge. This does NOT mean that we will update them for v2.0, but you will have a preliminary estimate on what effort this would take. Please contact us at info [at] CaseySoftware.com
Our goal at CaseySoftware is to grow the dotProject community. This is why we've been working to get the word out and provide support services throughout the community.