views:

32

answers:

1
+1  Q: 

Build Procedure

Hi all,

My company is putting auto build and deploy procedure in place. What we are doing now is checking out source code from svn and specify the source folder in Ant script. Is it the right way? Can we omit the exporting process and build directly from SVN?

Another question is to do with versioning. At the moment, we are creating a tag whenever there is a release and then use the tag number to name the build product, which will be shipped to a client's site. I've done search on the Internet and here and it seems the correct way to name a product is like this: x.y.z.revision. However, our company is quite small and the client always want quick changes and releases. I would like to know what the drawbacks of only using tag number to name the product? And what would be the best approach for small companies like us?

Thankyou,

Sarah

+1  A: 

Sounds like you're doing it the correct way - checking out and building from Ant. You can't build directly 'inside' the SVN repository - you need to checkout somewhere and build from within the working copy. Each time a change is made you need to update the working copy and then build.

The only thing I would suggest is looking at tools that do this for you anatomically, rather that you having to do it yourself. There are some tool out there that automate this process (Continuum, TeamCity, Bamboo) ranging from free to paid.

If you're not using a continuous integration tool already you might find benefits to your daily development as well. If you are currently using it, you might be surprised to discover how they can be used to control releases and nightly builds as well as instant feedback and testing.

As for product version numbers, there is no definitive correct way to approach this. Generally speaking build numbers are an internal reference only, and version numbers are a marketing thing.

Major.Minor.Revision format seems popular, and helps differentiate the degree of change. Depending on the frequency of your changes this might suffice, but you might find your revision number getting high quickly.

This Wikipedia article talks about a number of differing approaches to version numbers.

Michael Shimmins
Thanks for your detailed reply Michael.
sarahTheButterFly
don't forget Hudson (https://hudson.dev.java.net/) that is a very good continuous server
Vladimir