osCommerce and PHP 5.3
To follow up on my previous articles about osCommerce and the BSD Licence and osCommerce and the CLA this article aims to explain some of the reasons behind why osCommerce 3.x has a minimum requirement of PHP 5.3
I had been pondering PHP 5.3 for quite some time towards the end of 2009 and into 2010, and had some discussions with various open source developers during the Jump in Camp about what their plans were for PHP 5.3. We had also been discussing it internally as if we were going to adopt PHP 5.3 then it was best to take full advantage of the new namespace support to ensure the core framework was a clean as possible.
In May 2010 I released a blog post titled PHP 5.3 and the Future to try and gauge wider community feedback on the issue.
This kicked off a number of discussions in the background about where PHP was heading and how we could best make osCommerce 3.x as flexible as possible to ensure that we wouldn't need to rebuild from the ground up in a few years. From talking with many people from other open source projects who were also all heading towards the PHP 5.3 minimum requirement it seemed like a no-brainer. Once we'd had chance to experiment with the namespace implementation and could see just how much better our framework would be, developing it for PHP 5.2 seemed to be a very costly mistake.
We didn't just jump into this blindly however, we fully understood what this meant in terms of osCommerce 3.x adoption and even last year there were fewer hosting companies offering PHP 5.3 support than there are now. The outcome from all of that was that we decided to jump to PHP 5.3 as the benefits far outweighed the negatives.
One of the concerns that many people from the community have expressed is the lack of support from hosting companies for PHP 5.3, I personally don't think that its a problem when you take the bigger picture into account.
As late as December last year it was announced that PHP 5.2 had reached End of Life, I had been expecting this to happen at some point so it didn't come as a huge surprise. What this means is that PHP 5.2 would no longer be receiving bug fixes (PHP 5.2.17 aside) or security updates. This would then leave hosting companies with a choice, if they would like to maintain the ability to offer PCI compliant hosting then they would need to move to a version of PHP which was supported and updated. This all pointed to the likelihood that adoption of PHP 5.3 for hosting companies would gain traction at an increasingly rapid pace, of course this wasn't guaranteed so there was an element of risk involved.
It should also be fairly obvious that the landscape of the hosting industry has changed, back in 2001 pretty much everyone was using shared hosting packages as these were really the only ones that were affordable to the average user. The hosting companies were in full control and moving to a different hosting company was incredibly painful experience.
These days however the situation is radically different, Cloud / VPS hosting solutions are now widely available and at a price point that makes them affordable even for the newest of start up online stores. Both of which are able to support PHP 5.3 without affecting any other user. It is now also much easier for hosting companies to offer multiple versions of PHP on the same server, something which also wasn't as easy (if not almost impossible) back in 2001.
The end result is the user now has a lot of choice on where to host their sites and moving between hosts is now incredibly simple (compared to 2001). In my personal opinion any hosting company that won't offer PHP 5.3 will simply get left behind. Users can now vote with their feet and move to a company that offers them the solution they need which has reversed who is really in the driving seat when it comes to adoption.
The reverse option would of been to hold back the whole community just so that we could support users who were using hosting companies that would end up in the minority, I personally think this is a very short-sighted view when you are trying to build a framework that will still hopefully be in use in another 11 years.
Now that the core framework is out there and is being actively worked on, I think deciding to use PHP 5.3 as the minimum requirement was one of the best decisions we ever made.
osCommerce and the CLA
To follow-up to my previous posting about osCommerce and the BSD Licence I will now try and answer some of the misconceptions around the new CLA (Contributor License Agreement) which was added as part of the osCommerce 3.x release. I will also aim to make this into an official FAQ document when time allows.
The reason we have decided to include the need to sign a CLA before contributions can be accepted into the osCommerce core is to ensure that the entire community can understand the terms under which the code has been contributed to the project. Signing the CLA does not change your rights to use your own Contributions for any other purpose and only applies to contributions which you want to be considered for inclusion into the "Core" framework. The CLA does not apply to community addons which are available from the addons site.
The CLA is here to protect the rights of the community to ensure that any code which is included as part of the core framework is removed from licensing and patent restrictions.
Q. Do I need to agree to the CLA to create community addons for osCommerce 3.x?
A. No. Only contributions which you would like to be considered for the "core" framework require the CLA to be agreed to.
Q. If my contribution is accepted in the "core" framework for osCommerce 3.x what does that mean?
A. By agreeing to the CLA you are providing osCommerce a non-exclusive, irrevocable, worldwide, royalty-free, sublicenseable, transferable license.
Q. What does this license allow?
A. You agree to let osCommerce use, copy, prepare derivative works of, distribute and publicly perform and display on any licensing terms your contribution to the "core" framework, including without limitation be distributed under open source licenses such the the GNU General Public License / BSD License and also be included in binary only / commercial projects.
Q. Can I still use any contribution I make to the osCommerce "core" framework for other projects?
A. Yes. Agreeing to the CLA and allowing your code to be considered for inclusion into the "core" framework in no way affects your rights to use your code in any way you like.
In summary, the CLA is there to help make clear that any contributions included into the "core" framework are without restriction and that anyone contributing code has the right to do so, free of any restriction such as intellectual property or patent and that they have the legal right to agree to the terms of the CLA.
I am sure that we can encourage developers to contribute to the framework and by doing so, they can help us make it as stable and as flexible as possible. Now is the time for community to embrace open source and get involved.
osCommerce and the BSD Licence
There have been a number of comments made about the license change of osCommerce 3.x to the BSD. This post aims to dispel some of the confusion around the change and will hopefully be the primer for a proper FAQ on www.oscommerce.com when I have some time. If there are any questions you have that you would like answered post them here as comments and I will make sure to include them in the official FAQ.
Q. Is the BSD License used compatible with the GNU General Public License?
A. Yes. osCommerce 3.x is using the 3-clause BSD license which is fully compatible with the GNU General Public License
Q. What versions of osCommerce does the BSD License apply to?
A. The BSD License is for osCommerce 3.x
Q. Will osCommerce 2.x still be released under the GNU General Public License?
A. Yes, the license for osCommerce 2.x has not changed
Q. What licence are addons for osCommerce 3.x released under?
A. Developers now have the choice to release their Add-Ons under a BSD compatible license or to continue using the GNU General Public License.
Q. Why change the license?
A. The GNU General Public License has served us well for 11 years however we want to create even more business possibilities and opportunities for store owners, developers, and our community. Changing the licence helps make that possible.
Q. Where can I find out more information about the different licenses?
A. There is an interesting article / video from Redhat which is worth watching http://www.redhat.com/magazine/006apr05/features/licenses/. You can also check out Wikipedia
Q. Can I use osCommerce 3.x addons released under the GNU General Public License in a binary only/commercial closed source project?
A. No. The change to using the BSD licence for the core of osCommerce doesn't remove the viral part of the GNU General Public License. If you use GNU General Public Licensed code in your project the source code must be provided to comply with the licence. If you want to release a project as binary only then you will not be able to use any addons that are licenced under the GNU General Public License
Q. Can developers release osCommerce 3.x under the GNU General Public License?
A. No. Only osCommerce has the right to change the licensing of the core framework
Q. Can developers include BSD licensed community addons in projects released under the GNU General Public License?
A. Yes. However including BSD code in a GNU General Public License project doesn't change the licence of the code. It is still released under the BSD license.
Jump In Camp – SQL Server Edition – Day 1
Its taken me a bit longer than I really wanted to get around to blogging about the awesome Jump in Camp which I attended recently but here is the first of a few blog posts!
The Jump in Camp was organised by Microsoft and ran from November 15th-19th 2010. It was to be held in Redmond (Seattle) which as most people know is where the head office of Microsoft is situated.
Day 1 started off at a very early time for me at 6am when my alarm clock went off and I stumbled downstairs to make myself some coffee. Once alertness had been restored it was time to check I had all the important things that I would need to take with me to Seattle. Passport, Money and Macbook Pro were all present and accounted for, so off I headed on my trek across London to get to London Heathrow Airport where I was due to meet up with Harald before our 9hrs 50 min flight.
After going through the usual security and checkin procedures it was time to relax and wait for Harald to arrive on his flight from Germany. It all seemed so simple until mother nature intervened and Harald's flight was delayed due to fog at Heathrow earlier in the day. For a while it looked like he might just make it but it wasn't meant to be so flight BA49 left LHR on its 7,726 km without him.
The flight itself was long and fairly uneventful apart from the person sitting on the other side of the Aisle asking me how to fix various problems with his own Macbook, it seems even faking being asleep didn't slow down the barrage of question like "What is a Megabyte" and "How to I make the screen brighter". Eventually he ran out of questions so I was left alone to peruse the online entertainment and pray for the flight to land already.
Finally it was all over and the plane set itself down a Sea-Tac airport and we were allowed to dis-embark and head towards passport control which I was expecting to be a stressful experience. In the end it went fairly smoothly and after giving up my finger prints and a photo I was granted access to the US of A.
The next challenge was to find the Shuttle to the hotel, after spending some time going round in circles I bumped into Sam de Freyssinet and it seems with our combined brain power and some asking for directions we finally found the shuttle along with the rest of the group (Kevin Marvin, Jason Coward and Nate Abele) who would be travelling to the hotel with us.
Upon arrival at Willows Lodge I was pretty impressed (The real thing was better than the photo's) I would have to say its possibly the nicest hotel I have ever stayed in! Once I'd dropped off my bags it was time to catchup with some friends I'd made at the previous Jump in Camp Juozas, Josh Holmes and Ashay Chaudhary
By now I had been awake for more hours than I could manage to count at the time so there was only one thing on my mind... BEER! and it seems it was all organized for us to visit the Redhook Woodinville Brewery so off we went!
After some good food and a tour of the brewery (I didn't spray everyone with beer this time round) it was time for sleep and to try and adjust to the timezone difference which wasn't working in my favor!
It seems Microsoft didn't listen to my feedback on the previous camp and had booked breakfast from 7.30 - 8.30am, I had no idea how I was going to make it up that early.
Details of Day 2 coming soon.
Jump in Camp – SQL Server Edition
Something very exciting is happening next week, myself and a bunch of other people will be descending on Seattle for the latest Microsoft Jump in Camp.
Following on from the camp I attended in Zurich (Here is what happened) the next camp focuses primarily on MSSQL Server and how it can be leveraged by applications such as osCommerce to give our end users a wider choice of platforms on which they can run osCommerce.
Historically osCommerce has only supported MySQL and Apache based around *nix operating systems, this has served the project well for a number of years, but I think the time has now come to expand the range of platforms we officially support.
In the upcoming 2.3.0 release we have been working on improving support for Windows/IIS and very soon it will be even easier to install osCommerce in that environment, the next logical step is to expand support for other database back-end with a logical choice being MSSQL.
I am very much looking forward to spending time with a number of very clever people from both Microsoft and other projects from the open-source community for what I expect will be an awesome event.
For more information on what is planned for the camp take a look at the Jump in Camp Website
