Skip to content

The Build Doctor
Syndicate content Some Rights Reserved
Does it hurt when you build?
Updated: 1 hour 57 min ago

links for 2009-01-06

Wed, 01/07/2009 - 03:35

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2009-01-06

Related posts:

  1. links for 2008-12-30 London OpenSolaris User Group at OpenSolaris.org Open Solaris could...
  2. links for 2008-12-24 collect {thoughts}: Mashup your RSS Feeds with ruby +...
  3. links for 2009-01-04 The Technical Blog of Paul Miles: How to Take...

Categories: Blogs

links for 2009-01-05

Tue, 01/06/2009 - 03:34

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2009-01-05

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...
  2. links for 2009-01-02 Local Continuous Integration with Integrity | Morethanseven Lightweight CI...
  3. links for 2009-01-04 The Technical Blog of Paul Miles: How to Take...

Categories: Blogs

Continuous Integration Cage Fight: Team City

Tue, 01/06/2009 - 00:21

Second to last in the talk was Team City, presented by Yegor Yarko of JetBrains.

They’ve done a very good job of the tool and used their position as developers of IntelliJ and Resharper to promote this product very cleverly: so I don’t think I need to do much introduction to the tool. Here’s the notes I managed to scratch down:

  • Free for 20 developers and 20 projects
  • Enterprise license $3000, more build agents (you get 2 or 3 free) are $300 each
  • Configuration is via xml file or web app
  • Build agents are secured: you have to grant them access
  • Unique feature: Gives failed test feedback before build finishes.
  • Unique feature: IDE plugins (IntelliJ, Eclipse, Visual Studio)
  • Unique feature: auto commit (it runs your tedious build and then commits to your repo - while you dine)
  • It has static code analysis features
  • It is very developer friendly
  • Unique feature: stop a build [though I think others can do that]
  • Very good .NET support
  • They might open source some of the plugins


Yegor also did a great job photographing the conference. Link

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

Continuous Integration Cage Fight: Team City

Related posts:

  1. Continuous Integration just got interesting I used to describe CI as “cron with style”. I...
  2. New, shiny Rake support in Team City You couldn’t pay me to run CruiseControl.rb now. Oh wait....
  3. Eras of Continuous Integration (image taken from debaird’s photostream) November 3, 2008: updated...

Categories: Blogs

links for 2009-01-04

Mon, 01/05/2009 - 03:34

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2009-01-04

Related posts:

  1. links for 2008-12-28 TeamCity Dev Blog: TeamCity 4.0.1 is released Shedload of...
  2. links for 2009-01-03 InfoQ: Keith Braithwaite, an Agile Skeptic Damn, he's good....
  3. links for 2009-01-05 Puppet SVN Deploy definition | Carl's Rantings This could...

Categories: Blogs

Sticking plaster over a gaping wound

Sun, 01/04/2009 - 13:33

Another thing that I learned in 2008: the build manager can’t be responsible for ensuring the quality of the code that they build and deploy. We had QA’s but there were loads of little things to check: Were the release instructions accurate? Was there a rollback process? Did all the scripts actually work?

I did have some success in getting the obvious issues caught with a test. There were ongoing issues with file encodings until I had someone write a validator that could be run from a unit test framework. The same approach also managed to catch issues like incompatible database scripts.

All in all though, there was too much to do. We managed to get the checklist passed up to the developers and release managers. We won that battle. I lost the war.
(image taken from jluster’s photostream)


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

Sticking plaster over a gaping wound

Related posts:

  1. Ant Best Practices: Use Ant as the Least Common Denominator (image taken from Clearly Ambiguous’ Photostream) We’re back to the...

Categories: Blogs

links for 2009-01-03

Sun, 01/04/2009 - 03:33

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2009-01-03

Related posts:

  1. links for 2008-12-28 TeamCity Dev Blog: TeamCity 4.0.1 is released Shedload of...
  2. links for 2009-01-04 The Technical Blog of Paul Miles: How to Take...
  3. links for 2009-01-05 Puppet SVN Deploy definition | Carl's Rantings This could...

Categories: Blogs

links for 2009-01-02

Sat, 01/03/2009 - 03:33

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2009-01-02

Related posts:

  1. links for 2009-01-05 Puppet SVN Deploy definition | Carl's Rantings This could...
  2. links for 2009-01-04 The Technical Blog of Paul Miles: How to Take...
  3. links for 2008-12-30 London OpenSolaris User Group at OpenSolaris.org Open Solaris could...

Categories: Blogs

New Year Site Admin

Fri, 01/02/2009 - 14:35

Happy new year! I have done some long-overdue admin work - silly things like upgrading WordPress plugins, etc.

  • The Related Posts plugin has been replaced because it didn’t actually seem to work. Hopefully as I finish adding the right categories to pages, it’ll be useful.
  • The Creative Commons license didn’t migrate over from Blogger. It has now.
  • At least one RSS aggregator is republishing this blog. That one cheeky site is in violation of the CC “No Commercial” license. There’s now a little footer on the RSS feed to let people know where the content came from.

Stay warm everyone. Unless you live in the southern hemisphere. You’re probably doing just fine.


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

New Year Site Admin

No related posts.

Categories: Blogs

New Year Site Admin

Fri, 01/02/2009 - 14:35

Happy new year! I have done some long-overdue admin work - silly things like upgrading WordPress plugins, etc.

  • The Related Posts plugin has been replaced because it didn’t actually seem to work. Hopefully as I finish adding the right categories to pages, it’ll be useful.
  • The Creative Commons license didn’t migrate over from Blogger. It has now.
  • At least one RSS aggregator is republishing this blog. That one cheeky site is in violation of the CC “No Commercial” license. There’s now a little footer on the RSS feed to let people know where the content came from.

Stay warm everyone. Unless you live in the southern hemisphere. You’re probably doing just fine.


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

New Year Site Admin

Related posts:

  1. Site admin - change to del.icio.us links I just deactivated the del.icio.us plugin for WordPress and the...

Categories: Blogs

links for 2008-12-30

Wed, 12/31/2008 - 03:33
  • London OpenSolaris User Group at OpenSolaris.org Open Solaris could be interesting. Soalris x86 was always a rock solid OS with crap hardware support. Now that Sun gave those muppets at SCO all that money to buy the device drivers, I want to give it another shot. (tags: unix)
  • Comic: The Windows User I love writing these comics. Yes, I'm not John K and I can't draw to save my life. Ideally, I'd be discussing these over a beer with Terry Colon and having him do the artwork. But I still like this. (tags: build-doctor)

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2008-12-30

Related posts:

  1. links for 2008-12-29 tattletail - alternative to bigvisiblecruise on my to-do list:...
  2. links for 2009-01-05 Puppet SVN Deploy definition | Carl's Rantings This could...
  3. links for 2009-01-03 InfoQ: Keith Braithwaite, an Agile Skeptic Damn, he's good....

Categories: Blogs

2008 in posts

Tue, 12/30/2008 - 16:28

Top posts on build-doctor.com, by traffic.

The last three months of this year have been on a new platform - wordpress. Traffic has fallen during this time; probably because I hadn’t put the social media voting buttons back on. No big deal. I write for the long term here. It also helps with the demons.

(image taken from ♥ellie♥’s photostream)


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

2008 in posts

Related posts:

  1. Build Doctor Retrospective Season: Traffic I had no idea how the Internet was going to...

Categories: Blogs

links for 2008-12-29

Tue, 12/30/2008 - 03:33


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2008-12-29

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...

Categories: Blogs

Comic: The Windows User

Tue, 12/30/2008 - 00:31

In 2008 I found out that some people still use Notepad.


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

Comic: The Windows User

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...

Categories: Blogs

links for 2008-12-28

Mon, 12/29/2008 - 03:33

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2008-12-28

Related posts:

  1. links for 2008-12-29 tattletail - alternative to bigvisiblecruise on my to-do list:...

Categories: Blogs

CruiseControl Build Radiator

Sun, 12/28/2008 - 22:22

Sudhindra Rao from ThoughtWorks has released a Build Radiator (Big Visible thing) for all the CruiseControls that support CCTray.

I installed it tonight. Needed to install the rack and activerecord gems. It would be nice to see it wrap around if you have more than a few projects. Most teams would probably do fine with this on a big display, I suspect.

This is pretty much what Michael and I did last year, except Sudhindra has made his nicely generic. Oh, and open source and available to the public. That helps a lot.

Nice work, Sudhindra.

Link


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

CruiseControl Build Radiator

Related posts:

  1. CruiseControl radiator - very disco Cruise Control LightsOriginally uploaded by Znachor It looks like something...
  2. The guardian.co.uk Build Radiator - a guest post by Michael Brunton-Spall Michael Brunton-Spall and I both worked on the Guardian ‘R2′...
  3. New Year Site Admin Happy new year! I have done some long-overdue admin work...

Categories: Blogs

links for 2008-12-24

Thu, 12/25/2008 - 03:33

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2008-12-24

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...

Categories: Blogs

Season’s Greetings

Wed, 12/24/2008 - 10:04


Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

Season’s Greetings

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...
  2. Build Doctor Retrospective Season: Traffic I had no idea how the Internet was going to...

Categories: Blogs

links for 2008-12-22

Tue, 12/23/2008 - 03:33

Post originally published at: The Build Doctor under a Creative Commons License. Some Rights Reserved.

links for 2008-12-22

Related posts:

  1. New Year Site Admin Happy new year! I have done some long-overdue admin work...

Categories: Blogs

Site admin - change to del.icio.us links

Mon, 12/22/2008 - 11:38
Categories: Blogs

Build Refactoring: Delete Boolean Property

Fri, 12/19/2008 - 17:05

(image taken from Kurtis Scaletta’s photostream)

Last time, you read about the extract target refactoring. Today, I’m going to show you one that I love to perform: delete boolean property. Have a look the smell first:

<project default="unit_tests">

	<property name="junit.enabled" value="true" />

	<target name="-check_junit_enabled">
		<condition property="junit.really.enabled">
      <and>
        <equals arg1="${junit.enabled}" arg2="true" />
      </and>
    </condition>
	</target>

	<target name="unit_tests" if="junit.really.enabled" depends="-check_junit_enabled">
		<mkdir dir="build/test-results"/>
		<junit>
			<test name="FooBarImplTest" todir="build/test-results"/>
			<classpath>
				<fileset dir="build"/>
				<fileset dir="lib"/>
			</classpath>
			<formatter type="xml"/>
		</junit>
	</target>
</project>

This smell starts out with the notion of properties to control the execution of your build. So far so good. “Hang on”, someone pipes up: “If you’re going to have a property, I want to be able to set it to values like ‘true’ or ‘false’”. With more work you manage to express the logic in Ant. Each target now needs to depend on at least one other to set the properties that control the execution of the build. This rapidly turns the build into dependency soup.

You also have to set two properties: the one that has the boolean value, and the other that exists to actually signal to your build tool that it should run a target.

How do you resolve this? Start deleting all those extra targets that ensure that the right properties are set. Like this:

<project default="unit_tests">

	<target name="unit_tests" unless="junit.disabled">
		<mkdir dir="build/test-results"/>
		<junit>
			<test name="FooBarImplTest" todir="build/test-results"/>
			<classpath>
				<fileset dir="build"/>
				<fileset dir="lib"/>
			</classpath>
			<formatter type="xml"/>
		</junit>
	</target>
</project>

What do you have to change in the targets that do the work? Just choose a decent property name to put in the if or unless tags and then delete any dependencies on targets that resolve properties. I decided that the default behaviour should be running the unit tests. To opt out you can pass the argument -D:junit.disabled=foo on the command line.

So what about the person who wanted the boolean properties? Either:

  • Make them support the build,
  • Write a custom Ant task to do all this, and make it run in the body of the Ant build file and not inside a target. I’ll even write one for them if they dig deep enough.

Happy refactoring. If you like this post, my article on Ant Refactoring is available to buy in the ThoughtWorks Anthology:


Categories: Blogs