The Zend Framework team uses the following tools to support our effort:
- Subversion (SVN)
- JIRA (bug and issue tracking, project management)
- Confluence (wiki integrated with JIRA)
- Fisheye (SVN changeset browser, search and statistic tool)
- Crucible (online peer code-review tool)
They are either open-source or provided by companies that openly and freely promote open-source projects. We also run a variety of back-end systems such as Zend Platform, Apache, MySQL, ApacheDS and Apache Tomcat. During development we use PhpUnit for our unit testing effort.
When we were looking at how the Zend Framework project was progressing, we found that we needed better project tracking, more features to meet our requirements and complexity, and systems that worked very well together, yet were each top of their class.
We decided upon these guiding goals:
- The toolset must make us more efficient
- We want the best toolset to get us to Zend Framework 1.0 and beyond
- We are not going to hack the toolset and write code for it
- The issues of CLA management, tracking and use must be workable in each and every tool
- No religion (OS, language, or other) should get in the way of meeting our requirements
Then we did a scan of systems, tried many out, and went with this toolset. Pieces of it are seen all over the open-source world, and we are integrating it all as well or better than most.
See our guiding goals above.
This isn't about the language, it is about the toolset supporting our project so that we can achieve our goals. Even if something is written in PHP, the best web development language in the known universe, that doesn't mean the product written in PHP meets our requirements. And where would we draw the line if we over-wrote our requirements? Apache isn't written in PHP, neither is MySQL. So we cut this line of thinking out of the equation and found the tools for our needs.
We are building a framework for PHP as an open-source group and must focus on that goal. Others can focus on writing the best Wiki, the best issue tracker, and the best revision control system.