The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

My version control process

I'm having a hard time trying to maintain all the source for my asp.net 1.1 web project in a central repository, the objective is that if I want to go back to a older release I must easuly be able to retrieve all the sources required to regenerate the project. I'm using subversion as my scm.

I guess the complication is that We're using a code generator called DeKlarit (http://www.deklarit.com) to generate the DAL, business obejcts and CRUD web forms.
DeKlarit lets you export it's project as a xml file which can be used anytime to recreate the DK project.

I have a single deklarit box with our project which is shared and the developers copy the output across the network.

The sources required to regenerate the project are -

- My main project source
- DeKlarit export (.xml) (this kind of takes care of the DeKlarit generated database)
- Custom code for static functions called in the deklarit rules rules
- sql source for our custom database objects like stored procedures, triggers, etc..

I'm trying to automate most of this to provide least pain to the developers and my idea is this -

there's a post build task for the VS IDE which automatically exports the deklarit objects. The developers run a batch file whenever they want to retrieve the deklarit output, this copies the businessframework.dll, businessobjects.dll, webforms, etc.. and also the custom code and the xml export created by the postbuild task. developer checks in these along with his changes.

I suppose the custom sql source will have to exported into the project everytime the developer makes a change to it (i can't think of any way to automate this).

I'd sure appreciate some ideas on improving this process or making it simpler also if you think of anything which could go wrong with this cause I haven't implemented it yet...

Deepak T.
Deepak Trama Send private email
Tuesday, August 29, 2006
 
 
Normally a build is completelys separate from the IDE so you can run it independently.

Keep everything in the repository you use in the build and preparing for a release. Everything. This includes all tools, libraries, etc.

At a particular release label it or remember the repository change number.

Then you should be able to sync to the label and build everything from the source tree, including any dynamically generated products.
son of parnas
Tuesday, August 29, 2006
 
 
My 2 cents:

1. Make the build process run on command line instead of IDE. Use makefile or other tools like Ant.

2. All tools should be available on the build machine. If there are some license restrictions, you can get around it by executing on a remote computer and ftp/scp the result back.
Burner
Tuesday, August 29, 2006
 
 
You don't want tool on the build machine because that ties builds to machines and allows only one build configuration to happen at time because different builds may require different tool chains are tool chains at different revisions.

If you have all tools in the respository then you can run multiple simultaneous builds on any machine.
son of parnas
Tuesday, August 29, 2006
 
 
I make virtual machines with the tools I need to build a particular revision. Very easy to manage.
sloop
Tuesday, August 29, 2006
 
 
> there's a post build task for the VS IDE which
> automatically exports the deklarit objects. The
> developers run a batch file ...

At the command line just run:

  make -f add_your_project_here.mak
Jussi Jumppanen
Wednesday, August 30, 2006
 
 
imo make files are difficult to understnad by mere mortals, I think in my case a simple batch file would suffice, I will of course upgrade this to a nant script or some other build tool if things get too complex.

the post-build task for the VS ide is a seperate step which I can't figure out how to eliminate, since it's a dedicated DeKlarit pc it HAS TO to export the DeKlarit project everytime someone builds it.
Deepak Trama Send private email
Friday, September 01, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz