Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Do you keep your build tools in version control?

Tags:

Do you keep tools that are necessary to build your project under version control?

If you do, what are your guidelines for which tools to include? I guess noone puts Visual Studio in version control, but how about your unit-test-runner? The Nant/Ant/Maven executable?

How about external dependencies? Do you have Boost in version control? The JDK? NUnit/JUnit? Where do you draw the limit here?

(See also this question).

EDIT: I guess my question was not completely clear: I did not want to know whether you kept them in version control vs. or some shared drive. I really wanted to know whether you checked the tools necessary for building a project into version control together with the project, so that when you checked the project out, you would automatically get the tools.

As a general follow-up to those who answer no: what is your process for keeping track of those tools? Do your script download them?

like image 742
Rasmus Faber Avatar asked Jan 07 '09 20:01

Rasmus Faber


People also ask

Can a build be triggered by a version control tool?

Answer: By polling the VCS for changes regularly via the CI system, a building process can be activated.

What is the point of version control?

Version control software keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members.


2 Answers

Yes, I keep EVERYTHING that is part of the process of delivering a software production in version control.

like image 104
Jim Blizard Avatar answered Sep 19 '22 22:09

Jim Blizard


There are two schools of thought on this:

  1. Put just your source code into the repository.
  2. Put everything someone would need to build your software short of the operating system and language runtime into the repository.

I personally tend more towards #2 because it makes it easier for someone to get up and running with my code. At any rate, I would argue that if you opt for the first method, you should at least make it so that a person can get the things required by point 2 and your source code in one step, even if not necessarily by version control.

Unfortunately, the build system is kind of a grey area. I personally leave it out unless I'm using something obscure or non-standard. And what's obscure and non-standard is dictated by the environment you work in. For example, if your company always uses MSBuild but decided to use Nant for whatever reason on this one project, then I'd include it.

like image 31
Jason Baker Avatar answered Sep 16 '22 22:09

Jason Baker