How best organize project, versions?

This morning I had a look at my daily news groups and found an interessting question. One guy asked for best practice organizing the project versions within the file structure.

I don’t think that I have the philosopher’s stone, but over the years I found my best practices.

My folder structure looks like:

\{Project name}
  \Build
  \Source
    \v1.x
      \{Apps}
    \v2.x
      \{Apps}
  \Distribute
    \Release {Release Number}
  \Documentation
    \{Documentation sub folders}
  \Test

The build folder contains Nant Scripts and command line tools to make the release builds and also the nightly builds.

As you can see the source folder has sub folders that contains the major releases. The reason why I bundle multiple source versions to 1.x and 2.x is that major changes (like you expect it from a major release change), requires big changes within the code base. That’s why I think it’s better to get rid of the old v1.x stuff and begin with a clear and fresh file structure 2.x.

On the other hand, building a new folder structure for every small release or patch doesn’t make any sense, because it’s much work and cost a lot of storage to copy always a complete folder structure. Therefore I strongly recommend to use a source code management system like SubVersion or CVS. Those tools allows you to manage smaller releases and set marker tags to pin your source for a specific version.

The Distribute folder contains the stable distributions as ZIP and MSI files. Referring to that, every distribution has it’s own subfolder that contains these two files. Last but not least the Test Folder contains a runable nightly build release in order to test the current development.

So I’m interessted in knowing what’s your experience with that issue?

Cheers
Gerhard


Link to the news group: How best organize a project, versions?

About these ads

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 106 other followers

%d bloggers like this: