Entries tagged as phpundercontrolRelated tags ant arbit bug fix continuous integration cruisecontrol git github lint php phpmd phpunit release announcement sebastian marek cyclomatic complexity ipc karlsruhe kore software metrics talks cli npath complexity php5 php_depend pmd static code analysis tokenizer changes company consulting quality support training quality assurance usability apache software foundation ezcomponents qafoo toby zeta components checkstyle css customization dashboard java server pages layout phpdoc php_codesniffer testing tutorial torii portal annotations rule set elger mayflower php_codebrowser thorsten book phpugdo conference crazy design quality dortmund elephpant ext/filter fabien potencier fun hamburg logger phpbbq phpt phpug pirum software architecture software design static_reflection thinkpad tools unconference unit test xml xpath zce zend certified engineer optimization performance cbo class interface size coupling between objects dbus derick overview pyramid article cologne php-magazin customerThursday, June 10. 2010phpUnderControl 0.6.0beta2 releasedToday I have released the second beta version of phpUnderControl. Beside several minor tweaks and bug fixes, this release contains one additional feature I was asked for during the IPC in Berlin. This feature allows you to specify a maximum number of log entries that will be shown in the generated metric charts. This can be very useful once you have a project with a great amount of builds and the chart rendering gets slower and slower.
This feature adds a new option
mapi@arwen ~ $ phpuc --force-update --max-number 42 \
/opt/cruisecontrol/logs/phpUnderControl \
/opt/cruisecontrol/logs/phpUnderControl
You can get the latest release of phpUnderControl through its pear channel: mapi@arwen ~ $ pear upgrade --alldeps phpuc/phpUnderControl-0.6.0beta2 Starting to download phpUnderControl-0.6.0beta2.tgz (546,314 bytes) ................................................................... .............................done: 546,314 bytes or you can get the latest development version on github.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
12:25
| Comments (3)
| Trackbacks (0)
Defined tags for this entry: continuous integration, cruisecontrol, phpundercontrol, release announcement
Thursday, April 29. 2010Goodbye CologneAs many of you may already have noticed, there will be a big change in my career as a professional software engineer and architect this summer. Together with Kore and Toby I am in the process of founding a company. The focus of this company will be on services all around the whole quality life cycle in PHP projects. Under the hood of our company we will also offer support, trainings and consulting for several quality assurance tools, like pdepend, phpmd and phpUnderControl. For you, this opens a great opportunity. You can use the tools and the documentation, as well as participate in the community, as usual. But from now on you can also purchase professional support, if you get stuck or need general assitance. And when you miss a feature or need an individual extension for one of these tools, don't hesitate to contact us. I am really excited what cool things will happen in the next couple of years and I am looking forward to cowork with professionals like Toby and Kore. To finalize the little marketing for the company and its services
Posted by Manuel Pichler
in php, php_depend, phpmd, phpugdo, phpundercontrol, planet-php
at
13:20
| Comments (3)
| Trackbacks (0)
Defined tags for this entry: changes, company, consulting, php, phpmd, phpundercontrol, php_depend, quality, support, training
Sunday, January 31. 2010phpUnderControl 0.5.1 releasedToday I have released phpUnderControl version 0.5.1. It's a bug fix release that closes several issues open since a long time. First of all I would like to thank Sebastian Marek who was the main contributor to this releases, so a big thankyou to you.
Beside the new release some more things have changed. From now on the phpUnderControl development is hosted on github. This means that from now on the latest version of phpUnderControl can be obtained with the following command:
mapi@arwen ~ $ git clone \
git://github.com/manuelpichler/phpUnderControl.git
Additionally we have moved the phpUnderControl's PEAR Channel Server from pear.phpunit.de to its own server pear.phpundercontrol.org. At this point I would like to thank Sebastian for providing phpUnderControl's infrastructure under the PHPUnit umbrella for the last three years. mapi@arwen ~ $ pear uninstall phpunit/phpUnderControl mapi@arwen ~ $ pear channel-discover pear.phpundercontrol.org mapi@arwen ~ $ pear install --alldeps phpuc/phpUnderControl-beta Starting to download phpUnderControl-0.5.1.tgz (539,717 bytes) ..........................................done: 539,717 bytes install ok: channel://pear.phpundercontrol.org/phpUnderControl-0.5.1
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
21:16
| Comments (0)
| Trackbacks (0)
Defined tags for this entry: ant, bug fix, continuous integration, phpundercontrol, release announcement, sebastian marek
Sunday, December 6. 2009phpUnderControl 0.5.0 releasedAfter quite some time of silence around phpUnderControl I have bundled the 0.5.0 release today. Beside minor changes, bugfixes and enhancements this release contains one new major feature, the PHP_CodeBrowser. The PHP_CodeBrowser is a separate application that collects various XML log files with different project metrics/violations and presents them in a browseable source view with syntax highligting. This tool is a contribution by the Mayflower GmbH, where it was developed and now shared with the Open Source Community. At this point I would like to thank Mayflower as a whole and in particular at Elger and Thorsten, which were responsible for all technical aspects of this contribution. To use the PHP_CodeBrowser you must add an additional execute publisher to your CruiseControl config.xml file that generates the PHP_CodeBrowser html report and an additional artifacts publisher to move the generated PHP_CodeBrowser report into the projects artifacts directory.
<?xml version="1.0" encoding="UTF-8" ?>
<cruisecontrol>
<!-- ... -->
<project name="PHP_Depend" buildafterfailed="false">
<!-- ... -->
<publishers>
<!-- ... -->
<execute command="phpcb
--log projects/${project.name}/build/logs
--source projects/${project.name}/source/PHP
--output projects/${project.name}/build/php-code-browser"/>
<artifactspublisher
dir="projects/${project.name}/build/php-code-browser"
dest="artifacts/${project.name}"
subdirectory="php-code-browser"/>
<!-- ... -->
</publishers>
</project>
</cruisecontrol>
But why do we use a CruiseControl publishers instead of a regular ant (Your build tool here) target? The answer is really simple. The PHP_CodeBrowser must be the very last artifact generated for a project, which means it must also run after PHPUnit, to collect the test result logs. But in most setups PHPUnit is configured with
If you create a new project with phpUnderControl's
mapi@arwen ~ $ phpuc project \
--project-name PHP_Depend \
--source-dir PHP \
--test-case PHP_Depend_AllTests \
--test-dir tests \
--test-file PHP/Depend/AllTests.php \
--version-control svn \
--version-control-url http://svn.pdepend.org/branches/0.9.0 \
/opt/cruisecontrol/cruisecontrol-bin-2.8.2
To get the latest version of phpUnderControl, you can use the PEAR-Channel-Server: mapi@arwen ~ $ pear channel-discover pear.phpunit.de mapi@arwen ~ $ pear install phpunit/phpUnderControl-beta or you can check it out from the subversion repository: mapi@arwen ~ $ svn co svn://phpunit.de/phpunit/phpUnderControl/trunk
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
15:16
| Comments (25)
| Trackbacks (0)
Defined tags for this entry: elger, mayflower, phpundercontrol, php_codebrowser, release announcement, thorsten
Wednesday, February 25. 2009phpUnderControl tutorialJust now I found in Felix's blog this excellent phpUnderControl tutorial that comes with useful tips and helping scripts. Because I think it is a really good source to get started with phpUnderControl I will link it here. 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)
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)
Sunday, July 27. 2008Everything 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
Sunday, March 30. 2008phpUnderControl 0.4.0 releasedA few minutes ago I have released the latest phpUnderControl 0.4.0 version. In addition to many minor fixes and improvements this version comes with three utility commands, that should simplify some common tasks. 1) Project deleteThe project delete command provides a simple way to delete a complete project with all its contents, including logs, artifacts and sources, from your CruiseControl installation. [mapi@arwen~]$ phpuc delete --project-name connectfour /opt/cruisecontrol 2) Project cleanI do not really like this feature, because I really dislike the idea to delete old builds and artifacts, but I must admit that I have mounted a 100 GB partition as artifacts directory. Due to the fact that this feature was requested by many phpUnderControl users, it is implemented in phpUnderControl 0.4.0. This command allows you to delete old logs and artifacts except a configurable number of the latests builds. The following command will remove all build results for the php-under-control except the last 20 builds. [mapi@arwen~]$ phpuc clean --project-name php-under-control \
--keep-builds 20 /opt/cruisecontrol
3) Project createThe project create command provides a cli wizard to set up a new CruiseControl project. The following command will create a new project for the PHPUnit BankAccount sample, checkout the latest svn version, create the required directories and finally prepare the ant build.xml and the CruiseControl config.xml. If you don't like XML or you have multiple projects, that share a common source/project layout, this command could be useful for you. [mapi@arwen~]$ phpuc project --version-control svn \
--version-control-url svn://svn.phpunit.de/.. \
--project-name BankAccount2 \
--source-dir . \
--test-case BankAccountTest \
--test-dir . \
--test-file BankAccountTest.php \
--schedule-interval 20 \
/opt/cruisecontrol
But I would always recommend to use the example build.xml and config.xml to set up a new project. Both files are completely documented and contain links to the original CruiseControl configuration reference. I will do my best to complete the missing documentation for the CruiseControl config.xml file and the new cli commands. Any help is welcome.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, planet-php, projects
at
14:37
| Comments (12)
| Trackbacks (0)
Tuesday, March 18. 2008Integrate php lint syntax checks in your build processHere is a small code snippet that can be used to integrate php's internal lint syntax check into your build process. The ant task apply behaves like the exec task, but it accepts a nested fileset element. This allows to process a set of input files thru a single command. <?xml version="1.0" encoding="UTF-8"?> <project name="phpUnderControl" basedir="." default="build"> ... <target name="checkphp"> <apply executable="php" failonerror="true"> <arg value="-l" /> <fileset dir="source/src"> <include name="**/*.php" /> </fileset> </apply> </target> <target name="build" depends="checkphp,php-codesniffer,phpdoc,phpunit" /> ... </project> This can also be used as an addition in your phpunit target or any other command which executes code during the build-process, when the command would quit due to a syntax error.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, projects
at
21:05
| Comments (4)
| Trackbacks (0)
Saturday, February 16. 2008Howto customize phpUnderControl!Due to the fact that every software is individual and in this context the used tools differ from build-process to build-process phpUnderControl 0.3.6 introduced a new feature that allows to customize the main menu bar. It is a simple placeholder based preprocessor. It extracts custom tabs from an existing phpUnderControl installation and takes them into newer version during the update process. At the moment only the main.jsp file supports this new preprocessor between each of the predefined tabs. Each phpUnderControl placeholder has the following format <%-- phpUnderControl ([0-9]+) --%> where ([0-9]+) represents a unique number. The following example shows a section from the main.jsp file as it is shipped with phpUnderControl 0.3.6. ... <cruisecontrol:tab name="log" url="<%=logs_url%>" label="XML Log File" /> <%-- phpUnderControl 4 --%> <cruisecontrol:tab name="metrics" label="Metrics" > <%@ include file="metrics.jsp" %> </cruisecontrol:tab> <%-- phpUnderControl 5 --%> <cruisecontrol:tab name="coverage" label="Coverage"> ... </cruisecontrol:tab> <%-- phpUnderControl 6 --%> <cruisecontrol:tab name="documentation" label="Documentation"> ... Now I would like to add two more documentation types to my build result. The agile Testdox documentation, generated by PHPUnit and the end user documentation generated from docbook xml files in the source repository. <%-- phpUnderControl 4 --%> <cruisecontrol:tab name="metrics" label="Metrics" > <%@ include file="metrics.jsp" %> </cruisecontrol:tab> <%-- begin phpUnderControl 5 --%> <cruisecontrol:tab name="testdox" label="Testdox"> <cruisecontrol:artifactsLink> <iframe src="<%= artifacts_url %>/testdox/testdox.html" width="100%" height="550" /> </iframe> </cruisecontrol:artifactsLink> </cruisecontrol:tab> <cruisecontrol:tab name="manual" label="Manual"> <cruisecontrol:artifactsLink> <iframe src="<%= artifacts_url %>/manual/index.html" width="100%" height="550" /> </iframe> </cruisecontrol:artifactsLink> </cruisecontrol:tab> <%-- end phpUnderControl 5 --%> <cruisecontrol:tab name="coverage" label="Coverage"> ... </cruisecontrol:tab> <%-- phpUnderControl 6 --%> I simply translated the placeholder number 5 into an opening %<-- begin phpUnderControl 5 --%> and a closing <%-- end phpUnderControl 5 --%> placeholder and put my custom tabs between this two comment. And this is what it looks like now. And the best thing is that you do not need to worry about future updates.
Posted by Manuel Pichler
in php, phpugdo, phpundercontrol, projects
at
15:32
| Comments (2)
| Trackbacks (0)
Defined tags for this entry: continuous integration, cruisecontrol, customization, java server pages, layout, phpundercontrol, phpunit
(Page 1 of 2, totaling 19 entries)
» next page
|
ProjectsFurther stuffCategories |


