Clarifying things about CI Factory
For the first time I annoyed someone in my blog. And for starters, such an high profile person as Jay Flowers.
He was a little annoyed about my last post.
Just to clarify things, because I don't want to annoy anyone, here is a little more explanation into the problems I found:
If you already have lots of projects to maintain, CI Factory is not for you.
And that is my opinion.
I think now it is clearly explained.
PS: this reminded me that I forgot to add info about me. Now you can know my face.
He was a little annoyed about my last post.
Just to clarify things, because I don't want to annoy anyone, here is a little more explanation into the problems I found:
- before the installation:
- We don't use Subversion. We are a Microsoft shop, so we are still using Visual Source Safe. I hate it, but that's how it is. CI Factory supports VSS, but it assumes you have a database per project. That is not our case, we have a central database with all the projects. I resolved this problem with a simple hacking into a couple of files. Problem resolved.
- CI Factory relies on Winrar to create packages to deploy to the project folder. We don't have a license of Winrar. I didn't want to use it, so I wanted to replace it with a free alternative. Enter 7Zip. This took a lot more work, because 7Zip has less options than Winrar and has a curious way of creating SFX, but eventually i managed to do it. Problem resolved.
- after the installation:
- Trash on the source control - before I even put my source files under source control, I already had 32.498.777 bytes in 507 files under 282 folders. This looks like a lot. In my humble opinion, most of this should not be under source control. Only build scripts, config files and similar things should be there.
- Project Structure messy - this is tied to the previous item. CI Factory creates the following structure:
- /<Project name>
- /Current
- /Build
- /lots of folders
- /Product
- /Install
- /Production
- /Unit Test
- /Third Party
- Your code should go under /<project name>/Current/Product/Production. It's just my opinion, but it looks a little hidden. With time you get used to it, but for starters looks like you are digging for your source. And under /<project name>/Current/Build is where I think things get messy. Under this folder are the executables to several programs (CCNet, nAnt, Simian, etc), temporary folders, log files, reports, etc. I know everything is related to build, but it is not organized. If it is not organized, it is messy. And I think support tools should be in Third Party, or something similar.
- One CCNet server for every project - if you have 30 projects under Cruise Control (as we have), having a CCNet for every project makes it a little hard to maintain everything, if you want to upgrade your server the task is going to take longer and is more prone to error. I know there is upgrade.bat, but I have to run it for every project I have...
- Replication - taking the example of our 30+ projects, you get several hundred megabytes of replicated stuff across projects. I know hard disk is cheap, but I personally don't like to have things replicated in that manner (and it is a burden to maintain).
If you already have lots of projects to maintain, CI Factory is not for you.
And that is my opinion.
I think now it is clearly explained.
PS: this reminded me that I forgot to add info about me. Now you can know my face.
Powered by ScribeFire.