PHP 5, MySQL 5 and dotProject

For quite some time we have stated that there is no official support for PHP 5 and MySQL 5 on dotProject. This position has been rather controversial and many people have been rather vociferous in their opinions (mostly negative) about this subject. I'll try and cover both the reasons and the future as I see it.

PHP 5 is starting to become available on hosted sites. It is by no means ubiquitous, but it is happening. Unfortunately there are some very big differences between PHP 4 and 5. This has meant a lot of going over and refactoring code. We are also in the situation where some of the libraries we use (jpgraph being the most obvious) have now split support into PHP 4 and PHP 5 versions. You have to pick the right one or it won't work. This is going to make it increasingly difficult to provide a unified version that will work on both platforms, and so at some point we either have to provide two versions, or we drop support for PHP 4. Given that most of our users are on hosted sites and most of those don't yet support PHP 5, the decision gets even harder.

Some developers are making plans to provide features that make use of PHP 5 in dotProject and only supply them to their own customers. Personally I see this as a dangerous precedent to set and one that has already bitten a number of projects. Not so much the PHP 5 features, but the "pay up and you get the shiny version, don't pay and you get the crappy version" mentality. This is starting to pervade open source companies as they struggle with the concepts and new business models required to actually make a living from open source. The successful companies, like Red Hat, take a somewhat opposite viewpoint, which is that if you are prepared to take on untested and cutting edge features, you get it for nothing (Fedora), but if you want support and solidly tested and secure features, you need to pay for it (RHEL). This is the model I always saw as being the best for dotProject. But hey, people need to eat.

MySQL 5 is a more interesting proposition. From what I can see it has even less penetration than PHP 5, yet previous versions are no longer under support. I'd very much like to make use of some of the newer features of MySQL 5 (and of PHP 5 for that matter), but unless the situation changes on hosting services, I don't see it happening any time soon. I guess part of the problem is the releases of operating system they are running, which up until recently packaged PHP 5, but only version 4.1 of MySQL. Upgrading an OS is a big decision to take, so it will happen, but it will take time.

So, gazing at my crystal ball I see the standard dotProject version supplying the jpgraph library separately, and allowing you to get either the 4 or 5 version, rather than bundling it. This will allow us to continue to support both 4 and 5 until the hosting situation has clarified. Looking further, I see that we will drop support for version 4 of both PHP and MySQL, and start to use the enhanced features that the new versions offer. Looking further again, I see a RedHat style subscription service for automating security updates and installing "certified" add-ons.

Mind you I am not offering timelines here, nor am I offering guarantees, after all it is a crystal ball, and may be a bit fogged.

13 comments

Comment from: Barry Steele [Visitor]
Barry Steele

We have been using dotProject for a few years, though have not been using it lately because of the lack of PHP5 support.

We are not able to advance without PHP 5 support as all of the other applications we use and provide to customers (we are a full service IT solution providor for small to medium companies) are now developed in PHP5.

The version of MySQL should be incidental but the latest veersions should be supported, IMHO.
Some of the biggest issues I saw for dotProject were in some very bad SQL statement generation (using nuances of MySQL joins for example) and programmer ‘tricks’.

To my mind the current bugs in the SQL code (and I truly consider them bugs, its just luck that they work for pre MySQL 5.0), are extremely serious. There should be absolutely no reason that one cannot move from MySQL4.X to 5.X if standard SQL is used.

In terms of the the ‘issue’ of migrating to PHP5. We have over 90,000 lines of code in our major system, all developed internally with PHP and PEAR. We moved to PHP5 and MySQL 5 with extremely little disruption and very little difficulty. I can see that the underlying graphics libraries may cause issues that we didn’t face.

We did make some decisions at the start of course that made this easier, like separating display from computation (using Smarty tempaltes), implementing a standard MVC - PEAR:HTML_QuickForm_Controller and only using ANSI-92 standard SQL.

It would seem that dotProject is to remain in the ‘past’ and not fix systemic issues in the base code, then it utility will be degraded increasingly rapidly. Personally I tihnk this is a real shame as the application has real potential.

18/01/07 @ 17:47
Comment from: [Member]
aj

One of the problems we faced was taking on someone else’s code, and someone else’s design decisions and trying to move forward in a manner that didn’t break things. Yes, with hindsight and a green fields development, we would have taken different decisions.

While I understand that some projects have had an easier time of moving forward than others, the reality is that bugs and inconsistencies in PHP have plagued us since 4.3 first came out. Changes to reference handling is one that I recall being extremely frustrating and one that again changed in 5. Very few of the problems could be traced back to bugs within our code, but we had to find workarounds for them.

As they say, your mileage may vary, but you may be comparing apples with oranges.

18/01/07 @ 17:58
Comment from: [Member]
KC

Barry - I don’t think anybody is saying anything about dotProject remaining in the past. Adam didn’t mention that we now have support for both PHP and MYSQL 5 worked into the latest bug release CVS as that was not the nature of the posting he made. We’re continuing with that as and when we can. The issue of third party modules and how they handle it directly impacts on us though and creates a level of complication over and above our own codebase.

What Adam has said is that the whole issue of backwards and forwards compatibility is not as easy as everybody seemed to just assume it was going to be (for us anyway).

Your observations of migrating your own base to PHP5 didn’t mention if you’ve having to maintain backward compatibility with earlier versions as well as forward compatibility. Certainly the wording of your post suggests otherwise. Unfortunately we don’t have that luxury and we’re stuck in the middle of people who just assume that we will leap forward with everyone else, and people who, through no fault of their own, are stuck back in older releases.

None of this is easy, straightforward or simple to resolve and it’s an ongoing nightmare as well.

As to the nature of the SQL, fortunately a lot of users have been helping out and reporting those, which are being fixed as and when they are found by us and them. There are a considerable number of these within the current bug fix CVS. If you report, then you get advice on when they are fixed via our bug reporting system.

18/01/07 @ 18:16
Comment from: Hmmm? [Visitor]  
Hmmm?

“Given that most of our users are on hosted sites and most of those don’t yet support PHP 5, the decision gets even harder.”

On what planet are they living ?
On what planet are you living ?

You can hardly found a wehbhoster WITHOUT php5 support. Not the contrary.

Many of dotprojects administrators I know planned many times to try to propose/plann php5 support with the help of of some dev users but after some time they all think this is stupid to go against the main developper(s).

It makes some of us to have a server dedicated to dotproject, with V4 oldies (mysql and php)… I use many many other great large scripts that do not have this problem.

Dotproject rocks. a lot. but the lack of php5/mysql5 support sucks. a lot.

27/01/07 @ 09:22
Comment from: [Member]
aj

This is getting ridiculous. You seem to have missed the entire point of the article. Let me put it very clearly - dotProject supports PHP 5 and MySQL 5. You need to download the stable_2 CVS version or the development tree, but it supports it. What the article was talking about was the future requirement of either solely PHP 5 support or supporting PHP4 as well. We have one issue with JpGraph, in that they are now providing split versions, and that becomes a packaging and on-going support issue.

As to dotproject admins, if you are referring to the project admins, then you must be kidding. There are only 3 project admins, one of which has been on sabbatical for the last 12 months, and the other two are my partner and me. As I am also one of the main developers, I can tell you that there is no dispute between the main developers and the admins. We all agree that PHP 5 and MySQL 5 support is required (and I repeat IS AVAILABLE), but not at the expense of getting basic bugs and functionality sorted out.

27/01/07 @ 16:08
Comment from: Travis Hein [Visitor]  
Travis Hein

I have always been of the practice of custom compiling services software from their sources, like apache, php, mysql. This removes the dependency of what ever operating system, and version of it, i happen to be using.
What I have found that works is to build things into a logical ‘prefix’, like /opt/myserver where this ‘myserver’ will perform a specific function(s).
The first few times it is hard to get all those options to the configure script just right, but the reward is a localized installation of the software and all supporting libraries, that can be quickly relocated to a new server, such as when I upgrade.
This also has the side effect of allowing me to simultaneously run multiple versions of apache, php, mysql on the same host (with different network ports of course, and then to have a parent apache instance that does the proxy redirect to the other apache instances) Ok, I am rambling now.

My point is, the modern trend seems to be people use the software (and its default versions) that come with their operating system release, simply accepting that some one else’s recommendation for what and how they should run things is best, and are forgetting that they have the freedom and choice to run a version of something out of the mainstream,
This ‘taking everything at face value’ approach is making us consumers grumpy and inquisitive to the volunteer-based open source projects, to demand support for it to support a particular version, because their os has that version.
Where as the old way of doing this would be to read the product prerequisites and construct the platform that was needed to support it.
Now granted, “these” hosting companies may only railroad you into running one version of something. So, find a better one? host it yourself?

Over here, i host my own dotProject, I didnt even have mysql installed, since i usually run in postgresql. So rather than creating a fuss that “dotProject should support postgresql", I just installed mysql (by compiling it from sources) and installed such that it was suitable for use on the web server instance where I happened to deploy it.
Or maybe I am just an old fashioned systadmin that approaches everything with an old-school level of detail that has been forgotten on modern sysadmins.

30/01/07 @ 08:53
Comment from: Hmmm? (bis) [Visitor]  
Hmmm? (bis)

no i was not talking about dotproject devs, but about people who administrate installed dotprojects over the world.

perhaps we all 4 were just plainly stupid but we all missed the fact that stable_2 CVS support php5/Mysql5 now.

We’ll try this with pleasure. By the way this news should be shouted everywhere since many people were poited out to your solution and all seems to believe that php5 support is still not there.

By the way : This is great news !

(And if the CVS2 php5 support is working, we’ll all upgrade it to this and quit our last php4 server. We did not care about oldies support… even Debian 4 has Mysql5 and php5 build-in support now ;) )

If you want backward support, this is probably great, but I think very few people will care about this today.

01/02/07 @ 09:03
Comment from: [Member]
KC

“backward support… Very few people will care about this today” might be your position, but it’s not universal.

This is the major problem that we have all the time - and what the article “The Changing Face of Open Source” is mentioning as well. Everyone has competing priorities and very few people acknowledge that dev teams are in a no win position with regard to this.

Just because you think that forward and onwards always is the way to go does not make it right. It makes it one option for us to consider.

01/02/07 @ 11:23
Comment from: Joe Zilch [Visitor]  
Joe Zilch

From the main article:
I see a RedHat style subscription service for automating security updates and installing “certified” add-ons.

What are you trying to do screw the people who made you “Famous"?

What’s going on with all these open source projects (and now dotProject) going to paid versions? This sounds like a bait-and-switch scam. Develop a very useful FREE program then make people pay for improvements. Sounds like a drug dealer to me.

I use dotProject everyday and think it is the best project management software out there. It took me a long time to convince upper management dotProject was the way to go. Now that I convinced them how much money they can save I am going to have to tell them it’s going to cost. There goes my (and your) credibility. I believe open source should remain free and open.

03/02/07 @ 11:20
Comment from: [Member]
aj

I love how people always use the ‘bait-and-switch’ card whenever the talk turns to anything that may have a dollar value attached to it. Read the post again. Note the word ‘automating’, or didn’t you see that bit? Its called value adding, and in this case it doesn’t mean that everyone won’t have access to the free product, what it means that if you want to get automated updates, a service which costs in terms of administration and infrastructure, then I don’t see why you wouldn’t want to pay for it.

Let me make this very clear. dotProject is and will always be free. All security updates will be free and freely available to all. I can’t speak for all add-on modules as I don’t control those, but certainly the ones I write will always be free and freely available. The code is under the GPL and I championed the change to that license in order to ensure the code would always be free.

As for making me or the project famous, get a grip. The code is what made it usable, the talent of the programmers, the listening to the users, the enormous amount of good will of those prepared to offer free support, and the dedication and sheer bloody hard work of the admins is what has made dotProject famous. It has attracted users because it works. And what the hell does Famous mean? it seems to mean that every Tom, Dick and Harry is free to take a cheap shot at us every time we voice an opinion that they either don’t like or fail to understand.

Give me a break!

03/02/07 @ 13:44
Comment from: Alan [Visitor]  
Alan

What do the users say about php4/mysql4 support?

As previously said, its the users and developers that steer the project, it should really be their view that defines where to go for this. maybe a poll on the dp forum.

as a user, I personally think dropping support for php4/mysql4 will be the way to go. as long as we are given a timeline of it’s phase out.
i could never expect a small team of developers to bust a gut supporting something that isn’t supported by it’s own developers. and doing so would, i imagine, be at the cost of enhancements/progress to the project.

keep up the good work.

Alan

10/02/07 @ 01:51
Comment from: paju [Visitor]  
paju

I second Alan’s comment. Just give early warning and a clear (fairly lenghty) deadline when the support for ver 4 is over and focus moves fully to ver 5. This will save your time in the long run and most likely reduces number of bugs also. End users have sufficient amount of time to prepare the update of the server (for some like us the server is just a tool that is not updated because there are updates available).

What I’d like to see is that you (the DotProject team) provide similar means to fund the development that are available in Mantis development. People/companies can sponsor (from few dollars/euros to dozens or even hundreds) features. The software remains open source and free but this gives you two important things: priorisation - basically what is needed first and some money for the development which could lead to full time development of this software. Yes, there are issues regarding this way of development too.

We have been using DotProject for few years now. It is a good tool. Beats the crap out of MS project regarding multi-user environment but there are few big obstacles to make it excellent. For us the biggest thing is the slowness of the user interface (several hundred tasks diveded into dozens sub-projects). For our sub-contractor (DotProject user) one of the big things is missing baseline (in addition to UI slowness). Both issues (AJAX for UI) will be sorted out eventually but when? For us the time is short and it is very annoying to just wait and wait for UI to show up (yes, there are means to improve the speed but not at sufficient level). This have led to situation that projects and tasks do not get updated and new ones get added more and more seldom. I’d spend some money to speed up the development of these functionalities (and yes, source remains GPLed). I don’t think I’m the only one thinking like this.

13/06/07 @ 07:24
Comment from: [Member]
KC

I think we’ve been around the support for versions of PHP maypole already so I won’t bother restating our current position.

In terms of sponsorship - there have been calls for participatory sponsorship on the forums in the past and they have been met with no / limited offers of financial assistance so we’re not planning on implementing anything over and above the current Marketplace where people can post projects and have dev team members quote on and perform the work. As we say on http://docs.dotproject.net/index.php/DotProject_Marketplace - you can use the Marketplace to sponsor your own requirements or elements from the development roadmap.

13/06/07 @ 10:20


Form is loading...