OT: Method of packaging software for shipment

Alex Dean alex at crackpot.org
Fri Mar 12 08:03:28 MST 2010


On Mar 11, 2010, at 8:04 PM, Craig White wrote:

> On Thu, 2010-03-11 at 19:53 -0600, Alex Dean wrote:
>> On Mar 11, 2010, at 4:08 PM, Craig White wrote:
>>
>>> On Thu, 2010-03-11 at 14:47 -0700, Eric Cope wrote:
>>>> It needs to be deployed to Linux and Windows. I can't just tar /dir
>>>> because I have .svn files I don't want to include as well as test
>>>> directories. I planned on using a form of tar/zip.
>>>>
>>> ----
>>> ignoring that this really should have been on the development mail
>>> list...
>>>
>>> svn help export
>>>
>>> I can't imagine a single good reason for using an existing directory
>>> instead of exporting specific 'tags' from svn and using that for
>>> packaging except that there really wasn't much understanding and
>>> planning in svn.
>>
>> Can't speak for anyone else, but at least in my case I think there  
>> was
>> quite a lot of understanding and planning.
>>
>> If the build machine already has a recent working copy of the branch
>> you want to build, switching to a different branch or getting the  
>> last
>> bug fix with 'svn up' or 'svn switch' is a lot simpler and faster  
>> than
>> getting another full 'svn export'.
> ----
> I tend to think bigger picture and don't resort to simplifications  
> just
> because they are simpler or faster.

Now really, that's a self-serving assertion if ever I've read one.  I  
don't think I've 'resorted' to anything.  My company has a process  
that works quite well for us, and I shared it.  You're free to  
disagree, and I welcome the discussion, but your choice of words is  
unhelpful.

>
> Reasons that come immediately to my mind to only use an svn export  
> (from
> a specific 'tag':
>
> - stability - you can always see what was packaged by doing a checkout
> in another directory or on another computer.

You can do that with just a revision number.  You don't need a tag.   
If you like to use tags, that's of course fine, but all the points you  
make are satisfied just by knowing a branch and revision number.

Don't misunderstand.  The working copies we do builds from have no  
local modifications.  I'm not talking about a developer doing a build  
on his local machine from a working copy which is also used for  
development.  That's not the case.  I'm talking about machines which  
are dedicated to doing nothing but builds, and have working copies of  
release branches.  But if you just built r10198, and some last-minute  
bugs were found and fixed in r10199, it's much faster (and no less  
accurate or repeatable) to 'svn up' rather than doing another 'svn  
export'.

This is a common pattern for integrating cruisecontrol.rb with  
subversion.  You keep a local working copy on the test machine.   
Nobody makes modifications to it, it's just a local cache of the  
software under test.  Every time a new revision is detected, CC runs  
'svn up' and re-runs all the unit tests.  You get results fast, and  
developers know quickly if something they've done has broken a test.

>
> There's a reason that management systems and practices are developed  
> and
> rarely do they focus on simpler or faster.

You speak of 'management systems and practices' as if that were some  
monolithic thing.  This is a vast oversimplification of a complex topic.

Further, emphasizing process simplicity and speed (while maintaining  
repeatability, of course) is quite legitimate.  Complex and  
unnecessarily time-consuming processes are those which encourage  
mistakes and increase expenses.  The whole agile approach to software  
is about making the process simpler and faster, while improving  
quality and value.

alex
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part
Url : http://lists.PLUG.phoenix.az.us/pipermail/plug-discuss/attachments/20100312/d69ebcb6/attachment.pgp 


More information about the PLUG-discuss mailing list