Sunday, November 30. 2008phpUnderControl 0.4.7 released
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, projects
at
13:31
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: continuous integration, cruisecontrol, phpundercontrol, release announcement
Sunday, November 23. 2008phpUnderControl 0.4.6 released
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
21:14
| Comments (2)
| Trackbacks (0)
Friday, November 21. 2008Arrived at home :-)
Yesterday the ElePHPant pride arrived and now the kingpin has ten brothers and sisters Saturday, September 20. 2008Documentation error for "merge-phpunit"
There was a documentation error in the previously presented ant build file for the new
Beside this documentation error, there was a bug in version 0.4.3 related to the same topic, which is fixed now. So please make sure you have the latest version (at least 0.4.4) installed.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
10:51
| Comments (0)
| Trackbacks (0)
Wednesday, September 10. 2008phpUnderControl 0.4.4 bugfix releaseI recently released a bugfix version of phpUnderControl. Beside some minor view errors like the odd/even rows problem, the 0.4.4 release of phpUnderControl fixes a bug in the new merged phpunit logs feature, which doesn't cause CruiseControl to fail for such builds.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, projects
at
21:10
| Comment (1)
| Trackback (1)
Defined tags for this entry: continuous integration, cruisecontrol, php5, phpundercontrol, phpunit, release announcement
Sunday, September 7. 2008phpUnderControl 0.4.3 releasedI currently released a new version of phpUnderControl. Beside some minor fixes this release comes with a new feature to aggregate test results of multiple PHPUnit runs.
Use the new cli command
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
19:11
| Comment (1)
| Trackback (1)
Defined tags for this entry: continuous integration, cruisecontrol, phpundercontrol, phpunit, release announcement
Wednesday, August 20. 2008Things go onEven if there is not much noise around phpUnderControl and PHP_Depend at the moment, the development of both projects still goes on. Due to the fact that there are some personal movements in these days I have modified my priorities and everything evolves slower, but I plan to spend more time on these projects, at least from the last quarter of this year. To put your minds on rest, the next release of phpUnderControl is nearly finished, so stay tuned. Greetings Manuel
Posted by Manuel Pichler
in php, php_depend, phpugdo, phpundercontrol, projects
at
21:26
| Comment (1)
| Trackbacks (0)
Tuesday, August 12. 2008Now I am a dadDear google, msn, yahoo, etc. please forget this photo in N years when my daughter will use the internet... The proud dad. Sunday, July 27. 2008PHP_Depend-0.8.0 releasedToday I released the stable 0.8.0 version of PHP_Depend.
The previous list was taken from the PHP_Depend issue tracker. Feel free to report issues, bugs or just leave a comment here.
Posted by Manuel Pichler
in php, php_depend, phpugdo, planet-php, projects
at
16:02
| Comments (6)
| Trackbacks (0)
Everything looks fine, but it failsYesterday kore asked me about a strange behavior of phpUnderControl. The last arbit build done by phpUnderControl has failed, but when we looked over the different result pages everything looks fine. Strange! What has happened? After an analysis session of the 6MB XML log file I detected the following self explaining entry. The PHPUnit tests for arbit had completely failed. <?xml version="1.0" encoding="UTF-8"?> <cruisecontrol> ... <build error=".../arbit/build.xml:20: exec returned: 255" time="12 minutes 56 seconds"> ... <target name="phpunit" time="1 second"> <task location=".../arbit/build.xml:20: " name="exec" time="1 second"> <message priority="debug"><![CDATA[Current OS is Linux]]></message> <message priority="debug"><![CDATA[Executing 'phpunit' with arguments: '--log-xml' 'build/logs/phpunit.xml' '--log-pmd' 'build/logs/phpunit.pmd.xml' '--log-metrics' 'build/logs/phpunit.metrics.xml' '--coverage-xml' 'build/logs/phpunit.coverage.xml' '--coverage-html' 'build/coverage' 'arbitTestSuite' 'source/tests/suite.php' The ' characters around the executable and arguments are not part of the command.]]></message> <message priority="info"><![CDATA[Fatal error: main(): Failed opening required 'modules_tracker_suite.php' (include_path='.../arbit/source/src/:.../arbit/source/src/libraries/:.:.../php-5.3-cvs/lib/php') in .../arbit/source/tests/suite.php on line 0]]></message> <message priority="info"><![CDATA[Call Stack:]]></message> <message priority="info"><![CDATA[0.0005 318436 1. {main}() .../php-5.3-cvs/bin/phpunit:0]]></message> <message priority="info"><![CDATA[0.2345 542264 2. require('.../php-5.3-cvs/lib/php/PHPUnit/TextUI/Command.php') .../php-5.3-cvs/bin/phpunit:44]]></message> <message priority="info"><![CDATA[1.0595 5278380 3. PHPUnit_TextUI_Command::main() .../php-5.3-cvs/lib/php/PHPUnit/TextUI/Command.php:528]]></message> <message priority="info"><![CDATA[1.0616 5294940 4. PHPUnit_Runner_BaseTestRunner->getTest() .../php-5.3-cvs/lib/php/PHPUnit/TextUI/Command.php:90]]></message> <message priority="info"><![CDATA[1.0617 5295224 5. PHPUnit_Runner_BaseTestRunner->loadSuiteClass() .../php-5.3-cvs/lib/php/PHPUnit/Runner/BaseTestRunner.php:200]]></message> <message priority="info"><![CDATA[1.0617 5295508 6. PHPUnit_Runner_StandardTestSuiteLoader->load() .../php-5.3-cvs/lib/php/PHPUnit/Runner/BaseTestRunner.php:269]]></message> <message priority="info"><![CDATA[1.0828 5295792 7. PHPUnit_Util_Fileloader::checkAndLoad() .../php-5.3-cvs/lib/php/PHPUnit/Runner/StandardTestSuiteLoader.php:97]]></message> <message priority="info"><![CDATA[1.1736 5296168 8. PHPUnit_Util_Fileloader::load() .../php-5.3-cvs/lib/php/PHPUnit/Util/Fileloader.php:105]]></message> <message priority="info"><![CDATA[1.1746 5328364 9. include_once('.../arbit/source/tests/suite.php') .../php-5.3-cvs/lib/php/PHPUnit/Util/Fileloader.php:120]]></message> </task> </target> </build> ... </cruisecontrol> Ok, the test run failed, but why did phpUnderControl say: All Tests passed?
The answer is really simple. Due to the fact that phpunit died, it didn't generate any log file and previous log files still reside in
At this moment I realized that I have never mentioned a clean-target for the ant
You should add an additional target to your ant <?xml version="1.0" encoding="UTF-8"?> <project name="phpundercontrol.org" default="build" basedir="."> ... <target name="clean"> <!-- Remove old log files --> <delete> <fileset dir="${basedir}/build/logs" includes="**.*" /> </delete> <!-- Remove old api documentation --> <delete> <fileset dir="${basedir}/build/api" includes="**.*" /> </delete> <!-- Remove old coverage report --> <delete> <fileset dir="${basedir}/build/coverage" includes="**.*" /> </delete> </target> <target name="build" depends="clean,checkout,php-documentor,php-codesniffer,phpunit" /> ... </project> That's it. Now you will get the expected(not really) result: No Tests Run - This project doesn't have any tests.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, projects
at
15:14
| Comments (0)
| Trackback (1)
Defined tags for this entry: ant, arbit, continuous integration, cruisecontrol, phpundercontrol, phpunit
Monday, July 21. 2008New PHP_Depend release 0.8.0beta4This should be the final beta release for PHP_Depend 0.8.0. Beside some minor bugfixes, it contains a last API change for the log sub component. This change removes constraints to the ctor signature of a logger implementation, which is now part of a separate interface. The following list shows all changes in this version. A detailed description of all issues can be found in the PHP_Depend issue tracker!
As always you can use PHP_Depend's pear channel or its svn repository, to check out this new version. And feel free to discuss and follow the PHP_Depend development on its dedicated mailing list.
Posted by Manuel Pichler
in php, php_depend, phpugdo, phpundercontrol, projects
at
20:47
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: design quality, php, php_depend, quality assurance, release announcement, software metrics
Wednesday, June 25. 2008Using the Overview PyramidThe Overview Pyramid is used to visualize a complete software system in a really compact manner. Therefor it collects a set of metrics from the categories Inheritance, Coupling and Size & Complexity, and puts them into relation. The following figure shows the base structure of the Overview Pyramid[ML06]. Metrics used by the Overview PyramidThe following three lists contain all the metrics, which the Overview Pyramid uses. Size and ComplexityThe category Size & Complexity contributes the greatest and mostly used set of software metrics.
CouplingThis group of metrics informs about the coupling between different program parts in the analyzed application.
InheritanceBoth metrics in this group deal with the use of Inheritance and give a general overview of the use of Inheritance within the analyzed system.
Structure of the Overview PyramidNow that we know all metrics used for the Overview Pyramid, it is time to replace the placeholders with the measured informations. The figure below shows the filled Overview Pyramid. In a second step, the previously independent metrics are set into relation. Therefor we calculate the average values of individual value pairs, these computed values provide us with new informations about the distributions within the application. The following example figure of the Overview Pyramid contains a computed value for the measured LOC and NOM metric which shows us, that in the average each operation has 25 lines of code. This value can be described as very high, especially when you consider that most systems contain a variety of simple operation, like Getter and Setter, in addition to the main application logic. To take reasonable conclusions from the computed values one important part is still missing, an adequate set of reference values. Without reference values, that say what values are low, average or high, it is not possible to classify these results. The current version of PHP_Depend supports a single set of reference values, this set was taken from [ML96]. Reference values
With these reference values PHP_Depend can classify the computed results. PHP_Depend uses this information for the generation of colored backgrounds, so that the color already supports the categorization. The benefit of the Overview PyramidOf course, the final question is, which advantages offers the Overview Pyramid? The Overview Pyramid provides a simple and size indipendent way to get a first impression of a software system, and this without an expensive source code analysis. Thus the Overview Pyramid is an effective tool for a first cost estimate for an unknown system. With the help of this tool and know-how, an experienced developer will quickly get a first impression and will know what can be expected from the analyzed application. And this knowledge could be a good help during the planning phase of a new project. Bibliography
Posted by Manuel Pichler
in php, php_depend, phpugdo, projects
at
18:36
| Comments (8)
| Trackbacks (0)
Defined tags for this entry: overview pyramid, php_depend, quality assurance, software design, software metrics
Sunday, June 22. 2008Follow the development process of PHP_DependIf you like commit mails as I do, you can subscribe to the commit mailing list. Simply send an email to commits-join@pdepend.org or register thru the online interface. If you have any PHP_Depend related questions, tips or suggestions, subscribe to the PHP_Depend user mailing list by mail users-join@pdepend.org or use the online interface. Enjoy PHP_Depend! Manuel
Posted by Manuel Pichler
in php, php_depend, phpugdo, projects
at
22:48
| Comments (0)
| Trackback (1)
Saturday, June 21. 2008What you should know about PHP_DependHere a short follow up for the PHP_Depend release announcement, with hints on using PHP_Depend.
First I must explain that PHP_Depend is working package oriented. This means it heavily relies on
With default settings PHP_Depend suppresses the +global Package, because it expects that this package contains classes from external libraries, like Zend Framework or eZComponents. If you use PHP_Depend for a project with less or no The second important hint is related to exported charts and images. If your operation system, image viewer or browser supports SVG, you should use this format. The reason for this decision is really simple, SVG provides tooltips and so you get most informations from the generated graphics. For the Overview-Pyramid this means, that you get a tooltip for the used acronyms. ![]() PHP_Depend Overview-Pyramid with acronym tooltip And within the JDepend-chart you get the package name as tooltip. ![]() PHP_Depend JDepend-Chart with package tooltip
I hope this short introduction helps you while you are trying out PHP_Depend. If you are already using the metrics feature of PHPUnit, you should try out the new
Posted by Manuel Pichler
in php, php_depend, phpugdo, projects
at
23:35
| Comment (1)
| Trackbacks (0)
Wednesday, June 18. 2008PHP_Depend-0.8.0beta1 releasedThis new release of PHP_Depend took some time to be finished. This is because the initial idea of a simple adaption of JDepend evolved (supported thru this blog-post by Sebastian), and so PHP_Depend has become a complete software metric application. Many new features and enhancements have found their way into this version. One of the key features is the pluggable architecture for custom Loggers and Metric-Analyzers. This opens the possibility to hook own Logger- and Analyzer-implementations into the execution chain of PHP_Depend. Beside these architectural changes this PHP_Depend version is shipped with a large set of implemented software metrics. ClassLevel (Class)
CodeRank (Class, Package)An adaption of google's PageRank algorithm for classes and packages.
Coupling (Project)
Cyclomatic Complexity (Project, Method, Function)
Dependency (Package)For details see the following entry.
Hierarchy (Project)
Inheritance (Project)
NodeCount (Project, Package, Class, Interface)
NodeLOC (Project, Package, Class, Interface, Method, Function)
Due to the fact that PHP is a loosely typed programming language, PHP_Depend can only approximate some values. But the measured results can be improved with a good and complete source code documentation, because PHP_Depend takes advantage of different doc comment annotations ( Beside all these metrics, PHP_Depend also provides a new chart type, the "Overview Pyramid". The Overview Pyramid can be a handy tool to analyze legacy code. If you have read the book Object-Oriented Metrics in Practice you should know howto interpret the Overview Pyramid, all others have to wait for a detailed description. ![]() PHP_Depend Overview Pyramid for PHP_Depend This new version can be installed with the PEAR-Installer. Just discover the pear.xplib.de channel and install the latest PHP_Depend release. After PHP_Depend has been installed successfully, the new command line tool pdepend should exist.
mapi@arwen ~ $ pear channel-discover pear.xplib.de
mapi@arwen ~ $ pear install xplib/PHP_Depend-beta
mapi@arwen ~ $ pdepend --help
PHP_Depend 0.8.0beta1 by Manuel Pichler
Usage: pdepend [options] [logger] <dir[,dir[,...]]>
--jdepend-chart=<file> Generates a diagram of the analyzed packages.
--jdepend-xml=<file> Generates the package dependency log.
--overview-pyramid=<file> Generates a chart with an Overview Pyramid for the
analyzed project.
--summary-xml=<file> Generates a xml log with all metrics.
--coderank-mode=<*[,...]> Used CodeRank strategies. Comma separated list of
'inheritance'(default), 'property' and 'method'.
--suffix=<ext[,...]> List of valid PHP file extensions.
--ignore=<dir[,...]> List of exclude directories.
--exclude=<pkg[,...]> List of exclude packages.
--without-annotations Do not parse doc comment annotations.
--help Print this help text.
--version Print the current PHP_Depend version.
There is also a Subversion repository at http://svn.pdepend.org/, where the latest development version can be found. Please test this beta release and file bug-reports and feature-requests in the PHP_Depend bug tracker.
Posted by Manuel Pichler
in php, php_depend, phpugdo, planet-php, projects
at
16:39
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: php, php_depend, quality assurance, release announcement, software architecture, software metrics
« previous page
(Page 4 of 6, totaling 81 entries)
» next page
|
ProjectsFurther stuffCategories |




