Project Source Code Structure and Build Process ● Remember consistency matters as source code structure, build process, and release processes are all intertwined.

Slides:



Advertisements
Similar presentations
May 13th, Lucek Consulting Basic Java Servlet/JSP Web Development David Lucek Lucek Consulting
Advertisements

Configuration management
Software change management
Configuration management
05/11/2001 CPT week Natalia Ratnikova, FNAL 1 Software Distribution in CMS Distribution unitFormContent Version of SCRAM managed project.
Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
MC365 Ant. Today We Will Cover: Overview of Ant Installing Ant Using the Ant command line tool Various Ant commands available Using Ant in Eclipse.
ITTC Software Projects
7 th ACS Workshop 2010 Antofagasta, Chile ACS Project Lifecycle Matias Mora (based on presentation by G. Chiozzi and J. Ibsen)
EC Review – 01/03/2002 – G. Zaquine – Quality Assurance – WP12 – CS-SI – n° 1 DataGrid Quality Assurance Gabriel Zaquine Quality Engineer - WP12 – CS-SI.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Automating the Build Process using ANT SE-2030 Dr. Mark L. Hornick 1.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant.
Doxygen: Source Code Documentation Generator John Tully.
CONNECT Installation and Configuration Les Westberg Copyright All Rights Reserved. 1.
This chapter is extracted from Sommerville’s slides. Text book chapter
SPI Software Process & Infrastructure GRIDPP Collaboration Meeting - 3 June 2004 Jakub MOSCICKI
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
Working Out with KURL! Shayne Koestler Kinetic Data.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Automating the Build Process using Ant SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
COMP-14: Automating your deployments using ANT Gary S Clink Business Consultant.
Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Makefiles. makefiles Problem: You are working on one part of a large programming project (e. g., MS Word).  It consists of hundreds of individual.cpp.
Configuration Management (CM)
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Ant Build Tools.  Creating a product from source may take several steps: Compile Link Copy files to various directories Remove intermediate files Generate.
Running Kuali: A Technical Perspective Ailish Byrne - Indiana University Jay Sissom - Indiana University Foundation.
© 2002 IBM Corporation LANDP 24 th April 2003 LANDP for Linux Web Lecture.
July 2011CMSC 341 CVS/Ant 1 CMSC 341 Java Packages Ant CVS Project Submission.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
Automating the Build Process using ANT SE-2030 Dr. Rob Hasker 1 Based on material by Dr. Mark L. Hornick.
Managed by UT-Battelle for the Department of Energy Kay Kasemir ORNL/SNS Jan Control System Studio Training - Development Setup.
RADE Project Generator. Outline Introduction Project Types Options Generator Files and Layout Source Control (Video 3 Min) Templates and Nifty Tools.
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
Distributed Java Programming Build Management  A repeatable build management process allows you to integrate the development efforts of your team.
Managed by UT-Battelle for the Department of Energy Kay Kasemir, Xihui Chen ORNL/SNS April Control System Studio Training - Development.
Chapter 3 Understanding Ant datatypes and properties.
Running Kuali: A Technical Perspective Ailish Byrne (Indiana University) Jonathan Keller (University of California, Davis)
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Overview of the Automated Build & Deployment Process Johnita Beasley Tuesday, April 29, 2008.
14th Oct 2005CERN AB Controls Development Process of Accelerator Controls Software G.Kruk L.Mestre, V.Paris, S.Oglaza, V. Baggiolini, E.Roux and Application.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
Georgia Institute of Technology Creating Classes part 4 Barb Ericson Georgia Institute of Technology May 2006.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Building Packages BCIS 3680 Enterprise Programming.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.
1 G52IWS: Example Web-services Chris Greenhalgh. 2 Contents Software requirements AXIS web service run-time components Getting started with Jetty & AXIS.
Configuring and Running the OPC.NET Generic Clients 1.
® IBM Software Group © 2006 IBM Corporation Rational Asset Manager v7.2 Using Scripting Tutorial for using command line and scripting using Ant Tasks Carlos.
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
GLAST Science Support Center June 29, 2005Data Challenge II Software Workshop User Support Goals For DC 2 James Peachey GSFC/L3.
GLite build and integration system Building and Packaging Robert HARAKALY
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Aaron Corso COSC Spring What is LAMP?  A ‘solution stack’, or package of an OS and software consisting of:  Linux  Apache  MySQL  PHP.
Today Javadoc. Packages and static import. Viewing API source code. Upcoming Topics: –protected access modifier –Using the debugger in Eclipse –JUnit testing.
Trimantra Software Solution Offshore Software Development Outsourcing Company Visit :
SimTK 1.0 Workshop Downloads Jack Middleton March 20, 2008.
Development meeting 7 April  Platforms  Build system  CVS structure  Namespace structure  Overall development process Testing.
An Introduction to Ant. What is Ant? How do you use it? Why would you want to?
Stephanie Allison Software Mar 2, 2006 IOC Applications Host Applications Directory Structure Environment Setup Issues.
Patrick Desbrow, CIO & VP of Engineering October 29, 2014
Cmake Primer.
CSE 303 Concepts and Tools for Software Development
Java Code Review with CheckStyle
Presentation transcript:

Project Source Code Structure and Build Process ● Remember consistency matters as source code structure, build process, and release processes are all intertwined. ● Recommended project tree structures ● Build process structure ● Automated build process ● Deployment

Directory Name Mangling ● Dynamically created derived object directories are name mangled to keep all build derived object separated. ● Mangling: – PlatformIntSize_OS_Compiler_LinkType[_Debug] ● Examples: – linux64_rh6.3_gcc4.4.6_shared - Linux static release build – linux32_rh5.4_gcc4.1.2_shared - Linux static release build – win64_vs10.0_shared_d - Windows MD shared debug build – win32_vs8.0_shared - Windows MD shared release build – Java builds ● jdk_ Red Hat 5.4 builds with Java 1.6 ● jdk_ Red Hat 6.3 builds with Java 1.7

Project Structure cppjava srcincludebinapplibsrcblddoctest libexampledoctestexamplebld win32_vs8.0_shared linux32_rh5.4_gcc4.1.2_shared win64_vs10.0_shared linux64_rh6.3_gcc4.4.6_shared jdk_1.6.0 jdk_1.7.0 Note: For brevity not all build flavors for C++ are shown.

Directories ● src – library source code – sub directories by service or logical function – sub directories for object and dependency files are automatically created by build process ● include – headers for project – sub directories by service or logical function ● apps – project applications – sub directories by executable application ● doc – auto generated doxygen, or javadoc, doxygen configuration file ● bin, lib, and object sub directories below source code locations are automatically created by the build process – bin and lib are for delivery end items

Directories Continued ● test – unit test code, sub directories as appropriate consistent levels are helpful ● example – code to demonstrate how to use functionality ● Other directories maybe needed for XML configuration files and other project specific needs ● Keep test code and other things out of source code trees to facilitate source lines of code, SLOC, metrics and to avoid confusion between TADS and contractual developed code

Build Process ● bld – project build starting location and location for common build process files – mkcommondefs.mk file for make macro definitions – mkcommonrules.mk rules file for compiling library source code – mkcommonbinrules.mk rules file for creating executable deliverables – mkcommonexerules.mk rules file for unit test code compile each source file into an executable – mkhelp.mk make process help information – makefile – top level make file

Build Process Continued ● mkcommondefs.mk – make macro file with platform specific sections and global macros ● Leaf makefiles – in each source directory location – Seldom more than a template which includes the mkcommondefs.mk and a mkcommon...rules.mk rule file – Provisions for extending common build process; should be kept to a minimum for maintenance reasons

Build Process Continued ● Java builds are done with ANT – The ANT process is wrapped with make to establish the environment set up – The initial ANT build script and the make wrapper need to reside at, preferably, the same directory, so that relative environment paths created by the make wrapper are correct for the ANT build process ● Need to keep Java and C++ build steps separate if you want to run parallel builds

Automated Daily Builds ● Daily builds are run for all platform builds ● Post daily build check report is ed to project leads, CM, test, and others ● Daily build views are automatically removed after a defined period

Summary ● Remember consistency matters for maintenance and other software manufacturing process implementations ● After build completion we run a Java application for factory deployment – Copies all platform builds to a structure for testing ● Javadoc and doxygen documentation is created and pushed to a program web site