I am trying to work for open source but have a doubt, how do I come to know that what change has taken place in the in the software when I make a change in the source code? Do I have to compile and install it each time I make a change?
-
Are you looking a software to highlight your code changes to differentiate with existing code? – Muhammad Saifuddin Jul 10 '16 at 10:27
-
No, suppose I have source code of a software, i compiled and installed it. Now, i make some changes to the source code. How do i come to know what changes have taken place? Do i have to compile the source code amd install it once again? – Mridul Gupta Jul 10 '16 at 10:57
-
Yes, In an unpleasant manner. – Muhammad Saifuddin Jul 11 '16 at 05:37
-
@MridulGupta Is it okay to compare only the source code, but have a program highlight what changed in the source code? – Zizouz212 Jul 14 '16 at 03:08
2 Answers
In an open source project (or any software project, for that matter), changes are usually managed through a version control system used for software versioning. A common example of this is Git which is used in GitHub.
When a change is made, you can do unit testing on individual components of the software without testing the entire program as a whole. This is called unit testing. When you want to figure out how the new code works in the bigger picture, you can do integration testing.
In the context of an Open Source operating system kernel such as Linux, an integration test might involve the time-consuming task of recompiling the entire kernel. While in the same scenario, doing a unit test on a smaller unit of added or modified code, you would not need to recompile the entire kernel because your unit testing program only requires the code it is testing on.

- 4,602
- 12
- 44
- 88
When writing code in a compiled language you will technically have to compile it every time you want to execute it (to debug it). However most IDE's these days will do this fairly easy for you with a simple keybinding (F5 in Visual Studio and F11 in Eclipse).
There are also plenty of tools available (you havn't mentioned what language you're working in, but I'm assuming C#/Java) if you want to deploy updates to your software without having to reinstall your program on multiple machines.
Check out these links
-
Then how about the large projects like linux? It must be time consuming to compile and test it after making change everytime? – Mridul Gupta Jul 10 '16 at 10:52
-
@Mridul Gupta: They can do [unit testing](https://en.wikipedia.org/wiki/Unit_testing) on individual components without compiling the entire Operating System as opposed to a full [integration test](https://en.wikipedia.org/wiki/Integration_testing) involving recompiling the Linux Kernel. – Paradox Jul 18 '16 at 15:30