Posts Tagged ‘Continuous integration’

If you visit most android developer forums you find android developers from all areas of development. Some are web developers, some are MS.NET developers, some are java developers, some are JavaEE developers, some are CS students, etc.

Among those many groups there is not a common thread of using a continuous integration build server.  With one exception, if you count the IDE as incremental compiler as the continuous integration server. and why not its small enough to run on a laptop with the android emulator and still have room to run a dev environment dash-board using jetty.

Thus, my philosophy is integrate pmd, checkstyle, classycle, jdepend, javaNCSS, doxygen for native c, jGrouseDoc for javadocs of javascript in assets, and cppcheck reports into one small build system package that is easy to set-up and use along with your favorite IDE for android development.

With some ease of usability in that you should only have four or less files to change per project amounting to less than 6 properties to change per project. Maybe even go further over this next week-end and code a groovy installer that auto-installs everything in a new project with no-mess no-fuss.

Not set as default incremental builder as we want developers to feel that they can run that one target to compile and doc the whole project whenever they want or they can set the whole thing up in their IDE as an incremental builder.

Not all polished all at once but I will get rest of the tools integrated this week and a full common look/feel to the reports that are generated so I can use it my own projects and see where rest of the improvements need to be made.  I did find how to do customizable headers and footers using CSS without having to change or insert new html  elements in the html generated in each report.

If you have not downloaded the corrected add-proguard-release.xml that was corrected from the android dev blog Sept 21st post than visit my github account link at the bottom of this blog and click on AndCooperANT and download that file at the project root folder. Of course no one paid attention to my bug submission yet, maybe I needed to have a bug title that stated Sept21st Dev post wrong?

But, oh well..towards weekend two more alpha and usable releases of AndCooperAnt with me starting to upload zipped copies to github for you to download.

Enhanced by Zemanta
Advertisements


The Andr0id Java Application Build tool called AndCooper is being released tonight as 0.1 Alpha. Included with this release is a modifid PMD.jar with a very alpha PMD ruleset for Andorid that goes beyond the PMD Android ruleset. No matter what Continuous Integration server you may be running its just simple drop the stuff in and run although you may not get CI-integrated dashboard view yet.

No matter what IDE you might be using you can point or setup a JavaBuilder to point to this set of build scripts and it will auto-generate the code analysis reports every time the project workspace is built by the JavaBuilder of your IDE. Templates for items such as Java.Header, package-summary.html, package-info.java, and etc can be found at root for easy access for new users. Also, included tiddlywiki templates for taking notes and GTD note taking. Also, I have kept the tool IDE agnostic in nature.

Report-wise you can set reports to have your company logo and UML diagrams are included with javadocs. Jdepend reprots also have diagrams in png form when you define the Graphviz Home path.

At this time the build scripts recognize SDKs up to the Android SDK version 3.0 with slight support for OEM add-on APIs so that those jars get added properly to classpaths and etc.

At this time I would like to thank everyone who commented thus far as I did use those comments to refactor the build tool to come up with the 0.1 alpha version.  Hopefully, as we go forward into releases such as 0.2 and 0.3 that will encourage more comments that can be used to refacor AndCooper into better implementations and hopefully at some point maybe even comments from OHA members at some point.

Reblog this post [with Zemanta]
Looking downriver from the Circle Line sightse...
Image via Wikipedia

First, thanks to my blog comment posters.  Yes, I can see why the desire to run AndCooper in Hudson Continuous Integration Server as its easy to set up and get started. While we do not have Hudson plugins for JSLint, Jdepend, Classycle, JCSC, DocCheck, and etc I can set up AndCooper specific items so we should be able to be able to run AndCooper right in Hudson almost right at the first AndCooper project releases.

For example, if I do a separate hudson-project-docs sub-directory and put html forms of all reports in there than  you can do post-build project links  with relative urls to those documents and thus stil have them in some form of dashboard like. Than as hudson plugins appear make a new andcooper-hudson-build.xml script that accounts for that set of features. That way we can use Hudson CI server right away. Which means I have to write a project sample config.xml for Hudson CI server integration.

Reblog this post [with Zemanta]

I am in the final phases of refactoring the reports look for AndCooper and the 0.1 release of AndCooper should be shortly. Looks like this before the final adjustments such as company logo, reports.css, and etc:
andcooper5
Plus, the reports should have a similar look to them to guide the developer as easy to read analysis reports. For example, adding summary explanations to some reports telling the viewer how to use the report.

I have choose to use a Continuous Integration Server as the platform to allow me to extend it beyond the first few versions to enable the easy on-the-fly-analysis. Basically, two modes. One mode allows the AndCoooper tool to run as a JavaBuilder in your IDE. The other mode allows you to run AndCooper in the Hudson Continuous Integration Server.

Reblog this post [with Zemanta]
Image representing Android as depicted in Crun...
Image via CrunchBase

While I adjust the code reportts to display information in the Android Application Development Context such as Classycle:
andcooper3

I better explain how AndCooper fits into things. AndCooper, although it can be used as a mini-continuous integration server, is not a CI server itself. Its just a build tool with a lot of features for the Android Application Development Process. If your CI server can use ANT than you should at ome point be able to integrate AndCooper with the CI server you use.

Reblog this post [with Zemanta]


I am now on the Report Writer code portion of AndCooper development. On one hand I could easily state that it should  be in groovy and a separate project. The problem is that fragments it in certain ways that I do not like.

If I choose to embedd the groovy code in the ANT script than I can re-use the code in the Android Mobile Build Continuous Integration Server project and everything is right there ready to test rather than run ant scripts from multiple projects. Which means I should set every report to xml and have that as an undelrying requriement that each code analysis/metric tool has to output reports in xml form so that I can transofrm that into an Android Developemnt specialized structure and format.

Reblog this post [with Zemanta]

Last year, 2008 or 2007,  I had the idea of integrating Tiddlywiki with Eclipse to somewhat drive the build/development process. However, for whatever reason that is just too brittle of a combination. But, picture this an Eclipse Continuous Integration Server.

You start with e4 project as the front end combined with RCP. Than of course part of e4 extends towards the backend but also inclduing say jetty, Sqlite, Eclipse BiRT, and etc. Than you take the API Modular principes of the Glean project and  move that form in pure ANT to say groovy. enable the Dashboards as Groovy/grails integrated with e4. It would be aprefect test of e4.

Now for the engineering part, how does one talk Motorola into doing a Mobile Application version that targets an Eclipse Continuous Integration Server for Android developers? Damn it I want one.

Reblog this post [with Zemanta]
Image representing Android as depicted in Crun...
Image via CrunchBase

When I started developing AndCooper I certainly did not intend to build a continuous integration server. But, along the way it seemed that Android Application development might need one. Not in the sense that it attempts to solve all problems but problems that are specific to Android Application Development.

What does a mini-continuous integration server look like? Its very small in Ant build script size and made to act as a Java Builder within modern IDE tools to get that incrmental set of builds as the developer is coding and thus generate code analysis reports as the develpoer is developing code. The analysis is specifically adjusted to pertain to Android developer challgnes, for example a new set of PMD rules beyond the PMD provided ruleset for Android, such as a rule checking for services leaks in  code.

On the ease of code analaysis report use and etc, a web dash board to view reports and eventually BiRT functionalities to query analysis data. The mini-continuous integration server for Android application development looks different in that  there is no server really deploy just drop it in yoru project folder and point the IDE JavaBuilder to use the build script, its just that simple.

As I finish version 0.1 over the weekend I am wondering how AndCooper will be received by Google, OHA members such as Motorola and etc as having a mini-continuous integration server for Android application development is kind of a new concept. And having support for javascript analysis for webview Android applications is a even neweer concept. Its a trail that no-one has trail-blazed before.

Reblog this post [with Zemanta]