<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Build Archives - scmGalaxy</title>
	<atom:link href="https://www.scmgalaxy.com/tutorials/tag/build/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.scmgalaxy.com/tutorials/tag/build/</link>
	<description>A Platform for Software Engineers</description>
	<lastBuildDate>Sat, 27 Feb 2021 10:15:11 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>How to compile and build Gerrit Plugins?</title>
		<link>https://www.scmgalaxy.com/tutorials/how-to-compile-and-build-gerrit-plugins/</link>
					<comments>https://www.scmgalaxy.com/tutorials/how-to-compile-and-build-gerrit-plugins/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sun, 19 Aug 2018 20:09:20 +0000</pubDate>
				<category><![CDATA[Gerrit]]></category>
		<category><![CDATA[Bazel]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Compile]]></category>
		<category><![CDATA[Plugins]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=5171</guid>

					<description><![CDATA[<p>To build Gerrit Plugins from source, you need: A Linux or macOS system (Windows is not supported at this time) [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-compile-and-build-gerrit-plugins/">How to compile and build Gerrit Plugins?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>To build Gerrit Plugins from source, you need:</strong></p>
<p>A Linux or macOS system (Windows is not supported at this time)</p>
<p><strong>zip, unzip, wget</strong></p>
<pre>$yum install zip -y
$ yum install unzip -y
$ yum install wget -y
$ yum install git -y</pre>
<p><strong>Python 2 or 3</strong><br />
This is installed in each RHEL 7 and Ubunutu server by defaul.</p>
<p><strong>Node.js</strong></p>
<pre>curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
OR
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
sudo yum -y install nodejs</pre>
<p><strong>Bazel</strong></p>
<pre>## RHEL/CentOS 7 64-Bit ##
$ wget https://copr.fedorainfracloud.org/coprs/vbatts/bazel/repo/epel-7/vbatts-bazel-epel-7.repo
$ cp vbatts-bazel-epel-7.repo /etc/yum.repos.d/
$ yum install -y bazel</pre>
<p><strong>How to Installing Bazel on Ubuntu?</strong><br />
https://docs.bazel.build/versions/master/install-ubuntu.html</p>
<p><strong>Maven</strong></p>
<pre>
$ cd /opt
$ wget http://www-us.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip
$ unzip apache-maven-3.5.4-bin.zip
$ mv apache-maven-3.5.4 maven
$ export PATH=$PATH:/op/maven/bin</pre>
<p><strong>gcc</strong></p>
<pre class="brush: plain; title: ; notranslate">$ sudo yum install gcc-c++ make</pre>
<p><strong>Now, Bazel in tree driven means it can only be built from within Gerrit tree. Clone or link the plugin into gerrit/plugins directory:</strong></p>
<p><strong># First become a non-root user</strong></p>
<p><strong>A JDK for Java 8</strong></p>
<pre>
$ cd
$ wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
$ tar -xvf jdk-8u181-linux-x64.tar.gz
$ export JAVA_HOME=/home/ec2-user/jdk1.8.0_181
$ java -version
</pre>
<p><strong>Follow for Gerrit.war</strong></p>
<pre>
$ git clone --recursive https://gerrit.googlesource.com/gerrit
$ cd gerrit 
$ bazel build release
</pre>
<p><strong>Follow for plugins such as its-jira</strong></p>
<pre>
$ cd plugins
$ git clone https://gerrit.googlesource.com/plugins/its-jira
$ git clone https://gerrit.googlesource.com/plugins/its-base
$ bazel build plugins/its-jira
</pre>
<p><strong>The output can be normally found in the following directory:</strong></p>
<pre>bazel-genfiles/plugins/its-jira/its-jira.jar</pre>
<p># Some plugins describe their build process in src/main/resources/Documentation/build.md file. It may worth checking.</p>
<p># Some plugins cane be build using maven as well</p>
<p><strong>Reference</strong></p>
<ul>
<li>https://gerrit-review.googlesource.com/Documentation/dev-bazel.html</li>
<li>https://gerrit.googlesource.com/gerrit/</li>
<li>https://gerrit-review.googlesource.com/Documentation/cmd-plugin-install.html</li>
<li>https://gerrit-review.googlesource.com/Documentation/dev-build-plugins.html</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/how-to-compile-and-build-gerrit-plugins/">How to compile and build Gerrit Plugins?</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/how-to-compile-and-build-gerrit-plugins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Types of Build</title>
		<link>https://www.scmgalaxy.com/tutorials/types-of-build/</link>
					<comments>https://www.scmgalaxy.com/tutorials/types-of-build/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 21:16:20 +0000</pubDate>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build Types]]></category>
		<category><![CDATA[Dedicated builds]]></category>
		<category><![CDATA[distributed processing build]]></category>
		<category><![CDATA[multi-language builds]]></category>
		<category><![CDATA[Multi-platform builds]]></category>
		<category><![CDATA[parallel processing build]]></category>
		<category><![CDATA[types of build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4786</guid>

					<description><![CDATA[<p>follow are Types of Build&#8230; Distributed processing Build: Parallel processing build Multi-platform builds Multi-language builds Dedicated builds</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/types-of-build/">Types of Build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>follow are Types of Build&#8230;</p>
<p>Distributed processing Build:<br />
Parallel processing build<br />
Multi-platform builds<br />
Multi-language builds<br />
Dedicated builds</p>
<p><img fetchpriority="high" decoding="async" class="alignnone" src="http://community.scmgalaxy.com/serve-file/e0/l1481295943/di/c1/ZD4QockFCfyfExr9tLB_6TRjB-FuquRCJWS9d9MjXlE/1/84/file/largethumb1271744171types%20of%20build.jpg" alt="build types" width="400" height="300" /></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/types-of-build/">Types of Build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/types-of-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Build Scala Project using sbt and Jenkins</title>
		<link>https://www.scmgalaxy.com/tutorials/build-scala-project-using-sbt-and-jenkins/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-scala-project-using-sbt-and-jenkins/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 12:09:40 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build Scala Project]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[sbt]]></category>
		<category><![CDATA[Scala Project]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4724</guid>

					<description><![CDATA[<p>Build Scala Project using sbt and Jenkins Agenda Scala &#8211; A Scalable language Scala Download Scala Software Requirement Scala IDEs [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-scala-project-using-sbt-and-jenkins/">Build Scala Project using sbt and Jenkins</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong><a href="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2018/01/Build-Scala-Project-using-sbt-and-Jenkins.pdf">Build Scala Project using sbt and Jenkins</a></strong></p>
<p><strong>Agenda</strong></p>
<ul>
<li><strong>Scala &#8211; A Scalable language</strong></li>
<li><strong>Scala Download</strong></li>
<li><strong>Scala Software Requirement</strong></li>
<li><strong>Scala IDEs</strong></li>
<li><strong>Scala Install Configuration</strong></li>
<li><strong>Scala First Program</strong></li>
<li><strong>Compile and Run</strong></li>
<li><strong>Building Scala Projects using Jenkins</strong></li>
<li><strong>Sbt downloand and configure</strong></li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-scala-project-using-sbt-and-jenkins/">Build Scala Project using sbt and Jenkins</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-scala-project-using-sbt-and-jenkins/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Build and Release Training online</title>
		<link>https://www.scmgalaxy.com/tutorials/build-and-release-training-online/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-and-release-training-online/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 11:18:26 +0000</pubDate>
				<category><![CDATA[Training]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build and Release Engineer Training in Bangalore]]></category>
		<category><![CDATA[Build and release training institutes in Bangalore]]></category>
		<category><![CDATA[Build and Release Training online]]></category>
		<category><![CDATA[Classroom build and release training in Bangalore]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[Software Configuration Management]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4697</guid>

					<description><![CDATA[<p>Upcoming Training Dates &#124; Training Agenda &#124; Training Calender &#124; FAQ &#124; Why scmGalaxy Online Training Training Duration – 30 Days (90 mins each day) Mode &#8211; Online [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-and-release-training-online/">Build and Release Training online</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h4><a href="http://community.scmgalaxy.com/list.html" target="_blank" rel="noopener">Upcoming Training Dates</a> | <a href="http://community.scmgalaxy.com/training/" target="_blank" rel="noopener">Training Agenda</a> | <a href="http://community.scmgalaxy.com/calender/" target="_blank" rel="noopener">Training Calender</a> | <a href="http://community.scmgalaxy.com/training/faq.html" target="_blank" rel="noopener">FAQ</a> | <a href="http://community.scmgalaxy.com/training/advantage-of-online-training-at-scmgalaxy.html" target="_blank" rel="noopener">Why scmGalaxy Online Training</a></h4>
<p><strong>Training Duration – 30 Days (90 mins each day)</strong></p>
<p><strong>Mode &#8211; Online (Webex | Skype | Gotomeeting)</strong><strong><br />
</strong></p>
<p><strong>Email –</strong></p>
<p><strong>Mode of Payment</strong> – Online Bank Transfer (Send us an email to <a href="mailto:info@scmgalaxy.com" rel="nofollow">info@scmgalaxy.com</a> with the confirmed payment receipt for acknowledgement)</p>
<p><strong>Registration is based on First Come basis and only confirmed registration would be considered.</strong></p>
<p><strong>Course Materials &#8211; Would be shared everyday end of the session every day</strong></p>
<p><strong>Lab &#8211; 70% of the training consist of lab.</strong></p>
<p><strong>Demo Class &#8211;  </strong>ScmGlaxy team does not believe in demo class concept as this is very difficult to evaluate any training/trainer very first day in 90 mins. Still, if you want to experience our training before enrollment, we may add you in any on-going live class based on your special request. If you want to know more about us &#8211; <a href="http://www.scmgalaxy.com/index.php?option=com_k2&amp;view=item&amp;id=214:about-us&amp;Itemid=120">Click here</a></p>
<p><strong>Refund &#8211; </strong>If you are reaching to us that means you have a genuine need of this training, but if you feel that the training does not fit to your expectation level, you may cancel your training within first three days of class and 100% refund will be processed.</p>
<p><strong>What if you miss the scheduled class?</strong> &#8211; If you miss the scheduled class, you can be a part of other ongoing batches any time in future free of cost.</p>
<p><strong>scmGalaxy Advantage</strong> &#8211; If you enroll for our courses, you can attend for our training any number of times of that specific course free of cost.</p>
<table border="2" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="3" align="center">
<h3>Weekdays Class Timing(Mon-Fri)</h3>
</td>
</tr>
<tr>
<td align="center">
<h4>CEST</h4>
</td>
<td align="center">
<h4>IST</h4>
</td>
<td align="center">
<h4>PST</h4>
</td>
</tr>
<tr>
<td align="center">8:00 AM &#8211; 9:30 AM</td>
<td align="center">11.30 AM &#8211; 01:00 PM</td>
<td align="center">11:00 PM &#8211; 12:30 AM</td>
</tr>
<tr>
<td align="center">06:30 PM &#8211; 8:00 PM</td>
<td align="center">10:00 PM &#8211; 11:30 PM</td>
<td align="center">09:30 AM  &#8211; 11:00 AM</td>
</tr>
<tr>
<td align="center">10:00 PM &#8211; 11:30 PM</td>
<td align="center">1:30 AM &#8211; 3:00 AM</td>
<td align="center">1:00 PM &#8211; 2:30 PM</td>
</tr>
<tr>
<td colspan="3" align="center">
<h3>Weekend Class Timing (Sat &#8211; Sun)</h3>
</td>
</tr>
<tr>
<td align="center">11:00 AM &#8211; 2:00 PM</td>
<td align="center">2:30 PM &#8211; 5:30 PM</td>
<td align="center">2:00 AM &#8211; 5:00 AM</td>
</tr>
</tbody>
</table>
<h4>Tools Covered as Part of this Training &#8211; Jenkins, Git, SVN, Ant, Maven, MSBuild, Chef Fundamental, RPM, Shell Scripting and Linux</h4>
<h3>Course Outline :</h3>
<p><strong>Concept / Process / Principals / Overview</strong></p>
<ul>
<li>Software Configuration Management overview</li>
<li>Elements of Software Configuration Management</li>
<li>Introduction of Version management / Source Code Management</li>
<li>Overview of Build management</li>
<li>Overview of Packaging management</li>
<li>Overview of Release and Deployment management</li>
</ul>
<p><strong>Source Code Management Tools</strong></p>
<ul>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=21" target="_blank" rel="noopener">Git &#8211; Source Code Management</a></li>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=44" target="_blank" rel="noopener">SVN &#8211; Source Code Management <strong>&#8211; Fundamental only</strong></a></li>
</ul>
<p><strong>Build Management Tools</strong></p>
<ul>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=37" target="_blank" rel="noopener">Apache Ant &#8211; A java based build Tool</a></li>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=23" target="_blank" rel="noopener">Apache Maven &#8211; A java based build tool</a></li>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=45" target="_blank" rel="noopener">Msbuild &#8211; A dot net based build tool <strong>&#8211; Fundamental only</strong></a></li>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=22" target="_blank" rel="noopener">Jenkins &#8211; A continuous integration tool</a></li>
</ul>
<p><strong>Application Packaging Management Tools</strong></p>
<ul>
<li>RPM &#8211; A linux based application packaging tool</li>
</ul>
<p><strong>Deployment Management / Configuration management &#8211; Fundamental only</strong></p>
<ul>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=33" target="_blank" rel="noopener">Chef &#8211; A configuration management tool</a></li>
</ul>
<p><strong>Application server &#8211; Fundamental only</strong></p>
<ul>
<li>Jboss &#8211; An open source application server</li>
</ul>
<p><strong>Operating System</strong></p>
<ul>
<li>Windows &#8211; A Microsoft operating system</li>
<li>Linux &#8211; An open source operating system</li>
</ul>
<p><strong>Scripting</strong></p>
<ul>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=46" target="_blank" rel="noopener">Shell Scripting (Bash)</a></li>
</ul>
<p><strong>CI/CD Concept and Implementation</strong></p>
<ul>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=35" target="_blank" rel="noopener">Concept of Continuous Integration</a></li>
<li>Concept of Continuous Deployment</li>
<li>Concept of Continuous Delivery</li>
<li><a href="http://www.scmgalaxy.com/index.php?option=com_content&amp;view=article&amp;id=35" target="_blank" rel="noopener">CI/CD Implementation</a></li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-and-release-training-online/">Build and Release Training online</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-and-release-training-online/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>List of build automation software</title>
		<link>https://www.scmgalaxy.com/tutorials/list-of-build-automation-software/</link>
					<comments>https://www.scmgalaxy.com/tutorials/list-of-build-automation-software/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 09 Jan 2018 09:37:16 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build automation software]]></category>
		<category><![CDATA[Build automation tools]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[Make-based tools]]></category>
		<category><![CDATA[Non-Make-based tools]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4646</guid>

					<description><![CDATA[<p>Make-based tools     distcc     GNU make, a widely used make implementation with a large set of extensions     make, [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/list-of-build-automation-software/">List of build automation software</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Make-based tools</p>
<ul>
<li>    distcc</li>
<li>    GNU make, a widely used make implementation with a large set of extensions</li>
<li>    make, a classic Unix build tool</li>
<li>    mk, developed originally for Version 10 Unix and Plan 9, and ported to Unix as part of plan9port</li>
<li>    MPW Make, developed for Mac OS Classic and similar to but not compatible with Unix make; OS X comes with both GNU make and BSD make; available as part of Macintosh Programmer&#8217;s Workshop as a free, unsupported download from Apple</li>
<li>    nmake</li>
<li>    PVCS-make, basically follows the concept of make but with a noticeable set of unique syntax features[1]</li>
<li>    Rake, a Ruby-based build tool</li>
<li>    ElectricMake, a replacement for make and gmake that implements build parallelization with ElectricAccelerator. Produced by Electric Cloud Inc.</li>
</ul>
<p>Non-Make-based tools</p>
<ul>
<li>    Apache Ant, popular for Java platform development and uses an XML file format</li>
<li>    Apache Buildr, open-source build system, Rake-based, gives full power of scripting in Ruby with integral support for most abilities wanted in a build system</li>
<li>    Apache Maven, a Java platform tool for project management and automated software build</li>
<li>    A-A-P, a Python based build tool</li>
<li>    Cabal, common architecture for building applications and libraries in the programming language Haskell</li>
<li>    Flowtracer</li>
<li>    Gradle, an open-source build and automation system with a Groovy Rake domain specific language (DSL), combining the advantages of Ant and Apache Maven plus providing many innovative features like a reliable incremental build</li>
<li>    Leiningen, a tool providing commonly performed tasks in Clojure projects, including build automation lei</li>
<li>    MSBuild, the Microsoft build engine</li>
<li>    NAnt, a tool similar to Ant for the .NET Framework</li>
<li>    Perforce Jam, a generally enhanced, ground-up tool which is similar to Make</li>
<li>    Psake, domain-specific language and build automation tool written in PowerShell</li>
<li>    sbt, a build tool built on a Scala-based DSL</li>
<li>    SCons, Python-based, with integrated functionality similar to autoconf/automake</li>
<li>    Shake, Haskell based, embedded DSL</li>
<li>    Tup, Lua based, make-like DSL with a pure focus on speed and scalability</li>
<li>    Tweaker, allowing task definitions to be written in any languages (or intermixed languages) while providing a consistent interface for them all</li>
<li>    Visual Build, a graphical user interface software for software builds</li>
<li>    Waf is a Python-based tool for configuring, compiling and installing applications. It is a replacement for other tools such as Autotools, Scons, CMake or Ant</li>
</ul>
<p>Build script generation tools</p>
<ul>
<li>    automake</li>
<li>    CMake, a cross-platform tool that generates files for the native build environment, such as makefiles for Unix or Workspace files for Visual Studio</li>
<li>    GNU Build Tools (aka autotools), a collection of tools for portable builds. These in particular include Autoconf and Automake, cross-platform tools that together generate appropriate localized makefiles.</li>
<li>    Generate Your Projects (GYP) &#8211; Created for Chromium; it is another tool that generates files for the native build environment</li>
<li>    imake</li>
<li>    Premake, a Lua based tool for making makefiles, Visual Studio files, Xcode projects, and more</li>
<li>    qmake</li>
</ul>
<p>Continuous integration tools</p>
<ul>
<li>    AnthillPro, build automation with pipeline support for deployment automation and testing. Cross-platform, cross-language</li>
<li>    Bamboo, continuous integration software</li>
<li>    Automated BuildStudio, a system for automating and managing software build, test and deploy processes, with build scheduling and continuous integration support</li>
<li>    Apache Continuum</li>
<li>    BuildBot, a Python-based software development continuous integration tool which automates the compile/test cycle</li>
<li>    BuildIT, a free graphical build or task tool for Windows with an emphasis on simplicity and ease of use</li>
<li>    Buildout, a Python-based build system for creating, assembling and deploying applications from multiple parts</li>
<li>    CABIE Continuous Automated Build and Integration Environment, open source, written in Perl</li>
<li>    Cascade, a continuous integration tool that builds and tests software components after each change is committed to the repository. Also provides a &#8220;checkpointing&#8221; facility by which changes can be built and tested before they are committed</li>
<li>    CruiseControl, for Java and .NET</li>
<li>    FinalBuilder, for Windows software developers. FinalBuilder provides a graphical IDE to create and run build projects</li>
<li>    Hudson, an extensible continuous integration engine</li>
<li>    Jenkins, an extensible continuous integration engine, forked from Hudson</li>
<li>    Team Foundation Server, an extensible continuous integration engine from Microsoft</li>
<li>    TeamCity</li>
</ul>
<p>Configuration management tools</p>
<ul>
<li>    Salt (Python-based)</li>
<li>    Ansible</li>
<li>    Puppet (Ruby-based)</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/list-of-build-automation-software/">List of build automation software</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/list-of-build-automation-software/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>10 Key Suggestions To Build The Document Management System With Your Employees</title>
		<link>https://www.scmgalaxy.com/tutorials/10-key-suggestions-to-build-the-document-management-system-with-your-employees/</link>
					<comments>https://www.scmgalaxy.com/tutorials/10-key-suggestions-to-build-the-document-management-system-with-your-employees/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 11:55:56 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Document Management]]></category>
		<category><![CDATA[Document Management System]]></category>
		<category><![CDATA[Document management system qualities]]></category>
		<category><![CDATA[Employees]]></category>
		<category><![CDATA[Suggestions]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4539</guid>

					<description><![CDATA[<p>Employees never feel at ease under a boss who doesn’t trust them or whom they don’t trust. In the absence [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/10-key-suggestions-to-build-the-document-management-system-with-your-employees/">10 Key Suggestions To Build The Document Management System With Your Employees</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Employees never feel at ease under a boss who doesn’t trust them or whom they don’t trust. In the absence of mutual trust productivity falls as the employees get into politics, covering their backs and other inefficient activity. Not trusting each other will affect confidence, which leads to a deterioration in customer satisfaction as the environment shifts from the business needs to internal wrangling.</p>
<p>So, let’s look at some key qualities a document management system must possess to develop trust.</p>
<p>A <a href="http://www.documentlocator.com/Solutions/Document-Management-System/" target="_blank" rel="noopener">Document Management System</a> must communicate well to build strong relationships with their people. In difficult times, employees might think no news is bad news, so the boss must keep in close touch. Lack of communication reduces trust; being open with information creates it. A manager must develop an ability to trust others and create an environment of trust throughout the workplace. Really, it is better to assume the trustworthiness of employees to start with, rather than waiting for them to earn it. Team members find it much easier to trust their manager if they feel trusted themselves.</p>
<p>Being open and honest is a key ingredient for generating well-organized <a href="http://www.documentlocator.com/Solutions/Document-Management-System/" target="_blank" rel="noopener">Document Management System</a>. When you are open about your vision, actions and objectives, you will usually generate strong support. Both kind of news should be openly shared, reducing rumor and internal politics. By admitting mistakes and not trying to cover them up, shows any manager to be a normal human being, just like everyone else!</p>
<p>Managers should produce a moral value system for the workplace. Teams which have a common ethics are healthier, resourceful, adaptable and productive owing to the common root of their file value systems.</p>
<p>By making actions visible and delivering the commitments, managers become trusted. Failing on promises is insincere and causes tensions. A manager needs to deliver actions visibly, to ensure everyone knows that they can be depended upon. In the process of building trust, being consistent and predictable is very important.</p>
<p>Employees who you manage using such a document storage system must be able to confide in you the sensitive information, express concern and share issues. People need to know that you can keep this confidential when they need you to. Sometimes these can be personal matters and in such cases this becomes even more significant. Watching your language is crucial. By skipping using the “us” and “them” figures of speech and instead using “we” wherever possible, your team will bond better with you. Your verbal communication should be clear and simple, because everyone interprets what is said differently- so you need to speak clearly for everyone to understand. Having informal social interactions with the staff enhances the trust building procedure. In geranial, social interactions are a big opportunity for success for any good manager.</p>
<p>To make <a href="http://www.documentlocator.com/Solutions/Document-Management-System/" target="_blank" rel="noopener">Document Management Systems</a> which work together efficiently, requires the abundant presence of mutual trust. By consistently thinking of and working on earning trust, any manager will reap long-lasting positive benefits.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/10-key-suggestions-to-build-the-document-management-system-with-your-employees/">10 Key Suggestions To Build The Document Management System With Your Employees</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/10-key-suggestions-to-build-the-document-management-system-with-your-employees/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Basic RPM Tutorials</title>
		<link>https://www.scmgalaxy.com/tutorials/basic-rpm-tutorials/</link>
					<comments>https://www.scmgalaxy.com/tutorials/basic-rpm-tutorials/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 11:13:51 +0000</pubDate>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[basic rpm tutorials]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[building rpms]]></category>
		<category><![CDATA[RPM]]></category>
		<category><![CDATA[RPM Guide]]></category>
		<category><![CDATA[RPM Reference]]></category>
		<category><![CDATA[RPM Tutorials]]></category>
		<category><![CDATA[the spec file]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4520</guid>

					<description><![CDATA[<p>Basic RPM Tutorials Introduction: RPM is the RPM Package Manager. It is an open packaging system available for anyone to use. It allows [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/basic-rpm-tutorials/">Basic RPM Tutorials</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Basic RPM Tutorials</h2>
<h2>Introduction:</h2>
<p><a id="INTRO" name="INTRO"></a>RPM is the <em>R</em>PM <em>P</em>ackage <em>M</em>anager. It is an open packaging system available for anyone to use. It allows users to take source code for new software and package it into source and binary form such that binaries can be easily installed and tracked and source can be rebuilt easily. It also maintains a database of all packages and their files that can be used for verifying packages and querying for information about files and/or packages.<br />
Red Hat, Inc. encourages other distribution vendors to take the time to look at RPM and use it for their own distributions. RPM is quite flexible and easy to use, though it provides the base for a very extensive system.</p>
<p><strong>RPM Basic usage command</strong><br />
<a id="USE" name="USE"></a><strong>In its simplest form, RPM can be used to install packages:</strong><br />
rpm -i foobar-1.0-1.i386.rpm<br />
<strong>The next simplest command is to uninstall a package:</strong></p>
<pre>rpm -e foobar</pre>
<p><strong>While these are simple commands, rpm can be used in a multitude of ways. To see which options are available in your version of RPM, type:</strong></p>
<pre>rpm –help</pre>
<pre><strong>You can find more details on what those options do in the RPM man page, found by typing:</strong></pre>
<pre>man rpm</pre>
<p><a id="RPM-DO" name="RPM-DO"></a><strong>Let&#8217;s say you delete some files by accident, but you aren&#8217;t sure what you deleted. If you want to verify your entire system and see what might be missing, you would do:</strong></p>
<pre>rpm -Va</pre>
<p><strong>Let&#8217;s say you run across a file that you don&#8217;t recognize. To find out which package owns it, you would do:</strong></p>
<pre>rpm -qf /usr/X11R6/bin/xjewel</pre>
<p><strong>Now you want to see what files the koules RPM installs. You would do:</strong></p>
<pre>rpm -qpi koules-1.2-2.i386.rpm</pre>
<pre></pre>
<h2>Building RPMs</h2>
<p><a id="BUILD" name="BUILD"></a>The basic procedure to build an RPM is as follows:</p>
<ul>
<li>Get the source code you are building the RPM for to build on your system.</li>
<li>Make a patch of any changes you had to make to the sources to get them to build properly.</li>
<li>Make a spec file for the package.</li>
<li>Make sure everything is in its proper place.</li>
<li>Build the package using RPM.</li>
</ul>
<h2>The Spec File</h2>
<pre><a id="SPEC-FILE" name="SPEC-FILE"></a>Here is a small spec file (eject-2.0.2-1.spec):</pre>
<pre></pre>
<pre>Summary: A program that ejects removable media using software control.</pre>
<pre>Name: eject</pre>
<pre>Version: 2.0.2</pre>
<pre>Release: 3</pre>
<pre>Copyright: GPL</pre>
<pre>Group: System Environment/Base</pre>
<pre>Source: http://metalab.unc.edu/pub/Linux/utils/disk-management/eject-2.0.2.tar.gz</pre>
<pre>Patch: eject-2.0.2-buildroot.patch</pre>
<pre>BuildRoot: /var/tmp/%{name}-buildroot</pre>
<pre>%description</pre>
<pre>The eject program allows the user to eject removable media</pre>
<pre>(typically CD-ROMs, floppy disks or Iomega Jaz or Zip disks)</pre>
<pre>using software control. Eject can also control some multi-</pre>
<pre>disk CD changers and even some devices' auto-eject features.</pre>
<pre>Install eject if you'd like to eject removable media using</pre>
<pre>software control.</pre>
<pre>%prep</pre>
<pre>%setup -q</pre>
<pre>%patch -p1 -b .buildroot</pre>
<pre>%build</pre>
<pre>make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"</pre>
<pre></pre>
<pre>%install</pre>
<pre>rm -rf $RPM_BUILD_ROOT</pre>
<pre>mkdir -p $RPM_BUILD_ROOT/usr/bin</pre>
<pre>mkdir -p $RPM_BUILD_ROOT/usr/man/man1</pre>
<pre></pre>
<pre>install -s -m 755 eject $RPM_BUILD_ROOT/usr/bin/eject</pre>
<pre>install -m 644 eject.1 $RPM_BUILD_ROOT/usr/man/man1/eject.1</pre>
<pre></pre>
<pre>%clean</pre>
<pre>rm -rf $RPM_BUILD_ROOT</pre>
<pre></pre>
<pre>%files</pre>
<pre>%defattr(-,root,root)</pre>
<pre>%doc README TODO COPYING ChangeLog</pre>
<pre></pre>
<pre>/usr/bin/eject</pre>
<pre>/usr/man/man1/eject.1</pre>
<pre></pre>
<pre>%changelog</pre>
<pre>* Sun Mar 21 1999 Cristian Gafton &lt;gafton@redhat.com&gt;</pre>
<pre>- auto rebuild in the new build environment (release 3)</pre>
<pre></pre>
<pre>* Wed Feb 24 1999 Preston Brown &lt;pbrown@redhat.com&gt;</pre>
<pre>- Injected new description and group.</pre>
<pre></pre>
<pre>[ Some changelog entries trimmed for brevity.  -Editor. ]</pre>
<pre><strong> </strong></pre>
<p><a id="HEADER" name="HEADER"></a><strong>The Header</strong><br />
The header has some standard fields in it that you need to fill in. There are a few caveats as well. The fields must be filled in as follows:<br />
The header has some standard fields in it that you need to fill in. There are a few caveats as well. The fields must be filled in as follows:</p>
<ul>
<li><em>Summary:</em> This is a one line description of the package.</li>
<li><em>Name:</em> This must be the name string from the rpm filename you plan to use.</li>
<li><em>Version:</em> This must be the version string from the rpm filename you plan to use.</li>
<li><em>Release:</em> This is the release number for a package of the same version (ie. if we make a package and find it to be slightly broken and need to make it again, the next package would be release number 2).</li>
<li><em>Copyright:</em> This line tells how a package is copyrighted. You should use something like GPL, BSD, MIT, public domain, distributable, or commercial.</li>
<li><em>Group:</em> This is a group that the package belongs to in a higher level package tool or the Red Hat installer.</li>
<li><em>Source:</em> This line points at the HOME location of the pristine source file. It is used if you ever want to get the source again or check for newer versions. Caveat: The filename in this line MUST match the filename you have on your own system (ie. don&#8217;t download the source file and change its name). You can also specify more than one source file using lines like:</li>
</ul>
<pre>Source0: blah-0.tar.gz</pre>
<pre>Source1: blah-1.tar.gz</pre>
<pre>Source2: fooblah.tar.gz</pre>
<p>These files would go in the SOURCES directory. (The directory structure is discussed in a later section, &#8220;The Source Directory Tree&#8221;.)<br />
·  <em>Patch:</em> This is the place you can find the patch if you need to download it again. Caveat: The filename here must match the one you use when you make YOUR patch. You may also want to note that you can have multiple patch files much as you can have multiple sources. ] You would have something like:</p>
<pre>Patch0: blah-0.patch</pre>
<pre>Patch1: blah-1.patch</pre>
<pre>Patch2: fooblah.patch</pre>
<p>These files would go in the SOURCES directory.<br />
<em>Group:</em> This line is used to tell high level installation programs (such as Red Hat&#8217;s gnorpm) where to place this particular program in its hierarchical structure. You can find the latest description in /usr/doc/rpm*/GROUPS.<br />
·  <em>BuildRoot:</em> This line allows you to specify a directory as the &#8220;root&#8221; for building and installing the new package. You can use this to help test your package before having it installed on your machine.<br />
·  <em>%description</em> It&#8217;s not really a header item, but should be described with the rest of the header. You need one description tag per package and/or subpackage. This is a multi-line field that should be used to give a comprehensive description of the package.</p>
<h2><a id="PREP" name="PREP"></a>Prep</h2>
<p>This is the second section in the spec file. It is used to get the sources ready to build. Here you need to do anything necessary to get the sources patched and setup like they need to be setup to do a <strong>make</strong>.<br />
One thing to note: Each of these sections is really just a place to execute shell scripts. You could simply make an sh script and put it after the <em>%prep</em> tag to unpack and patch your sources. We have made macros to aid in this, however.<br />
The first of these macros is the <em>%setup</em> macro. In its simplest form (no command line options), it simply unpacks the sources and <strong>cd</strong>&#8216;s into the source directory. It also takes the following options:</p>
<ul>
<li><em>-n name</em> will set the name of the build directory to the listed <em>name</em>. The default is <em>$NAME-$VERSION</em>. Other possibilities include <em>$NAME</em>, <em>${NAME}${VERSION}</em>, or whatever the main tar file uses. (Please note that these &#8220;$&#8221; variables are <em>not</em>real variables available within the spec file. They are really just used here in place of a sample name. You need to use the real name and version in your package, not a variable.)</li>
<li><em>-c</em> will create and cd to the named directory <em>before</em> doing the untar.</li>
<li><em>-b #</em> will untar Source# <em>before</em> <strong>cd</strong>&#8216;ing into the directory (and this makes no sense with <em>-c</em> so don&#8217;t do it). This is only useful with multiple source files.</li>
<li><em>-a #</em> will untar Source# <em>after</em> cd&#8217;ing into the directory.</li>
<li><em>-T</em> This option overrides the default action of untarring the Source and requires a <em>-b 0</em> or <em>-a 0</em> to get the main source file untarred. You need this when there are secondary sources.</li>
<li><em>-D</em> Do <em>not</em> delete the directory before unpacking. This is only useful where you have more than one setup macro. It should <em>only</em> be used in setup macros <em>after</em> the first one (but never in the first one).</li>
</ul>
<p>The next of the available macros is the <em>%patch</em> macro. This macro helps automate the process of applying patches to the sources. It takes several options, listed below:</p>
<ul>
<li><em>#</em> will apply Patch# as the patch file.</li>
<li><em>-p #</em> specifies the number of directories to strip for the patch(1) command.</li>
<li><em>-P</em> The default action is to apply <strong>Patch</strong> (or <strong>Patch0</strong>). This flag inhibits the default action and will require a <em>0</em> to get the main source file untarred. This option is useful in a second (or later) <strong>%patch</strong> macro that required a different number than the first macro.</li>
<li>You can also do <strong>%patch#</strong> instead of doing the real command: <strong>%patch # -P</strong></li>
<li><em>-b extension</em> will save originals as filename.extension before patching.</li>
</ul>
<p>That should be all the macros you need. After you have those right, you can also do any other setup you need to do via sh type scripting. Anything you include up until the <em>%build</em> macro (discussed in the next section) is executed via sh. Look at the example above for the types of things you might want to do here.</p>
<h2>Build</h2>
<p><a id="BUILD-SPEC" name="BUILD-SPEC"></a>There aren&#8217;t really any macros for this section. You should just put any commands here that you would need to use to build the software once you had untarred the source, patched it, and cd&#8217;ed into the directory. This is just another set of commands passed to sh, so any legal sh commands can go here (including comments).<br />
The variable RPM_OPT_FLAGS is set using values in /usr/lib/rpm/rpmrc. Look there to make sure you are using values appropriate for your system (in most cases you are). Or simply don&#8217;t use this variable in your spec file. It is optional.</p>
<h2><a id="INSTALL" name="INSTALL"></a>Install</h2>
<p>There aren&#8217;t really any macros here, either. You basically just want to put whatever commands here that are necessary to install. If you have <strong>make install</strong> available to you in the package you are building, put that here. If not, you can either patch the makefile for a <strong>make install</strong> and just do a <strong>make install</strong> here, or you can hand install them here with sh commands. You can consider your current directory to be the toplevel of the source directory.<br />
The variable RPM_BUILD_ROOT is available to tell you the path set as the <em>Buildroot:</em> in the header. Using build roots are optional but are highly recommended because they keep you from cluttering your system with software that isn&#8217;t in your RPM database (building an RPM doesn&#8217;t touch your database&#8230;you must go install the binary RPM you just built to do that).</p>
<h2><a id="SCRIPTS" name="SCRIPTS"></a>Optional pre and post Install/Uninstall Scripts</h2>
<p>You can put scripts in that get run before and after the installation and uninstallation of binary packages. A main reason for this is to do things like run <strong>ldconfig</strong> after installing or removing packages that contain shared libraries. The macros for each of the scripts is as follows:</p>
<ul>
<li>%pre is the macro to do pre-install scripts.</li>
<li>%post is the macro to do post-install scripts.</li>
<li>%preun is the macro to do pre-uninstall scripts.</li>
<li>%postun is the macro to do post-uninstall scripts.</li>
</ul>
<p>The contents of these sections should just be any sh style script, though you do <em>not</em> need the #!/bin/sh.</p>
<h2><a id="FILES" name="FILES"></a>Files</h2>
<p>This is the section where you <em>must</em> list the files for the binary package. RPM has no way to know what binaries get installed as a result of <strong>make install</strong>. There is <em>NO</em> way to do this. Some have suggested doing a <strong>find</strong> before and after the package install. With a multiuser system, this is unacceptable as other files may be created during a package building process that have nothing to do with the package itself.<br />
There are some macros available to do some special things as well. They are listed and described here:</p>
<ul>
<li>%doc is used to mark documentation in the source package that you want installed in a binary install. The documents will be installed in /usr/doc/$NAME-$VERSION-$RELEASE. You can list multiple documents on the command line with this macro, or you can list them all separately using a macro for each of them.</li>
<li>%config is used to mark configuration files in a package. This includes files like sendmail.cf, passwd, etc. If you later uninstall a package containing config files, any unchanged files will be removed and any changed files will get moved to their old name with a .rpmsave appended to the filename. You can list multiple files with this macro as well.</li>
<li>%dir marks a single directory in a file list to be included as being owned by a package. By default, if you list a directory name <em>WITHOUT</em> a %dir macro, <em>EVERYTHING</em> in that directory is included in the file list and later installed as part of that package.</li>
<li>%defattr allows you to set default attributes for files listed after the defattr declaration. The attributes are listed in the form <em>(mode, owner, group)</em> where the mode is the octal number representing the bit pattern for the new permissions (like <strong>chmod</strong> would use), owner is the username of the owner, and group is the group you would like assigned. You may leave any field to the installed default by simply placing a <em>&#8211;</em> in its place, as was done in the mode field for the example package.</li>
<li>%files -f &lt;filename&gt; will allow you to list your files in some arbitrary file within the build directory of the sources. This is nice in cases where you have a package that can build it&#8217;s own filelist. You then just include that filelist here and you don&#8217;t have to specifically list the files.</li>
</ul>
<p>The <em>biggest caveat</em> in the file list is listing directories. If you list /usr/bin by accident, your binary package will contain <em>every</em> file in /usr/bin on your system.</p>
<h1><a id="BUILD-IT" name="BUILD-IT"></a>Building It</h1>
<h2>The Source Directory Tree</h2>
<p>The first thing you need is a properly configured build tree. This is configurable using the /etc/rpmrc file. Most people will just use /usr/src.<br />
You may need to create the following directories to make a build tree:</p>
<ul>
<li>BUILD is the directory where all building occurs by RPM. You don&#8217;t have to do your test building anywhere in particular, but this is where RPM will do it&#8217;s building.</li>
<li>SOURCES is the directory where you should put your original source tar files and your patches. This is where RPM will look by default.</li>
<li>SPECS is the directory where all spec files should go.</li>
<li>RPMS is where RPM will put all binary RPMs when built.</li>
<li><a id="SOURCE-TREE" name="SOURCE-TREE"></a>SRPMS is where all source RPMs will be put.</li>
</ul>
<h2><a id="BUILD-PKG" name="BUILD-PKG"></a>Building the Package with RPM</h2>
<p>nce you have a spec file, you are ready to try and build your package. The most useful way to do it is with a command like the following:</p>
<table border="0" width="100%" cellpadding="0">
<tbody>
<tr>
<td>rpm -ba foobar-1.0.spec</td>
</tr>
</tbody>
</table>
<p>There are other options useful with the <em>-b</em> switch as well:</p>
<ul>
<li><em>p</em> means just run the prep section of the specfile.</li>
<li><em>l</em> is a list check that does some checks on %files.</li>
<li><em>c</em> do a prep and compile. This is useful when you are unsure of whether your source will build at all. It seems useless because you might want to just keep playing with the source itself until it builds and then start using RPM, but once you become accustomed to using RPM you will find instances when you will use it.</li>
<li><em>i</em>do a prep, compile, and install.</li>
<li><em>b</em> prep, compile, install, and build a binary package only.</li>
<li><em>a</em>build it all (both source and binary packages).</li>
</ul>
<p>There are several modifiers to the <em>-b</em> switch. They are as follows:</p>
<ul>
<li><em>&#8211;short-circuit</em> will skip straight to a specified stage (can only be used with c and i).</li>
<li><em>&#8211;clean</em> removes the build tree when done.</li>
<li><em>&#8211;keep-temps</em> will keep all the temp files and scripts that were made in /tmp. You can actually see what files were created in /tmp using the <em>-v</em> option.</li>
<li><em>&#8211;test</em> does not execute any real stages, but does keep-temp.</li>
</ul>
<p><strong>Reference:</strong><br />
<a href="http://www.ibiblio.org/pub/linux/docs/HOWTO/other-formats/html_single/RPM-HOWTO.html">http://www.ibiblio.org/pub/linux/docs/HOWTO/other-formats/html_single/RPM-HOWTO.html</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/basic-rpm-tutorials/">Basic RPM Tutorials</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/basic-rpm-tutorials/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Steps for a complete clean build</title>
		<link>https://www.scmgalaxy.com/tutorials/steps-for-a-complete-clean-build/</link>
					<comments>https://www.scmgalaxy.com/tutorials/steps-for-a-complete-clean-build/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 08 Jan 2018 07:36:29 +0000</pubDate>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Clean build]]></category>
		<category><![CDATA[Clean build process]]></category>
		<category><![CDATA[Complete clean build Steps]]></category>
		<category><![CDATA[Steps]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4491</guid>

					<description><![CDATA[<p>Following are the steps for a complete clean build: 1. Build project (compilation)—In the build phase, the build system compiles [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/steps-for-a-complete-clean-build/">Steps for a complete clean build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Following are the steps for a complete clean build:</strong></p>
<p><a id="app01pro01" name="app01pro01"></a></p>
<table border="0">
<tbody>
<tr>
<td valign="top">
<div><strong>1.</strong></div>
</td>
<td>
<div>Build project (compilation)—In the build phase, the build system compiles operating system (OS) component source files and produces libraries. The basic unit of componentization in Windows CE is the library—components are not conditionally compiled. Because of this, components can be mixed and matched without worrying about changes in their behavior.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>2.</strong></div>
</td>
<td>
<div>Link project—During the link phase, the build system attempts to build all target modules. Modules are drivers and executables produced from Windows CE components. In CE 4.0 and later, you can select modules via sysgen environment variables. For example, the &#8220;common&#8221; project&#8217;s modules are listed in CE_MODULES, the DirectX project&#8217;s modules are listed in DIRECTX_MODULES, Internet Explorer&#8217;s modules are listed in IE_MODULES, and so on.</p>
<p>Microsoft introduced the separation of the build phase and the link phase in Windows CE .NET. Because the operating system was getting more and more complex, linking drivers and other components during the build phase could possibly cause hard-to-diagnose crashes at runtime because coredll entry points that were present during the build phase (which occurs prior to componentization) might not be present in an OEM&#8217;s final platform.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>3.</strong></div>
</td>
<td>
<div>Copy/filter project (headers and libraries)—The Copy/Filter phase of system generation is responsible for moving parts of the operating system to the target project&#8217;s cesysgen directory. Note: only the components of the OS that the OEM has selected are moved. In addition, header files and various configuration files such as common.bib and common.reg are &#8220;filtered&#8221; to remove the parts that are unrelated to the OEM&#8217;s selected components. The copy/filter is performed at the same time as linking.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>4.</strong></div>
</td>
<td>
<div><a id="iddle1277" name="iddle1277"></a><a id="iddle1817" name="iddle1817"></a>Post-process project (miscellaneous post-sysgen cleanup)—The &#8220;postproc&#8221; sysgen target provides the build system with a mechanism to do some work after most of the system has been generated. Although the post-process phase is important for the small number of OEMs who use it, most developers don&#8217;t do much with it.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>5.</strong></div>
</td>
<td>
<div>Platform sysgen—If an OEM wants to write his platform in such a way that it can be used with any selection of OS components, he immediately runs into a problem. Some of the drivers, Control Panel applets, or applications in the platform directory might depend on unselected components. When these source files are built, there are compilation or linker errors because header files or coredll entry points are missing.</p>
<p>The platform sysgen step helps address this problem by checking for a platform sysgen makefile.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>6.</strong></div>
</td>
<td>
<div>Build platform—This phase consists of running a clean build on all projects and building only the projects that sysgen settings specify.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>7.</strong></div>
</td>
<td>
<div>Create release directory—After all the OS components and the platform have been compiled and linked, you need to assemble all the appropriate binaries and configuration files into one place so that you can combine them into a downloadable image. You can use a batch file to perform this step.</p>
</div>
</td>
</tr>
<tr>
<td valign="top">
<div><strong>8.</strong></div>
</td>
<td>
<div>Create downloadable image—After you populate the release directory with the appropriate binaries, the next step is to create a binary file that is suitable for flashing or downloading to your device&#8217;s RAM. Use the makeimg command for this step.</div>
</td>
</tr>
</tbody>
</table>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/steps-for-a-complete-clean-build/">Steps for a complete clean build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/steps-for-a-complete-clean-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Hardware for The Build Lab</title>
		<link>https://www.scmgalaxy.com/tutorials/hardware-for-the-build-lab/</link>
					<comments>https://www.scmgalaxy.com/tutorials/hardware-for-the-build-lab/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:33:22 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build lab machines]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Hardware for The Build Lab]]></category>
		<category><![CDATA[Hardware Requirements]]></category>
		<category><![CDATA[Requirements]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4478</guid>

					<description><![CDATA[<p>The build lab should include some high-end hardware for building the applications. Because the entire team depends on the results [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/hardware-for-the-build-lab/">Hardware for The Build Lab</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The build lab should include some high-end hardware for building the applications. Because the entire team depends on the results of a build, the high-end computers ensure that the build is completed as quickly as possible. Furthermore, you can use high-speed network equipment to push bits around from source control to build machines to release servers.</p>
<p>At a minimum, the build lab should have four machines:</p>
<ul>
<li>Server that contains the Source Code Control program— This is your product. Do you really want this server residing someplace where you have little control over this box?</li>
<li>Debug build machine for the mainline builds— If you don&#8217;t separate your debug and release machines, you will accidentally ship debug binaries, which is not a good thing.</li>
<li>Release build machine for the mainline builds— This is a &#8220;golden goose&#8221; that turns out the &#8220;gold eggs&#8221; of your company or group. Treasure this machine like a princess, and guard it like all the king&#8217;s fortunes.</li>
<li>Internal release share server— This is one more piece of hardware that stores the &#8220;bread and butter&#8221; of the group or company. Don&#8217;t give up control of this hardware to anyone unless your IT department reports through your development group.</li>
</ul>
<h4>Hardware Requirements</h4>
<p>Each machine in the preceding list should meet the following requirements:</p>
<ul>
<li><strong>Number of processors</strong>— This depends on the build tool you use. One is usually sufficient, because few build tools really take advantage of multiple processors.</li>
<li><strong>Processor speed</strong>— The lab budget dictates this, but the faster the processor, the better it is.</li>
<li><strong>Amount of installed RAM</strong>— Max out the machine. RAM is relatively cheap these days, especially when you consider the performance increase you get. Increasing the RAM is usually the first upgrade done when trying to improve the performance of any computer.</li>
<li><strong>Number of hard drives</strong>— A minimum of two drives (or partitions) is preferred:
<ul>
<li>Drive 1 (C:) is for the operating system and installed applications.</li>
<li>Drive 2 (D:) is for building binaries, release shares, or the source database; the minimum space required is roughly ten times the space needed to build your application.</li>
<li>The split partitions are good because if you ever need to format or blow away a drive due to corruption, only part of the project will be affected. The recovery is much faster and easier.</li>
</ul>
</li>
<li><strong>Hard drive type</strong>— This is most likely SCSI, but it could be IDE.</li>
<li><strong>Number of power supplies</strong>— If you purchase server class hardware (pizza boxes) that belong in racks, you need to consider how many power supplies to order.</li>
<li><strong>Motherboard BIOS version</strong>— This does make a difference. Make sure you note what is being used and standardize on it.</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/hardware-for-the-build-lab/">Hardware for The Build Lab</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/hardware-for-the-build-lab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>XML Is the Here, the Now, and the Future</title>
		<link>https://www.scmgalaxy.com/tutorials/xml-is-the-here-the-now-and-the-future/</link>
					<comments>https://www.scmgalaxy.com/tutorials/xml-is-the-here-the-now-and-the-future/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:31:05 +0000</pubDate>
				<category><![CDATA[Concept & Definition]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Future]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[Why XML]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[XML Features]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4476</guid>

					<description><![CDATA[<p>XML Is the Here, the Now, and the Future XML is short for Extensible Markup Language, which is a specification [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/xml-is-the-here-the-now-and-the-future/">XML Is the Here, the Now, and the Future</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>XML Is the Here, the Now, and the Future</h3>
<p>XML is short for Extensible Markup Language, which is a specification developed by the World Wide Web Consortium (W3C). XML is a pared-down version of SGML, designed especially for Web documents. It allows designers to create their own customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations.</p>
<p>Following are three good reasons why you should master XML:</p>
<ul>
<li>XML is seen as a universal, open, readable representation for software integration and data exchange. IBM, Microsoft, Oracle, and Sun have built XML into database authoring.</li>
<li>.NET and J2EE (Java 2 Platform, Enterprise Edition) depend heavily on XML.
<ul>
<li>All ASP.NET configuration files are based on XML.</li>
<li>XML provides serialization or deserialization, sending objects across a network in an understandable format.</li>
<li>XML offers SOAP Web Services communication.</li>
<li>XML offers temporary data storage.</li>
</ul>
</li>
<li>MSBuild and the future project files of Visual Studio will be in XML format. ANT is also XML based.</li>
</ul>
<p>Thus, if you want to learn one language that will cover many tools and technologies no matter what platform you are working on, that language is XML. The main difference in all these build tools is not so much the feature set but the syntax. I get tired of learning all the quirks of new languages, but I&#8217;m happy to learn XML because it&#8217;s here to stay and it&#8217;s fairly easy to learn.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/xml-is-the-here-the-now-and-the-future/">XML Is the Here, the Now, and the Future</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/xml-is-the-here-the-now-and-the-future/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Important Configuration Definitions</title>
		<link>https://www.scmgalaxy.com/tutorials/important-configuration-definitions/</link>
					<comments>https://www.scmgalaxy.com/tutorials/important-configuration-definitions/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:24:24 +0000</pubDate>
				<category><![CDATA[Concept & Definition]]></category>
		<category><![CDATA[Branching]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Codeline]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Configuration Definitions]]></category>
		<category><![CDATA[Milestone]]></category>
		<category><![CDATA[Private build]]></category>
		<category><![CDATA[Snapshot]]></category>
		<category><![CDATA[source code]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4472</guid>

					<description><![CDATA[<p>Source code— Files written in high-level languages such as C# that need to be compiled (for example, foo.cs). Source(s)— All [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/important-configuration-definitions/">Important Configuration Definitions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<ul>
<li><strong>Source code</strong>— Files written in high-level languages such as C# that need to be compiled (for example, foo.cs).</li>
<li><strong>Source(s)</strong>— All the files involved in building a product (for example, C, CPP, VB, DOC, HTM, H, and CS). This term is used mostly as a catch-all phrase that is specific not only to source code files but to all the files that are stored in version tracking systems.</li>
<li><strong>Codeline</strong>— A tree or branch of code that has a specific purpose, such as the mainline, release line, or hotfix line that grows collectively.</li>
<li><strong>Mainline or trunk </strong>(&#8220;The Golden Tree&#8221;)— <a id="iddle1037" name="iddle1037"></a><a id="iddle1107" name="iddle1107"></a><a id="iddle1252" name="iddle1252"></a><a id="iddle1266" name="iddle1266"></a><a id="iddle1365" name="iddle1365"></a><a id="iddle1424" name="iddle1424"></a><a id="iddle1503" name="iddle1503"></a><a id="iddle1526" name="iddle1526"></a><a id="iddle1570" name="iddle1570"></a><a id="iddle1624" name="iddle1624"></a><a id="iddle1744" name="iddle1744"></a>The main codeline of the product that contains the entire source code, document files, and anything else necessary to build and release the complete product.</li>
<li><strong>Snapshot</strong>— A specific point in time in which the sources and build are captured and stored, usually on a release or build machine.</li>
<li><strong>Milestone</strong>— A measurement of work items that includes a specified number of deliverables for a given project scheduled for a specified amount of time that are delivered, reviewed, and fixed to meet a high quality bar. The purpose of a milestone is to understand what is done, what is left to do, and how that fits with the given schedule and resources. To do this, the team must complete a portion of the project and review it to understand where the project is in the schedule and to reconcile what is not done with the rest of the schedule. A milestone is the best way to know how much time a portion of the project will take.</li>
<li><strong>Code freeze</strong>— A period when the automatic updates and build processes are stopped to take the final check-ins at a milestone.</li>
<li><strong>Public build</strong>— A build using the sources from the mainline or trunk.</li>
<li><strong>Private build </strong>(also referred to as a sandbox build)— A build using a project component tree to build more specific pieces of the product. This is usually done prior to checking in the code to the mainline.</li>
<li><strong>Branching</strong>— A superset of files off the mainline taken at a certain time (snapshot) that contains new developments for hotfixes or new versions. Each branch continues to grow independently or dependently on the mainline.</li>
<li><strong>Forking</strong>— Cloning a source tree to allow controlled changes on one tree while allowing the other tree to grow at its own rate. The difference between forking and branching is that forking involves two trees, whereas branching involves just one. It is also important to note that forking or cloning makes a copy (snapshot) of the tree and does not share the history between the two trees, whereas branching does share the history.</li>
<li><strong>Virtual Build Labs (VBLs)</strong>— A Virtual Build Lab is a build lab that is owned by a specific component or project team. The owner is responsible for propagating and integrating his code into the mainline or public build. Each VBL performs full builds and installable releases from the code in its source lines and the mainline. Although <a id="iddle1005" name="iddle1005"></a><a id="iddle1021" name="iddle1021"></a><a id="iddle1035" name="iddle1035"></a><a id="iddle1239" name="iddle1239"></a><a id="iddle1253" name="iddle1253"></a><a id="iddle1559" name="iddle1559"></a><a id="iddle1561" name="iddle1561"></a><a id="iddle1582" name="iddle1582"></a><a id="iddle1640" name="iddle1640"></a><a id="iddle1835" name="iddle1835"></a>the term virtual is used in the name of the labs, don&#8217;t confuse it with Virtual PC or Virtual Machines because the labs are real physical rooms and computer boxes. It is not recommended that you use Virtual software for build machines except possibly for an occasional one-off or hotfix build. , &#8220;The Build Lab and Personnel.&#8221; There is usually a hierarchy of VBLs so that code &#8220;rolls up&#8221; to the mainline or trunk. For example, let&#8217;s say that you have a mainline, Project A is a branch off of the mainline, and Developer 1 has a branch off the project branch. Developer 1 has several branches off his branch, with each branch representing a different component of the product. If he wants to integrate one of his branches into main, he should first merge his changes with all the levels above the branch to make sure he gets all the changes. Alternatively, he can just roll the changes into main, which sits higher in the hierarchy. This will become clearer in the next couple of pages.</li>
<li><strong>Reverse integration (RI)</strong>— The process of moving sources from one branch or tree to another that is higher in the VBL hierarchy.</li>
<li><strong>Forward integration (FI)</strong>— The process of moving sources from one branch or tree to another that is lower in the VBL hierarchy.</li>
<li><strong>Buddy build</strong>— A build performed on a machine other than the machine that the developer originally made changes on. This is done to validate the list of changed files so that there are no unintended consequences to the change in the mainline build.</li>
</ul>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/important-configuration-definitions/">Important Configuration Definitions</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/important-configuration-definitions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Types of Builds: Developers and Project</title>
		<link>https://www.scmgalaxy.com/tutorials/types-of-builds-developers-and-project/</link>
					<comments>https://www.scmgalaxy.com/tutorials/types-of-builds-developers-and-project/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:10:56 +0000</pubDate>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[types of builds]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4468</guid>

					<description><![CDATA[<p>I like to say that there are really only two types of builds: ones that work and ones that don&#8217;t. [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/types-of-builds-developers-and-project/">Types of Builds: Developers and Project</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I like to say that there are really only two types of builds: ones that work and ones that don&#8217;t. Seriously, though, when you&#8217;re shipping a product, you should consider these two different types of builds:</p>
<ul>
<li>Developers&#8217; (local machine builds)— These types of builds often happen within an editor such as Visual Studio, Emaqs, Slick, or VI. Usually, this is a fast compile/link of code that the developer is currently working on.</li>
<li>Project (central build process)— <a id="iddle1089" name="iddle1089"></a><a id="iddle1686" name="iddle1686"></a>This type of build typically involves several components of an application, product, or a large project, such as Windows, or in some cases several projects included in a product, such as Microsoft Office.</li>
</ul>
<p>The developer&#8217;s build process should be optimized for speed, but the project build process should be optimized for debugging and releases. I am talking about optimizing the process, not compiler or linker optimization switches. Although speed and debugging are important to everyone who is writing code, you must design a project build process to track build breaks and the offender(s) as quickly as possible because numerous people are waiting for a build to be released. For a developer, what seems to be most important is clicking some type of Build and Run button to make sure the code compiles without errors and then checking it in. For the build team, building without errors and having the ability to track down the person who broke the build is the most important thing.</p>
<p>&nbsp;</p>
<p><strong>Reference: </strong><strong>The Build Master: Microsoft&#8217;s Software Configuration Management Best Practices</strong></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/types-of-builds-developers-and-project/">Types of Builds: Developers and Project</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/types-of-builds-developers-and-project/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The Importance of a Successful Daily Build</title>
		<link>https://www.scmgalaxy.com/tutorials/the-importance-of-a-successful-daily-build/</link>
					<comments>https://www.scmgalaxy.com/tutorials/the-importance-of-a-successful-daily-build/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 06 Jan 2018 10:08:43 +0000</pubDate>
				<category><![CDATA[Build Management]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Daily Build]]></category>
		<category><![CDATA[Importance]]></category>
		<category><![CDATA[Importance of Daily Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=4466</guid>

					<description><![CDATA[<p>Former Microsoft Visual Studio Product Manager Jim McCarthy used to say, &#8220;Successful daily builds are the heartbeat of a software [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-importance-of-a-successful-daily-build/">The Importance of a Successful Daily Build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Former Microsoft Visual Studio Product Manager Jim McCarthy used to say, &#8220;Successful daily builds are the heartbeat of a software project. If you do not have successful daily builds, then you have no heartbeat, and your project is dead!&#8221;</p>
<p>Daily builds also mark the progress being made and can indicate when a project is struggling. In addition, having a daily build can keep the programmers in &#8220;ship mode&#8221;—the attitude that the product could ship with the complete features on any given day.</p>
<p>A better metaphor is that the build is your product assembly line. If your assembly line is not moving or broken, your business is hurting, because you cannot turn out a product. Look at what Henry Ford did with his assembly line. Ford did not invent the car; he just perfected the way it was manufactured with the assembly line. I think the same holds true for software: By having a good build process, your company will be more efficient, successful, and profitable, and your employees will be happier.</p>
<p><a id="ch03lev2sec1" name="ch03lev2sec1"></a></p>
<h4>How to Successfully Release Builds and Police Build Breaks</h4>
<p>really like the Pottery Barn rule that was misquoted by Senator John Kerry in the second Presidential debate in September 2004. Kerry said that Colin Powell &#8220;told President Bush the Pottery Barn rule: If you break it, you fix it.&#8221; The anecdote comes from Bob Woodward&#8217;s book Plan of Attack, but Woodward actually reported that Powell privately talked with aides about the rule: &#8220;You break it, you own it.&#8221; He did not say this to the President, and it actually turns out that Pottery Barn has no such rule. Still, I think every build lab needs a poster with this rule regardless of who said it.</p>
<p>This leads to one of the most important rules in the build lab: The build team never fixes build breaks, regardless of how trivial the break is. That&#8217;s the developer&#8217;s responsibility. We took this a step further: The developer who breaks the build has to go to his development machine, check out the file, fix it, and then go through all the check-in process steps again.</p>
<h5>Build Breaks Always Have the Highest Priority for Everyone</h5>
<p>This rule means that if you are a developer and you can fix the build break, and the developer who broke the build cannot be found, you should fix it immediately. Afterward, send an e-mail to the developer and the build team explaining what you did to fix the build, and remind your co-worker that he owes you a favor.</p>
<p>Chris Peters, a former Microsoft vice president in the systems and applications group, used to say that people have to remember that the reason everyone works here is to ship software. That means everyone: development, testing, product support, vice presidents, administrators, and so on. If you are not moving toward a direction of shipping a product every day, you need to talk to your manager and figure out what you are supposed to be doing. Helping fix build breaks or not breaking the build in the first place is a good way to help, but don&#8217;t forget the Pottery Barn rule!</p>
<p>At Microsoft, developers understood that when they joined the Windows NT group, the following chain reaction would occur if they broke the build:</p>
<div>
<ol>
<li>
<div>
<p>We would try to call the developer at his office.</p>
</div>
</li>
<li>
<div>
<p>If the developer did not pick up, we would call his manager and continue up the organizational ladder until we found someone who could fix the break or at least point us to someone who might be able to resolve it.</p>
</div>
</li>
<li>
<div>
<p>We would call the developer at home if it was past the 9 AM to 6 PM working hours.</p>
</div>
</li>
</ol>
</div>
<p>To follow this track, it is important to keep a list of developers&#8217; home telephone numbers in the build lab or make them easily accessible to everyone who is working on a project. This list is especially helpful for build breaks that occur late at night or early in the morning. With the increasing number of people working from home, this list is even more important today than it was 10 years ago.</p>
<p>Another way to discourage developers from breaking the build is to establish a build fine or penalty. The build fine example in the following sidenote worked well in the NT group for a couple of years.</p>
<p>However, don&#8217;t execute the penalty by having the engineer who broke the build run the next one. Several companies try that approach, but this is another one of those &#8220;good in theory, bad in practice&#8221; deals. What usually happens is that you end up pulling a good developer off a project until some unfortunate developer breaks the build, and then you pull that person off until&#8230; you get the picture. If you entered this unknown factor into your project manager&#8217;s Gantt chart, you would see how this can mess up the development line and build progress. It really is easier and cheaper to hire a full-time builder.</p>
<p>&nbsp;</p>
<p><strong>Reference: </strong><strong>The Build Master: Microsoft&#8217;s Software Configuration Management Best Practices</strong></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/the-importance-of-a-successful-daily-build/">The Importance of a Successful Daily Build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/the-importance-of-a-successful-daily-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Build Archive Policy</title>
		<link>https://www.scmgalaxy.com/tutorials/build-archive-policy/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-archive-policy/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 07 Dec 2017 12:12:43 +0000</pubDate>
				<category><![CDATA[Other build Tools]]></category>
		<category><![CDATA[Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=2168</guid>

					<description><![CDATA[<p>sgoldstein created the topic: Build Archive Policy I wanted to get some input from the SCM community regarding build archiving. [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-archive-policy/">Build Archive Policy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>sgoldstein created the topic: Build Archive Policy</strong><br />
I wanted to get some input from the SCM community regarding build archiving. When using either a CI or nightly build approach, a number of builds are generated during a release. How do people generally define a retention policy for retaining builds on disk? Once the retention policy dictates that a build should be removed from disk, what happens to it? Do people back it up to tape or some other media? Do people simply delete it entirely?</p>
<p>I ask because there are situations in which, for example, a bug is filed against a particular build and the dev team may want to go back an investigate. Typically, we&#8217;ve been archiving to tape, but it&#8217;s very time consuming and I don&#8217;t feel that the value is outweighing the cost.</p>
<p>Thanks.</p>
<p><strong>rajeshkumar replied the topic: Re:Build Archive Policy</strong><br />
It’s all about process you follow and what release cycle you have..Dev team doesn’t need to refer old build until some milestone has been achieved as part of build. So as a Build engineer you need to know all the milestone achieved and which build CI# and revision number.<br />
you can write a script which will store a information about revision number associated with the build and Build number, this number can be referenced in the future to get same build using CI tools<br />
Scenario two: here I do follow some process. Like</p>
<p>I always clean up incremental build.</p>
<p>I do escrow audit after any patch, major or minor release.</p>
<p>Base line after any milestone met and documentation</p>
<p>Keep more than one year build only when if its matching with some milestone<br />
Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-archive-policy/">Build Archive Policy</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-archive-policy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Build step &#8216;Execute shell&#8217; marked build as failure</title>
		<link>https://www.scmgalaxy.com/tutorials/build-step-execute-shell-marked-build-as-failure/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-step-execute-shell-marked-build-as-failure/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 07 Dec 2017 09:52:05 +0000</pubDate>
				<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=2074</guid>

					<description><![CDATA[<p>scmuser created the topic: Build step &#8216;Execute shell&#8217; marked build as failure Build step &#8216;Execute shell&#8217; marked build as failure [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-step-execute-shell-marked-build-as-failure/">Build step &#8216;Execute shell&#8217; marked build as failure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>scmuser created the topic: Build step &#8216;Execute shell&#8217; marked build as failure</strong><br />
Build step &#8216;Execute shell&#8217; marked build as failure</p>
<p>How to resolve this issues? I am building this in slave?</p>
<p>[QA-QBO-Square-e2e-regression] $ /bin/sh -xe /tmp/hudson2656830909630025820.sh<br />
+ cat<br />
/tmp/hudson2656830909630025820.sh: 2: /tmp/hudson2656830909630025820.sh: cat: not found<br />
Build step &#8216;Execute shell&#8217; marked build as failure</p>
<p><strong>mastinder@gmail.com replied the topic: Build step &#8216;Execute shell&#8217; marked build as failure</strong><br />
Hi,</p>
<p>use -li option at the end of shebang and it should work</p>
<p>#!/bin/zsh -li<br />
set -xv<br />
ear_path=/cygdrive/e/mas2/maven/repository/ie/aib/ems/masii-ear</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-step-execute-shell-marked-build-as-failure/">Build step &#8216;Execute shell&#8217; marked build as failure</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-step-execute-shell-marked-build-as-failure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Modified files after each build</title>
		<link>https://www.scmgalaxy.com/tutorials/modified-files-after-each-build/</link>
					<comments>https://www.scmgalaxy.com/tutorials/modified-files-after-each-build/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Thu, 07 Dec 2017 06:56:23 +0000</pubDate>
				<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=1979</guid>

					<description><![CDATA[<p>setu.sin created the topic: Modified files after each build Hi All, I need to send the modified files to an [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/modified-files-after-each-build/">Modified files after each build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>setu.sin created the topic: Modified files after each build</strong><br />
Hi All,</p>
<p>I need to send the modified files to an external API after each build in jenkins. I can see the recently changed files in jenkins that pulls from git commit but can you please tell me where it is stored so that i can use that to push the info to another release management tool we have.</p>
<p>Thanks</p>
<p><strong>rajeshkumar replied the topic: Modified files after each build</strong><br />
Question is not very much clear or you are lacking in understanding of How git works? When you say modified file, means the modification is being done in jenkins workspace as part of build process or Latest changes which was checked out by Jenkins from git??? Need to elaborate more the scnario<br />
Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p><strong>setu.sin replied the topic: Modified files after each build</strong><br />
Hi Rajesh,</p>
<p>With each build, there are some code changes checked into git. After i run a build, i get the list of those code changes by clicking on recent changes which shows the commits that were performed prior to this build. I need to display this change on another tool so I am trying to understand where these changeset it stored so that i can pass it as a string to the release management tool API.</p>
<p>Thanks</p>
<p><strong>rajeshkumar replied the topic: Modified files after each build</strong><br />
Jenkins store the last checked out code. Post build, jenkins &#8220;Recent Changes&#8221; section with the help of git plugins display the output of</p>
<p>git log [first]..[second] &#8211;pretty=oneline</p>
<p>[first] and [second] can be SHA’s, branches or tags.<br />
Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p><strong>rajeshkumar replied the topic: Modified files after each build</strong><br />
Jenkins store the last checked out code. Post build, jenkins &#8220;Recent Changes&#8221; section with the help of git plugins display the output of</p>
<p>git log [first]..[second] &#8211;pretty=oneline</p>
<p>[first] and [second] can be SHA’s, branches or tags.<br />
Regards,<br />
Rajesh Kumar<br />
Twitt me @ <a href="http://twitter.com/RajeshKumarIn">twitter.com/RajeshKumarIn</a></p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/modified-files-after-each-build/">Modified files after each build</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/modified-files-after-each-build/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Build WixUtilExtension.dll</title>
		<link>https://www.scmgalaxy.com/tutorials/build-wixutilextension-dll/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-wixutilextension-dll/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Mon, 04 Dec 2017 05:46:31 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=1245</guid>

					<description><![CDATA[<p>applicationPackaging created the topic: Build WixUtilExtension.dll I want to build WixUtilExtension.dll from wix sources. So first i tried to build [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-wixutilextension-dll/">Build WixUtilExtension.dll</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>applicationPackaging created the topic: Build WixUtilExtension.dll</strong><br />
I want to build WixUtilExtension.dll from wix sources.<br />
So first i tried to build util.wixlib , but that has references to caerr.wxi, wixca.dll and other files.<br />
Not , I am trying to build wixca.dll from wix sources. But haven&#8217;t been able to do so yet. I did go through this blog, but this was not of much help to me.</p>
<p><a href="http://neilsleightholm.blogspot.com/search?q=build+wix">neilsleightholm.blogspot.com/search?q=build+wix </a></p>
<p>If someone could give me some pointers.<br />
I want to be able to build it through Visual Studio and not using Nant.<br />
Also if someone could tell me the dependencies of wixca.(one of them is wixcautil ).<br />
Any help would be useful.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-wixutilextension-dll/">Build WixUtilExtension.dll</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-wixutilextension-dll/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Moving build system from one machine to another.</title>
		<link>https://www.scmgalaxy.com/tutorials/moving-build-system-from-one-machine-to-another/</link>
					<comments>https://www.scmgalaxy.com/tutorials/moving-build-system-from-one-machine-to-another/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Sat, 02 Dec 2017 06:39:15 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Build]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/?p=953</guid>

					<description><![CDATA[<p>msiexpert created the topic: Moving build system from one machine to another. Till now we were building our software on [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/moving-build-system-from-one-machine-to-another/">Moving build system from one machine to another.</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>msiexpert created the topic: Moving build system from one machine to another.</strong><br />
Till now we were building our software on a development build machine.We need to move it to a production build machine.We have bought a studio version of InstallAware 9.Will we have any problems with licensing if uninstall the InstallAware from dev setup and install it on production setup? Please help.</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/moving-build-system-from-one-machine-to-another/">Moving build system from one machine to another.</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/moving-build-system-from-one-machine-to-another/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to build when a change is pushed to Bitbucket</title>
		<link>https://www.scmgalaxy.com/tutorials/build-when-a-change-is-pushed-to-bitbucket/</link>
					<comments>https://www.scmgalaxy.com/tutorials/build-when-a-change-is-pushed-to-bitbucket/#comments</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 01 Aug 2017 18:10:46 +0000</pubDate>
				<category><![CDATA[Source Code Management]]></category>
		<category><![CDATA[Bitbucket]]></category>
		<category><![CDATA[Bitbucket Tutorial]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Change]]></category>
		<category><![CDATA[How]]></category>
		<category><![CDATA[Push]]></category>
		<category><![CDATA[Tutorial]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/08/01/build-when-a-change-is-pushed-to-bitbucket/</guid>

					<description><![CDATA[<p>&#160; Bitbucket plugin is designed to offer integration between Bitbucket and Jenkins. &#160; It exposes a single URI endpoint that [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-when-a-change-is-pushed-to-bitbucket/">How to build when a change is pushed to Bitbucket</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img decoding="async" class="size-full wp-image-2716 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/08/bitbucket-tutorials.png" alt="bitbucket-tutorials" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/08/bitbucket-tutorials.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/08/bitbucket-tutorials-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></div>
<div></div>
<p>&nbsp;</p>
<div>Bitbucket plugin is designed to offer integration between Bitbucket and Jenkins.</div>
<div></div>
<p>&nbsp;</p>
<div>It exposes a single URI endpoint that you can add as a WebHook within each Bitbucket project you wish to integrate with. This single endpoint receives a full data payload from Bitbucket upon push (see their documentation), triggering compatible jobs to build based on changed repository/branch.</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Step 1 &#8211;</strong> Install &#8220;Bitbucket Plugin&#8221; at your Jenkins</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Step 2 &#8211;</strong> Add a normal Post as Hook to your Bitbucket repository (Settings -&gt; Hooks) and use following url:</div>
<p>&nbsp;</p>
<div>https://YOUR.JENKINS.SERVER:PORT/bitbucket-hook/</div>
<div>and if you have setup authentication on jenkins then URL must be like</div>
<div></div>
<p>&nbsp;</p>
<div>https://USERNAME:PASSWORD@YOUR.JENKINS.SERVER:PORT/bitbucket-hook/</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Step 3 &#8211;</strong> Configure your Jenkins project as follows:</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Step 4 &#8211;</strong> Under build trigger enable Build when a change is pushed to BitBucket</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Step 5 &#8211;</strong> under Source Code Management select GIT; enter your credentials and define Branches to build (like **feature/*)</div>
<div></div>
<p>&nbsp;</p>
<div><strong>Note 1 &#8211;</strong> Make sure to include the slash (&#8216;/&#8217;) on the end of the URL or the hook won&#8217;t work.</div>
<p>&nbsp;</p>
<div></div>
<div><strong>Note 2 &#8211;</strong> Please read the BitBucket Plugin info page as well <a href="https://wiki.jenkins.io/display/JENKINS/BitBucket+Plugin" target="_blank" rel="noopener">https://wiki.jenkins.io/display/JENKINS/BitBucket+Plugin</a></div>
<div></div>
<p>&nbsp;</p>
<div><strong>Reference 1  </strong></div>
<div><a href="https://confluence.atlassian.com/bamboo/repository-triggers-the-build-when-changes-are-committed-289276902.html" target="_blank" rel="noopener">https://confluence.atlassian.com/bamboo/repository-triggers-the-build-when-changes-are-committed-289276902.html</a></div>
<div></div>
<div><strong>Reference 2 &#8211; Login issues with Jenkins url</strong></div>
<div><a href="https://www.scmgalaxy.com/tutorials/how-to-trigger-builds-remotely-in-jenkins">https://www.scmgalaxy.com/tutorials/how-to-trigger-builds-remotely-in-jenkins</a></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/build-when-a-change-is-pushed-to-bitbucket/">How to build when a change is pushed to Bitbucket</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/build-when-a-change-is-pushed-to-bitbucket/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Top 5 Build Management Tools</title>
		<link>https://www.scmgalaxy.com/tutorials/top-5-build-management-tool/</link>
					<comments>https://www.scmgalaxy.com/tutorials/top-5-build-management-tool/#respond</comments>
		
		<dc:creator><![CDATA[scmgalaxy K]]></dc:creator>
		<pubDate>Tue, 02 May 2017 21:58:14 +0000</pubDate>
				<category><![CDATA[Build Management & Tools]]></category>
		<category><![CDATA[Apache Ant]]></category>
		<category><![CDATA[Apache Maven]]></category>
		<category><![CDATA[Best]]></category>
		<category><![CDATA[Build]]></category>
		<category><![CDATA[Build management]]></category>
		<category><![CDATA[Build Management Tool]]></category>
		<category><![CDATA[Devops]]></category>
		<category><![CDATA[FinalBuilder]]></category>
		<category><![CDATA[Gradle]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[MSBuild]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Top]]></category>
		<category><![CDATA[What]]></category>
		<guid isPermaLink="false">http://www.scmgalaxy.com/tutorials/2017/05/02/top-5-build-management-tool/</guid>

					<description><![CDATA[<p>These days in software industry the process of software development very much rely upon best practices of various tools. The [&#8230;]</p>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-5-build-management-tool/">Top 5 Build Management Tools</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div><img decoding="async" class="size-full wp-image-2900 aligncenter" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/top-5-build-management-tool.png" alt="top-5-build-management-tools" width="600" height="400" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/top-5-build-management-tool.png 600w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/top-5-build-management-tool-300x200.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></div>
<div></div>
<div>These days in software industry the process of software development very much rely upon best practices of various tools. The software development teams use various tools like project management, release management , test management and various others. As we already discussed about these tools in our previous posts. But, today we are going to discuss about Build management tool. This is one of the most important tool which required in any kind of software development. In this article we are going to discuss about Top Build Management Tools.</div>
<div></div>
<div><strong>But before that let&#8217;s have a quick overview on Build management.</strong></div>
<div></div>
<div>Build management is actually a process of collecting all the components in a software release, performing all the automated tasks to compile, build and test the system and then deploy onto the development and testing environments in preparation for staging. It has become an important part of software development in testing process.</div>
<div></div>
<div>But you can not simply do build management without tools. it is also important to ensure that tools are selected properly and thoroughly so that each of them provides the desired service.</div>
<div></div>
<div>So, without wasting any time let&#8217;s have a look on top 5 build management tools</div>
<div></div>
<div></div>
<div><strong>1. Apache Maven</strong></div>
<div> <img loading="lazy" decoding="async" class="alignnone wp-image-625 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/04/maven.png" alt="Apache Maven" width="500" height="200" /></div>
<div>Maven is an open source build management tool which is distributed under Apache License. It is basically used for Java projects. let&#8217;s have a look on key feature of Maven tool</div>
<div><strong>Key Features</strong></div>
<ul>
<li>Open source</li>
<li>Based on Project Object Model or POM</li>
<li>Release management and distribution publication</li>
<li>Coherent site of project information</li>
<li>Instant access to new features</li>
<li>Extensible with plugins</li>
<li>Works easily with multiple projects simultaneously</li>
<li>Simple project setup</li>
</ul>
<div></div>
<div>
<p><strong>2. Gradle</strong></p>
<p>&nbsp;</p>
</div>
<div>
<p> <img loading="lazy" decoding="async" class="alignnone wp-image-549 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/gradle-scmgalaxy.png" alt="Gradle" width="400" height="200" /></p>
</div>
<div>
<p>Gradle is also an open source build management tool which is distributed under Apache License. It is written in java and groovy supports cross platform. Let&#8217;s have a look on key features</p>
</div>
<div><strong><span style="font-size: 12.16px;">Key Features</span></strong></div>
<ul>
<li>Open source</li>
<li>Designed for multiple projects</li>
<li>Supports incremental builds</li>
<li>Rich API</li>
<li>Mature ecosystem of plugins</li>
<li>Ease of migration</li>
<li>First build integration tool</li>
<li>Declarative builds and build-by-convention</li>
</ul>
<div></div>
<div>
<p><strong>3. Apache Ant</strong></p>
<p>&nbsp;</p>
</div>
<div><img loading="lazy" decoding="async" class="alignnone wp-image-544 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/03/apache-ant-scmgalaxy.png" alt="Apache Ant" width="400" height="200" /></div>
<div>Apache Ant is also an open source build automation tool which is distributed under Apache License. It is also a Java based build tool. Let&#8217;s have a look on key features</div>
<div></div>
<div><strong>Key Features</strong></div>
<div></div>
<ul>
<li>open source</li>
<li>Ease of Use</li>
<li>Independent Platform</li>
<li>Can execute test scripts and test suites</li>
<li>Can copy files to at different locations</li>
<li>Supports Junit 3, Junit 4, Testing etc.</li>
<li>Able to compile java based applications</li>
<li>Can check out the code from version control system (SVN, GIT, CVS etc).</li>
</ul>
<div></div>
<div></div>
<div><strong>4. MSBuild</strong></div>
<div> <img loading="lazy" decoding="async" class="alignnone wp-image-663 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/msbuild.png" alt="MSBuild" width="450" height="250" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/msbuild.png 450w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/msbuild-300x167.png 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></div>
<div>MsBuild or Microsoft build tools as its name indicates it belongs to Microsoft which is written in C# and supports .Net framework and available under MIT license.</div>
<div></div>
<div><strong>Key features</strong></div>
<ul>
<li>Able to build Visual Studio projects without Visual Studio IDE installed</li>
<li>Now bundled with Visual Studio</li>
<li>Multitargeting</li>
<li>Description language &#8211; XML</li>
</ul>
<div></div>
<div><strong>5. FinalBuilder</strong></div>
<div> <img loading="lazy" decoding="async" class="alignnone wp-image-664 size-full" src="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/finalbuilder.png" alt="FinalBuilder" width="450" height="250" srcset="https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/finalbuilder.png 450w, https://www.scmgalaxy.com/tutorials/wp-content/uploads/2017/05/finalbuilder-300x167.png 300w" sizes="auto, (max-width: 450px) 100vw, 450px" /></div>
<div>Finalbuilder is a build tool which supports Windows platform and it is developed by VSoft Technologies in the year 2000. It is available under Proprietary license.</div>
<div></div>
<div><strong>Key Features</strong></div>
<ul>
<li>It can present your build process in a structured manner</li>
<li>With FinalBuilder you don&#8217;t need to edit xml, or  write scripts</li>
<li>Allows builds to be scheduled to run daily, weekly or whenever you wish</li>
<li>Extensive library of pre-written actions to automate every common task in build process</li>
<li>Integrated Debugging</li>
<li>Detailed Logging</li>
<li>Version Control Integration</li>
</ul>
<div></div>
<div></div>
<div>Do you agree with this list? If not than feel free to respond in the comment box with your own take on the top build management tools. One more thing, I would like to add here, if you need help to learn all these build tools or DevOps courses than <a href="http://www.scmgalaxy.com/" target="_blank" rel="noopener"><strong>scmGalaxy</strong></a> can help you in this. scmGalaxy is a community of DevOps professionals who are well experienced in this domain. So, feel free to reach us.</div>
<div></div>
<p>The post <a href="https://www.scmgalaxy.com/tutorials/top-5-build-management-tool/">Top 5 Build Management Tools</a> appeared first on <a href="https://www.scmgalaxy.com/tutorials">scmGalaxy</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.scmgalaxy.com/tutorials/top-5-build-management-tool/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
