Planning for 1.8 and Future Platform Requirements
With version 1.7 "almost" out the door, the CiviCRM planning team spent most of this week's team meeting evaluating potential "big ticket" items for 1.8 and discussing future platform requirements for CiviCRM.
The platform issues are:
- When do we drop support for PHP 4.x?
- When do we drop support for MySQL 4.1
There are compelling technical and management arguments for requiring PHP 5.x and MySQL 5. On the management side, we estimate that it costs the project approximately 4-6 person-weeks of extra time to code, test and debug the PHP 4 version. As the codebase grows - this cost of supporting two very different programming models grows. These are resources that we'd prefer to use improving the overall functionality, usability and quality of the software.
On the technical side, PHP 5 has performance and security improvements , along with more advanced programming features which we'd like to take advantage of. At the recent OSCMS conference, Rasmus Lerdorf ("father of PHP") was pleading with folks to drop support for PHP 4.
MySQL 5 added support for key database features which can potentially help with scaling and simplifying the query engine. These include Stored Procedures, Views, and Triggers. If you're interested, the MySQL site has a useful overview of 5.0 improvements.
Our big concern is giving folks enough time to respond to this change, and make sure their host / servers are up to speed. After some spirited discussion, we decided on the following course of action:
- Version 1.8 will be the last release to support PHP 4 and MySQL 4.1
- 1.8 will include the enhanced duplicate detection and merging functionality that is critical to many of our users.
- We will limit the number of other changes in 1.8 in order to deliver it in a 6-8 week cycle - target release date is June 1. We'll be announcing an updated 1.8 roadmap shortly.
- We will continue to support 1.8 with critical bug fixes and security updates through the end of 2007.
- The release after 1.8 will be designated 2.0 in recognition of the platform requirements changes.
The consensus on the team is that this is a decent game-plan which we hope will benefit the project and the community as we move forward.