SlideShare a Scribd company logo
1 of 19
Download to read offline
Project-Builder.org




                                                          Project Builder:
                                                         A GPL continuous
                                                         packaging solution
                                                                Bruno Cornec
                                                           Open Source and Linux
                                                           Profession EMEA Lead



© Bruno Cornec / HP - Document under/sous CC 3.0 by SA        Date : 02/06/2010    Page 1
Project-Builder.org
                 Introducting myself
     Software engineering and Unices since 1988
                 Mostly Configuration Management Systems (CMS), Build systems,
                 quality tools, on multiple commercial Unix systems
                  Discover Open Source & Linux (OSL) & first contributions in 1993
                  Full time on OSL since 1995, first as HP reseller then @HP
         Currently:
          Technology Architect on OSL for the HP/Intel Solution Center, Grenoble
          OSL HP Ambassador
          EMEA OSL HP Profession Lead
          Solutions Linux Conference board member
          MondoRescue, Dploy.org, Project-Builder.org project lead
          LinuxCOE, mrepo, tellico, rinse, fossology contributor
          Mandriva, Fedora packager


© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010     Page 2
Project-Builder.org
                 What is the problem ?

         Users / Sysadmins environment:


                                                                             >= 90%



                                                                             < 10%


 Users: easyness (GUI, CLI)
 Admins: distribution compliance,                                            < 1%
 smooth integration – reduce admin load
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010      Page 3
Project-Builder.org
                 What is the problem ?

         Developers environment:


                                                    Flat Files                       Sourceforge
                                                                                     ftp, web
                                                             Project


                                                                                     autotools ?
                                                           CVS                       Install proc ?
                                                                                     Soft. Eng. ?
                                                   CMS     SVN                       Fear of distro ?
                                                           GIT, ...
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA           Date : 02/06/2010                  Page 4
Project-Builder.org
                 What is the problem ?

         Packagers environment:

                                                                                      Distro
                                                                                      ftp, web
                                                    Flat Files
                                                                Package


 Does s/he only exists ?                                     CVS
 On time ? Lag behind ?                                  CMS SVN                      rpmlint ?
 Distro coverage (ver, #)                                                             lintian ?
 Beta avail ?                                                GIT, ...
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA            Date : 02/06/2010               Page 5
Project-Builder.org
                 What is the solution ?


         Packaging should be a project concern as well as coding,
         testing, installing, .... especially for smaller projects
         Package early, package always
         Use packaging as your only way of delivery (not a dream)
         Overhead minimal (not much longer than providing a
         tgz), maximum benefit (consistancy, reproduceability,
         team work improvement, distribution integration,
         improved deployment)
         Packaging is in fact a marketing activity based on a
         technical content. It's an easy way to extend your user
         base, and improve your community. Makes tests easy.
         THE SOLUTION IS CONTINUOUS PACKAGING
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 6
Project-Builder.org
                   Multi platform life cycle




 User Requirements                                                                    Validation


                  Functional                                          Integration tests
                 Specification


                            Design
                                                                  Unit tests
                          Specification




                                                         Coding
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA            Date : 02/06/2010                Page 7
Project-Builder.org
                 My answer

         I'm a sysadmin so I want to deal with packages only
         (deployment server integration)
         I'm a developer so I want to ease my tests without
         screwing up my system and testing as a std user/admin
         I'm a a packager so I want to streamline that work for
         new projects I'm interested in packaging
         I'm the marketing department of my own project and use
         packages as a “competitive advantage”
         I'm a software engineer and want no duplication of code
         nor information (metadata)
         Founding no tool existing to help me doing all that, so I
         started writing one to scratch my own itch

© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 8
Project-Builder.org
                 Goals

         Project-builder main goal is to help you package
         continuously being agnostic:
             CMS agnostic (no CMS but guys it's 21st century now,
             SVN, CVS, Mercurial, GIT, SVK....)
             OS agnostic: Linux: RPM, deb, ebuild, slack based, ...
             60+ distros at the moment – repositories for yum,
             urpmi, apt. Solaris pkg.
             Build environment agnostic: local, VM (QEMU, KVM...),
             VE (rinse, mock, debootstrap...)
             No project impact (preserves the md5sum of the
             delivered upstream sources). Can be completely
             external.


© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 9
Project-Builder.org
                  Multi platform development cycle


                                          .o .o .o
                                               .o .o
                                             .o .o
                 < 5%

     SSPK
                                                             .a


90+%                                              .o .o .o
                                                 .o
                                                    .o .o


     SLPK                                                    .a
                   < 10%
                                                  .o .o .o
                                                 .o
                                                    .o .o
                                          .o
                                           .o
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA            Date : 02/06/2010   Page 10
Project-Builder.org
                 Goodies

         Project-builder provides additional goodies:
             Set of existing VMs/VEs or easy to recreate
             Macro system with perl variables to avoid duplication
             Skeleton generation to help starting
             Manages delivery up to your ftp server (ssh based)
             Manages announces on mailing lists
             May use snapshot features of VMs/VEs
             Integration of tests in the process
             Manages patches when not upstream
             Checks validity of packages built (lintian, rpmlint)
             Easy creation of new versions for upstream
             management
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 11
Project-Builder.org
                 Architecture

                          ftp/ssh/nfs
                             server
                                                          mail
                                                         server
                                                                      2                upstream
                                                                                      Web/ftp server


                    ebuild                                        2                     upstream
                                                                                      CMS repository

                                       5                              2
               CHROOT                                                                   upstream
                                                                                         file/dir
                                           4
                                                                      1                 pbconf
                                                                                      Web/ftp server


                                                           3      1                     pbconf
        local packaging                                                               CMS repository
         & test system
                                           project-builder.org        1                  pbconf
                                                                                         file/dir

© Bruno Cornec / HP - Document under/sous CC 3.0 by SA            Date : 02/06/2010                 Page 12
Project-Builder.org
                 The Big picture


Packagers                                                                      newvm / setupvm
                 newver / newproj


                                                             build2vm

                                                 cms2build
                                                                     Packages
                                           Project
                                                                                                 pkg2ssh
                                                                   build2pkg



  Developers                                                            build2ssh

© Bruno Cornec / HP - Document under/sous CC 3.0 by SA              Date : 02/06/2010              Page 13
Project-Builder.org
                 Commands
    cms2build: Create tar files for the project under your CMS. CMS supported
    are SVN and CVS parameters are packages to build if not using default list
    build2pkg: Create packages for your running distribution
    build2ssh: Send the tar files to a SSH host
    pkg2ssh: Send the packages built to a SSH host
    build2vm, build2ve: Create packages in VMs/VEs, launching them if needed
    and send those packages to a SSH host once built
    launchvm: Launch one virtual machine
    script2vm, script2ve: Launch a VM/VE if needed and executes a script on it
    test2vm, test2ve: Test inside a VM/VE
    newvm, newve: Create a new virtual machine
    setupvm, setupve: Setup a virtual machine for pb usage
    newver: Create a new version of the project derived from the current one
    newproj: Create a new project and a template set of configuration files under
    pbconf
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 14
Project-Builder.org
                   Multi platform packaging cycle



                                                                             VMs/VEs

Developers


                                                                               Packages



                                                                             VM/VE



         Packagers
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010             Page 15
Project-Builder.org
                 To be done


         More Tests on VEs (mock, debootstrap to be done, rinse
         OK + patches) LSB chroot support.
         Support for libvirt, virsh
         Other CMS (Bazaar, …) only when/if needed
         Other VMs (VMWare, Xen, ...) only when/if needed
         Multiple delivery means
         Look at interactions with Buildbot
         Add signature support
         Create a reference documentation
         Config-Model for configuration file management

© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 16
Project-Builder.org


    Web                                                  Project-Builder Trac / Wiki
                                                            http://trac.project-builder.org
  Resources                                              Open Source at HP
                                                            http://opensource.hp.com

                                                         Other tools:
                                                           SuSE/Fedora/Mandriva Build
                                                           Systems, Buildbot, vcs-pkg.org
“The evolution of FLOSS
  and the Internet are
    tightly coupled”
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA             Date : 02/06/2010    Page 17
Project-Builder.org

                                                                     Bruno_Cornec@hp.com


                   Contact
                                                                (Linux Solution Consultant in the
                                                                    HP/Intel Solution Center)
                                                                    http://www.hp.com/linux


           ”Changes are never easy to
           make.
           There is comfort and safety
           in tradition, but change must
           come, no matter how painful
           or expensive it may be.”                                    Linus Torvalds, Richard
                                                 Bill Hewlett      Stallman, Eric Raymond, Nat
                                                                   Makarevitch, René Cougnenc,
                                                                   Eric Dumas, Rémy Card, Bdale

                    Thanks                                         Garbee, Hugo Rabson, Gallig
                                                                   Renaud, Andree Leidenfrost
                                                                   among others, for their work
                                                                   and devotion to the Open
                                                                   Source Software cause... and
                                                                   my family for his patience :-)
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA          Date : 02/06/2010              Page 18
Project-Builder.org
                 History

         V0.1-v0.4: script shells – linked to mondorescue – Usage
         of QEMU to generate cross distros packages
         V0.5 (08/2007): rewritten in perl, keeping the principles,
         independent of the project – pbconf in the project –
         filtering support with macros – PoC state
         V0.6: support multiple versions, perl conventions
         V0.7: perl env var substitution in conf files for macros –
         first usage for mondorescue and itself including VM.
         V0.8: functionaly similar to the original scripts (except ML,
         announces, ...). Multi CMS support. Trac BR. Removes
         AppConfig dep
         V0.9: re-architectured for no project impact (pbconf
         outside of project, multi-conf file support, CMS
         independance, VM/VE, separate tar files for build info...)
© Bruno Cornec / HP - Document under/sous CC 3.0 by SA   Date : 02/06/2010   Page 19

More Related Content

Similar to Project Builder: Continuous Packaging Solution

Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoPeter Bittner
 
Multi-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.orgMulti-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.orgBruno Cornec
 
Continuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsContinuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsDocker, Inc.
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyMediafly
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David ElbothFriprogsenteret
 
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\DevOpsGroup
 
Faster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief propFaster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief propChereCheek752
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Serviceskahunasystems
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystemsparkfabrik
 
Resume -9 Yrs -Looking for New Opportunity !!
Resume -9 Yrs -Looking for New Opportunity !!Resume -9 Yrs -Looking for New Opportunity !!
Resume -9 Yrs -Looking for New Opportunity !!Raju Tiwari
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解Rex Tsai
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Nilay Binjola
 
Intro to Open source. Amit Bhayani
Intro to Open source. Amit BhayaniIntro to Open source. Amit Bhayani
Intro to Open source. Amit Bhayaniguest2a6108
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material designSrinadh Kanugala
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Alessandro Binhara
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsOmid Vahdaty
 

Similar to Project Builder: Continuous Packaging Solution (20)

Continuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon OttoContinuous Delivery for Python Developers – PyCon Otto
Continuous Delivery for Python Developers – PyCon Otto
 
Alvaro Denis Resume
Alvaro Denis ResumeAlvaro Denis Resume
Alvaro Denis Resume
 
Multi-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.orgMulti-OS Continuous Packaging with docker and Project-Builder.org
Multi-OS Continuous Packaging with docker and Project-Builder.org
 
Continuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsContinuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOps
 
Chicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - MediaflyChicago Docker Meetup Presentation - Mediafly
Chicago Docker Meetup Presentation - Mediafly
 
GoOpen 2010: David Elboth
GoOpen 2010: David ElbothGoOpen 2010: David Elboth
GoOpen 2010: David Elboth
 
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\WinOps meetup April 2016   DevOps lessons from Microsoft \\Build\
WinOps meetup April 2016 DevOps lessons from Microsoft \\Build\
 
Faster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief propFaster Computing has contacted Go2Linux and requested a brief prop
Faster Computing has contacted Go2Linux and requested a brief prop
 
Kahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering ServicesKahuna Systems : Product Engineering Services
Kahuna Systems : Product Engineering Services
 
soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5soft-shake.ch - Introduction to HTML5
soft-shake.ch - Introduction to HTML5
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP EcosystemWhat is the Secure Supply Chain and the Current State of the PHP Ecosystem
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
 
Resume -9 Yrs -Looking for New Opportunity !!
Resume -9 Yrs -Looking for New Opportunity !!Resume -9 Yrs -Looking for New Opportunity !!
Resume -9 Yrs -Looking for New Opportunity !!
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
 
Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015Firefox OS - Hive Pilani 2015
Firefox OS - Hive Pilani 2015
 
Collabograte
CollabograteCollabograte
Collabograte
 
Intro to Open source. Amit Bhayani
Intro to Open source. Amit BhayaniIntro to Open source. Amit Bhayani
Intro to Open source. Amit Bhayani
 
Deno Fundamentals
Deno FundamentalsDeno Fundamentals
Deno Fundamentals
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material design
 
Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project Interopability with Suse Linux: MoonLight Project
Interopability with Suse Linux: MoonLight Project
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Project Builder: Continuous Packaging Solution

  • 1. Project-Builder.org Project Builder: A GPL continuous packaging solution Bruno Cornec Open Source and Linux Profession EMEA Lead © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 1
  • 2. Project-Builder.org Introducting myself Software engineering and Unices since 1988 Mostly Configuration Management Systems (CMS), Build systems, quality tools, on multiple commercial Unix systems Discover Open Source & Linux (OSL) & first contributions in 1993 Full time on OSL since 1995, first as HP reseller then @HP Currently: Technology Architect on OSL for the HP/Intel Solution Center, Grenoble OSL HP Ambassador EMEA OSL HP Profession Lead Solutions Linux Conference board member MondoRescue, Dploy.org, Project-Builder.org project lead LinuxCOE, mrepo, tellico, rinse, fossology contributor Mandriva, Fedora packager © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 2
  • 3. Project-Builder.org What is the problem ? Users / Sysadmins environment: >= 90% < 10% Users: easyness (GUI, CLI) Admins: distribution compliance, < 1% smooth integration – reduce admin load © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 3
  • 4. Project-Builder.org What is the problem ? Developers environment: Flat Files Sourceforge ftp, web Project autotools ? CVS Install proc ? Soft. Eng. ? CMS SVN Fear of distro ? GIT, ... © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 4
  • 5. Project-Builder.org What is the problem ? Packagers environment: Distro ftp, web Flat Files Package Does s/he only exists ? CVS On time ? Lag behind ? CMS SVN rpmlint ? Distro coverage (ver, #) lintian ? Beta avail ? GIT, ... © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 5
  • 6. Project-Builder.org What is the solution ? Packaging should be a project concern as well as coding, testing, installing, .... especially for smaller projects Package early, package always Use packaging as your only way of delivery (not a dream) Overhead minimal (not much longer than providing a tgz), maximum benefit (consistancy, reproduceability, team work improvement, distribution integration, improved deployment) Packaging is in fact a marketing activity based on a technical content. It's an easy way to extend your user base, and improve your community. Makes tests easy. THE SOLUTION IS CONTINUOUS PACKAGING © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 6
  • 7. Project-Builder.org Multi platform life cycle User Requirements Validation Functional Integration tests Specification Design Unit tests Specification Coding © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 7
  • 8. Project-Builder.org My answer I'm a sysadmin so I want to deal with packages only (deployment server integration) I'm a developer so I want to ease my tests without screwing up my system and testing as a std user/admin I'm a a packager so I want to streamline that work for new projects I'm interested in packaging I'm the marketing department of my own project and use packages as a “competitive advantage” I'm a software engineer and want no duplication of code nor information (metadata) Founding no tool existing to help me doing all that, so I started writing one to scratch my own itch © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 8
  • 9. Project-Builder.org Goals Project-builder main goal is to help you package continuously being agnostic: CMS agnostic (no CMS but guys it's 21st century now, SVN, CVS, Mercurial, GIT, SVK....) OS agnostic: Linux: RPM, deb, ebuild, slack based, ... 60+ distros at the moment – repositories for yum, urpmi, apt. Solaris pkg. Build environment agnostic: local, VM (QEMU, KVM...), VE (rinse, mock, debootstrap...) No project impact (preserves the md5sum of the delivered upstream sources). Can be completely external. © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 9
  • 10. Project-Builder.org Multi platform development cycle .o .o .o .o .o .o .o < 5% SSPK .a 90+% .o .o .o .o .o .o SLPK .a < 10% .o .o .o .o .o .o .o .o © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 10
  • 11. Project-Builder.org Goodies Project-builder provides additional goodies: Set of existing VMs/VEs or easy to recreate Macro system with perl variables to avoid duplication Skeleton generation to help starting Manages delivery up to your ftp server (ssh based) Manages announces on mailing lists May use snapshot features of VMs/VEs Integration of tests in the process Manages patches when not upstream Checks validity of packages built (lintian, rpmlint) Easy creation of new versions for upstream management © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 11
  • 12. Project-Builder.org Architecture ftp/ssh/nfs server mail server 2 upstream Web/ftp server ebuild 2 upstream CMS repository 5 2 CHROOT upstream file/dir 4 1 pbconf Web/ftp server 3 1 pbconf local packaging CMS repository & test system project-builder.org 1 pbconf file/dir © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 12
  • 13. Project-Builder.org The Big picture Packagers newvm / setupvm newver / newproj build2vm cms2build Packages Project pkg2ssh build2pkg Developers build2ssh © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 13
  • 14. Project-Builder.org Commands cms2build: Create tar files for the project under your CMS. CMS supported are SVN and CVS parameters are packages to build if not using default list build2pkg: Create packages for your running distribution build2ssh: Send the tar files to a SSH host pkg2ssh: Send the packages built to a SSH host build2vm, build2ve: Create packages in VMs/VEs, launching them if needed and send those packages to a SSH host once built launchvm: Launch one virtual machine script2vm, script2ve: Launch a VM/VE if needed and executes a script on it test2vm, test2ve: Test inside a VM/VE newvm, newve: Create a new virtual machine setupvm, setupve: Setup a virtual machine for pb usage newver: Create a new version of the project derived from the current one newproj: Create a new project and a template set of configuration files under pbconf © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 14
  • 15. Project-Builder.org Multi platform packaging cycle VMs/VEs Developers Packages VM/VE Packagers © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 15
  • 16. Project-Builder.org To be done More Tests on VEs (mock, debootstrap to be done, rinse OK + patches) LSB chroot support. Support for libvirt, virsh Other CMS (Bazaar, …) only when/if needed Other VMs (VMWare, Xen, ...) only when/if needed Multiple delivery means Look at interactions with Buildbot Add signature support Create a reference documentation Config-Model for configuration file management © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 16
  • 17. Project-Builder.org Web Project-Builder Trac / Wiki http://trac.project-builder.org Resources Open Source at HP http://opensource.hp.com Other tools: SuSE/Fedora/Mandriva Build Systems, Buildbot, vcs-pkg.org “The evolution of FLOSS and the Internet are tightly coupled” © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 17
  • 18. Project-Builder.org Bruno_Cornec@hp.com Contact (Linux Solution Consultant in the HP/Intel Solution Center) http://www.hp.com/linux ”Changes are never easy to make. There is comfort and safety in tradition, but change must come, no matter how painful or expensive it may be.” Linus Torvalds, Richard Bill Hewlett Stallman, Eric Raymond, Nat Makarevitch, René Cougnenc, Eric Dumas, Rémy Card, Bdale Thanks Garbee, Hugo Rabson, Gallig Renaud, Andree Leidenfrost among others, for their work and devotion to the Open Source Software cause... and my family for his patience :-) © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 18
  • 19. Project-Builder.org History V0.1-v0.4: script shells – linked to mondorescue – Usage of QEMU to generate cross distros packages V0.5 (08/2007): rewritten in perl, keeping the principles, independent of the project – pbconf in the project – filtering support with macros – PoC state V0.6: support multiple versions, perl conventions V0.7: perl env var substitution in conf files for macros – first usage for mondorescue and itself including VM. V0.8: functionaly similar to the original scripts (except ML, announces, ...). Multi CMS support. Trac BR. Removes AppConfig dep V0.9: re-architectured for no project impact (pbconf outside of project, multi-conf file support, CMS independance, VM/VE, separate tar files for build info...) © Bruno Cornec / HP - Document under/sous CC 3.0 by SA Date : 02/06/2010 Page 19