SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
The Lives of Others
Open-Source Development Practices Elsewhere


              Peter Eisentraut

             Senior Software Engineer
                Lab Development
              F-Secure Corporation


                PGCon 2009
Ground Rules




               I don’t know
               everything.
               If you are involved
               in other projects,
               chime in.
               Discussion
               welcome
Whom To Learn From?

    Look at the biggest
    open-source projects
    Metric: installation
    footprint, installation
    count
    Where to ïŹnd those
    numbers?
         the Universal Debian
         Database
         doesn’t count OS
         distributions such as
         Debian, Fedora,
         FreeBSD,
         OpenSolaris
         Java also
         underrepresented
Sidetrack: The Universal Debian Database


  Example: query for packages with largest install footprint and
  popularity

  SELECT rank() OVER (ORDER BY score DESC),
         source,
         sum(installed_size::numeric * insts) AS score
  FROM packages JOIN popcon_src USING (source)
  WHERE distribution = 'debian'
    AND release = 'lenny'
    AND component = 'main'
    AND architecture IN ('all', 'i386')
  GROUP BY source
  ORDER BY score DESC
  LIMIT 100;
The Biggest Projects




  OpenOfïŹce.org, Linux, GCC, GCJ, Qt, Mesa, KDE, Glibc,
  Firefox, MySQL, Boost, Perl, Samba, LDP, Vim, Gtk+, FFmpeg,
  OPAL, Evolution, OpenJDK, Gtk−−, wxWidgets, PyQt, Gimp, TeX Live,
  X.org, SCOWL, OpenSSL, Thunderbird, Xalan, Berkeley DB, ncurses,
  Foomatic, SELinux, Gutenprint, PHP, GNU binutils, Python, KOfïŹce, Wine, Ruby, ICU,
  LAPACK, Webkit, PostgreSQL, glib, libsigc++, Inkscape, PWLib, GNOME, Apache, HPLIP, Xerces,
  Libxml, GNU Gettext, CUPS, SANE, Net-SNMP, Ghostscript, Mono, Eclipse, Pidgin
PostgreSQL — A Role Model?




  Things to keep in mind:
   1. Process details are hard to gather for outsiders.
   2. Other projects are not without problems.
   3. Many of them have worse problems than we do.
   4. Others look at the PostgreSQL project for advice and
      inspiration.
   5. It’s amazing that anything gets done. :-)
Version Control




     In the lead: Git, Subversion
     Also-rans: CVS, Mercurial, Bazaar
     Commercial systems phased out
     Automatic conversion services in use
Build Tools




     Autotools continue to rule!
     CMake might be challenger
         well-known usage: KDE, MySQL (for Windows only)
         uptake still slow (88 of 12000 packages in Debian)
     That’s it, for C programs.
Documentation Tools



     DocBook emerged as the standard.
         XML vs. SGML
     Texinfo (only at GNU)
     man pages
     HTML
     some specialized solutions:
         Python: reStructuredText
         Perl: Perldoc
         Qt: qdoc
Discussion Forums




     Mailing lists are clearly the standard.
     But don’t argue about Reply-To!
     Usenet is dead. :-)
     Web-forums serve support requests and newbies better.
     . . . and then there are bug-tracking systems.
Bug Tracking




     Bugzilla is king (often heavily themed and customized).
     contenders: Roundup, Jira, *forge
     marginal: RT
Coding Styles




     Coding style appears to be an issue speciïŹc to C/C++.
     Besides the GNU style, various random styles can be
     found.
     CVS $Keywords$ are pretty much gone.
     Patch styles (-c vs. -u) are an unsettled issue.
Wikis




        About 1/3 of projects have active wikis.
        MediaWiki is most popular.
The Foundries

     Project-speciïŹc *forge services are rare.
     More popular: Common repo and Bugzilla for everyone.
     This has implications for management of sub-/sister
     projects.
Write Your Own Tools



  Some tools are side-products of other projects:
      ccache
      tmalloc
      distcc
      Bugzilla
      PatchTracker
      Contributions to build tools (autoconf, cmake, etc.) are
      welcome.
Release Scheduling


  Trend is toward time-based releases:
      OpenBSD (6 months)
      GNOME (6 months)
      Ubuntu (6 months)
      Debian (18 months)
      OpenOfïŹce.org (6 months)
      PostgreSQL (12 months)
      Linux kernel (3 months)
      (MySQL)
      ...
  Note: The upgrade issue is fairly unique to PostgreSQL.
Minor Releases




     Stable + development branch is standard.
     Some maintain more than one stable, e.g., Samba.
     PostgreSQL’s 5+ back branches have got to be a record.
     MySQL might come close.
     Minor releases can also have a ïŹxed schedule.
     (OpenOfïŹce.org: 3 months)
The Rewrite Trap




  Major reengineering efforts usually have schedule and/or
  quality problems. Recall:
      Samba 4
      Perl 6
      KDE 4
Pre-Releases




     Beta, RC are standard.
     Even/odd model (Linux, Perl) is obsolescent.
     Alpha/milestone releases are rare.
Release Manager




     Some projects appoint rotating release managers.
     In other projects, these roles fall into place by tradition.
Downstream Packaging

  Various approaches:
      Tight integration, e.g.: PostgreSQL, KDE, Samba
      Laissez-faire, e.g.: Linux, GCC, MySQL
      ConïŹ‚ict-prone, e.g.: OpenOfïŹce.org, Mozilla
Security Handling




                    Most sizeable projects have
                    special security
                    contacs/teams.
                    CVE numbers are
                    standard.
                    Note: Non-database
                    projects have a
                    skewed/different view of
                    “security”.
Committers



     Surprisingly, many projects seem to do with very few
     committers.
     Some projects have very large amounts of committers.
     I think this is strongly related to the software architecture
     and project layout. Compare:
         KDE has everything in one repo; hundreds of committers.
         PostgreSQL has PgFoundry etc.
         Linux kernel uses a very different model.
     Managing external committers tends to be a problem for
     company-run projects.
Project Steering




      Company-run projects have a clear direction (usually).
      In principle, the developers create their own destiny
      everywhere else.
      Some projects have elected boards etc., but these don’t
      have technical inïŹ‚uence.
      Most projects are steered by the “old farts”.
Forking



     Forking continues to happen.
     Contemporary cases: Go-OO.org, eglibc, OurDelta,
     Iceweasel
     Reasons:
          Faster/different feature advancement
          Licensing or trademark conïŹ‚icts
          Company vs. community barrier
          Personal problems
     Many commercial forks of open-source DBMS:
     EnterpriseDB, Greenplum, Truviso, KickïŹre, Infobright
Licensing




     Distributors are incredibly picky.
     So are legal departments.
     Well-known licenses are important.
     Consistent and uniform licensing helps.
     Weird licensing can kill projects.
     Many projects have had their share of problems: KDE (Qt),
     Linux (SCO, ïŹrmware), XFree86, Mambo, Apache vs.
     OpenBSD, PostgreSQL (GPL), OpenSSL vs. Debian
Copyright Notices


     Amateur legal opinion: Copyright notices are more or less
     meaningless. But they could help if you plan to go to court.
     Most company-sponsored code has standard copyright
     headers.
     FSF and Apache use copyright assignments and careful
     changelog tracking.
     Most other projects are pretty random.
         Initial author: Perl, Samba
         Various authors: KDE, Vim
         “Fake” organizations: OpenSSL, (PHP), PostgreSQL,
         wxWidgets
         nothing: Python
     Many (smaller) projects apply the GPL wrongly.
Legal and Funds Management




  Four models:
      Run and owned by a single company: OpenOfïŹce.org,
      MySQL, Qt, Berkeley DB, CUPS, (PHP)
      Run and controlled by a non-proïŹt association: GCC, KDE,
      Mozilla, GNOME, Apache, (Fedora)
      Loosely organized but someone in the background: Linux,
      PostgreSQL, Debian, OpenBSD
      Unorganized: Vim
Standards Organizations




  OSS participation is possible, e. g.:
      OpenOfïŹce.org
      Linux/glibc
      KDE/GNOME/X.org/Freedesktop
      MySQL, PostgreSQL, . . . ?
The Average Sizeable Open-Source Project
2010/2011




     Written in C (or Java)
     GPL
     Source in Git
     Bugs in Bugzilla
     Built with Autoconf (or Maven)
     Released every 6 months
Open Issues for PostgreSQL



     Version control
     system
     Web forum
     Bug tracking
     system
     CMake?
     DocBook XML
     Release cycle
     length
     Upgradability
Rights and Attributions



  This presentation “The Lives of Others: Open-Source Development Practices Elsewhere” was authored by Peter
  Eisentraut and is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported
  license.

         The image on page 2 is “Comiskey Park (US Celluar Field)” by Flickr user Zol87, available under the
         Creative Commons Attribution-Noncommercial 2.0 Generic license.
         The image on page 3 is “Apples and oranges” by Flickr user Jeff Tabaco, available under the Creative
         Commons Attribution-Noncommercial-Share Alike 2.0 Generic license.
         The image on page 14 is “Valimon asema Helsinki” from Wikipedia and is in the public domain.
         The image on page 21 is “Watersfalls, Mesa Arts Center” by Flickr user cobalt123, available under the
         Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license.
         The image on page 22 is “Suomenlinna” by Flickr user Anosmia, available under the Creative Commons
         Attribution 2.0 Generic license.
         The image on page 31 is “Committee meeting” by Flickr user Matt and Kim Rudge, available under the
         Creative Commons Attribution-Noncommercial 2.0 Generic license.

Weitere Àhnliche Inhalte

Was ist angesagt?

Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
olberger
 
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffersHow%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
tutorialsruby
 
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
Yandex
 
Linux server world
Linux server worldLinux server world
Linux server world
Akshat Singh
 

Was ist angesagt? (20)

Packaging for the Maemo Platform
Packaging for the Maemo PlatformPackaging for the Maemo Platform
Packaging for the Maemo Platform
 
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
Poky meets Debian: Understanding how to make an embedded Linux by using an ex...
 
ABCs of docker
ABCs of dockerABCs of docker
ABCs of docker
 
Generating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTSGenerating Linked Data descriptions of Debian packages in the Debian PTS
Generating Linked Data descriptions of Debian packages in the Debian PTS
 
Debian packaging
Debian packagingDebian packaging
Debian packaging
 
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffersHow%20to%20install%20PHP%20on%20Linux%20_%20laffers
How%20to%20install%20PHP%20on%20Linux%20_%20laffers
 
Distributions and package management in the containers era
Distributions and package management in the containers eraDistributions and package management in the containers era
Distributions and package management in the containers era
 
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, PuppetPuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
PuppetConf 2016: Puppet on Windows – Nicolas Corrarello, Puppet
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages
 
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
 
Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016Php Dependency Management with Composer ZendCon 2016
Php Dependency Management with Composer ZendCon 2016
 
hw1a
hw1ahw1a
hw1a
 
How to deploy PHP projects with docker
How to deploy PHP projects with dockerHow to deploy PHP projects with docker
How to deploy PHP projects with docker
 
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
ГлДб ĐĄĐŒĐžŃ€ĐœĐŸĐČ: Đ§Ń‚ĐŸ ĐœĐŸĐČĐŸĐłĐŸ ĐČ FreeBSD 10.0
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Virtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 MayVirtual Bolt Workshop - 6 May
Virtual Bolt Workshop - 6 May
 
Linux server world
Linux server worldLinux server world
Linux server world
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
 
Writing Services with ZF2
Writing Services with ZF2Writing Services with ZF2
Writing Services with ZF2
 
Linux Kernel Introduction
Linux Kernel IntroductionLinux Kernel Introduction
Linux Kernel Introduction
 

Andere mochten auch

Andere mochten auch (6)

Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others. Das leben der anderen: The lives of others.
Das leben der anderen: The lives of others.
 
Ericsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of othersEricsson Mobility Report - The lives of others
Ericsson Mobility Report - The lives of others
 
Most Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL FeaturesMost Wanted: Future PostgreSQL Features
Most Wanted: Future PostgreSQL Features
 
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQLPorting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 

Ähnlich wie The Lives of Others: Open-Source Development Practices Elsewhere

An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
S. M. Hossein Hamidi
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
Ahmed Mekkawy
 
You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...
Speck&Tech
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
dmgerman
 
Linux Distribution Collaboration 
on a Mainframe!
Linux Distribution Collaboration 
on a Mainframe!Linux Distribution Collaboration 
on a Mainframe!
Linux Distribution Collaboration 
on a Mainframe!
All Things Open
 
The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
Lorna Mitchell
 

Ähnlich wie The Lives of Others: Open-Source Development Practices Elsewhere (20)

Some wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily useSome wonderful Linux softwares for daily use
Some wonderful Linux softwares for daily use
 
An Introduction To Linux Development Environment
An Introduction To Linux Development EnvironmentAn Introduction To Linux Development Environment
An Introduction To Linux Development Environment
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Containers for Science and High-Performance Computing
Containers for Science and High-Performance ComputingContainers for Science and High-Performance Computing
Containers for Science and High-Performance Computing
 
You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...You think you're not a target? A tale of three developers...
You think you're not a target? A tale of three developers...
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 
Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost” Alexander Kutsan: “C++ compilation boost”
Alexander Kutsan: “C++ compilation boost”
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Collabograte
CollabograteCollabograte
Collabograte
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfManaging Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
 
Dev environment for linux (Mainly KDE and python)
Dev environment for linux  (Mainly KDE and python)Dev environment for linux  (Mainly KDE and python)
Dev environment for linux (Mainly KDE and python)
 
olibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linuxolibc: Another C Library optimized for Embedded Linux
olibc: Another C Library optimized for Embedded Linux
 
The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...The adoption of FOSS workfows in commercial software development: the case of...
The adoption of FOSS workfows in commercial software development: the case of...
 
Linux Distribution Collaboration 
on a Mainframe!
Linux Distribution Collaboration 
on a Mainframe!Linux Distribution Collaboration 
on a Mainframe!
Linux Distribution Collaboration 
on a Mainframe!
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
 
The Source Control Landscape
The Source Control LandscapeThe Source Control Landscape
The Source Control Landscape
 

Mehr von Peter Eisentraut

Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
Peter Eisentraut
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
Peter Eisentraut
 

Mehr von Peter Eisentraut (17)

Porting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQLPorting Oracle Applications to PostgreSQL
Porting Oracle Applications to PostgreSQL
 
PostgreSQL and XML
PostgreSQL and XMLPostgreSQL and XML
PostgreSQL and XML
 
XML Support: Specifications and Development
XML Support: Specifications and DevelopmentXML Support: Specifications and Development
XML Support: Specifications and Development
 
PostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie DatenbankalternativePostgreSQL: Die Freie Datenbankalternative
PostgreSQL: Die Freie Datenbankalternative
 
The Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future DevelopmentsThe Road to the XML Type: Current and Future Developments
The Road to the XML Type: Current and Future Developments
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
PostgreSQL and PL/Java
PostgreSQL and PL/JavaPostgreSQL and PL/Java
PostgreSQL and PL/Java
 
Replication Solutions for PostgreSQL
Replication Solutions for PostgreSQLReplication Solutions for PostgreSQL
Replication Solutions for PostgreSQL
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
PostgreSQL News
PostgreSQL NewsPostgreSQL News
PostgreSQL News
 
Access ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-FrontendsAccess ohne Access: Freie Datenbank-Frontends
Access ohne Access: Freie Datenbank-Frontends
 
Docbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XMLDocbook: Textverarbeitung mit XML
Docbook: Textverarbeitung mit XML
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail Sy...
 
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...Collateral Damage:
Consequences of Spam and Virus Filtering for the E-Mail S...
Collateral Damage: Consequences of Spam and Virus Filtering for the E-Mail S...
 
Spaß mit PostgreSQL
Spaß mit PostgreSQLSpaß mit PostgreSQL
Spaß mit PostgreSQL
 
SQL/MED and PostgreSQL
SQL/MED and PostgreSQLSQL/MED and PostgreSQL
SQL/MED and PostgreSQL
 
SQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQLSQL/MED: Doping for PostgreSQL
SQL/MED: Doping for PostgreSQL
 

KĂŒrzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

KĂŒrzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

The Lives of Others: Open-Source Development Practices Elsewhere

  • 1. The Lives of Others Open-Source Development Practices Elsewhere Peter Eisentraut Senior Software Engineer Lab Development F-Secure Corporation PGCon 2009
  • 2. Ground Rules I don’t know everything. If you are involved in other projects, chime in. Discussion welcome
  • 3. Whom To Learn From? Look at the biggest open-source projects Metric: installation footprint, installation count Where to ïŹnd those numbers? the Universal Debian Database doesn’t count OS distributions such as Debian, Fedora, FreeBSD, OpenSolaris Java also underrepresented
  • 4. Sidetrack: The Universal Debian Database Example: query for packages with largest install footprint and popularity SELECT rank() OVER (ORDER BY score DESC), source, sum(installed_size::numeric * insts) AS score FROM packages JOIN popcon_src USING (source) WHERE distribution = 'debian' AND release = 'lenny' AND component = 'main' AND architecture IN ('all', 'i386') GROUP BY source ORDER BY score DESC LIMIT 100;
  • 5. The Biggest Projects OpenOfïŹce.org, Linux, GCC, GCJ, Qt, Mesa, KDE, Glibc, Firefox, MySQL, Boost, Perl, Samba, LDP, Vim, Gtk+, FFmpeg, OPAL, Evolution, OpenJDK, Gtk−−, wxWidgets, PyQt, Gimp, TeX Live, X.org, SCOWL, OpenSSL, Thunderbird, Xalan, Berkeley DB, ncurses, Foomatic, SELinux, Gutenprint, PHP, GNU binutils, Python, KOfïŹce, Wine, Ruby, ICU, LAPACK, Webkit, PostgreSQL, glib, libsigc++, Inkscape, PWLib, GNOME, Apache, HPLIP, Xerces, Libxml, GNU Gettext, CUPS, SANE, Net-SNMP, Ghostscript, Mono, Eclipse, Pidgin
  • 6. PostgreSQL — A Role Model? Things to keep in mind: 1. Process details are hard to gather for outsiders. 2. Other projects are not without problems. 3. Many of them have worse problems than we do. 4. Others look at the PostgreSQL project for advice and inspiration. 5. It’s amazing that anything gets done. :-)
  • 7. Version Control In the lead: Git, Subversion Also-rans: CVS, Mercurial, Bazaar Commercial systems phased out Automatic conversion services in use
  • 8. Build Tools Autotools continue to rule! CMake might be challenger well-known usage: KDE, MySQL (for Windows only) uptake still slow (88 of 12000 packages in Debian) That’s it, for C programs.
  • 9. Documentation Tools DocBook emerged as the standard. XML vs. SGML Texinfo (only at GNU) man pages HTML some specialized solutions: Python: reStructuredText Perl: Perldoc Qt: qdoc
  • 10. Discussion Forums Mailing lists are clearly the standard. But don’t argue about Reply-To! Usenet is dead. :-) Web-forums serve support requests and newbies better. . . . and then there are bug-tracking systems.
  • 11. Bug Tracking Bugzilla is king (often heavily themed and customized). contenders: Roundup, Jira, *forge marginal: RT
  • 12. Coding Styles Coding style appears to be an issue speciïŹc to C/C++. Besides the GNU style, various random styles can be found. CVS $Keywords$ are pretty much gone. Patch styles (-c vs. -u) are an unsettled issue.
  • 13. Wikis About 1/3 of projects have active wikis. MediaWiki is most popular.
  • 14. The Foundries Project-speciïŹc *forge services are rare. More popular: Common repo and Bugzilla for everyone. This has implications for management of sub-/sister projects.
  • 15. Write Your Own Tools Some tools are side-products of other projects: ccache tmalloc distcc Bugzilla PatchTracker Contributions to build tools (autoconf, cmake, etc.) are welcome.
  • 16. Release Scheduling Trend is toward time-based releases: OpenBSD (6 months) GNOME (6 months) Ubuntu (6 months) Debian (18 months) OpenOfïŹce.org (6 months) PostgreSQL (12 months) Linux kernel (3 months) (MySQL) ... Note: The upgrade issue is fairly unique to PostgreSQL.
  • 17. Minor Releases Stable + development branch is standard. Some maintain more than one stable, e.g., Samba. PostgreSQL’s 5+ back branches have got to be a record. MySQL might come close. Minor releases can also have a ïŹxed schedule. (OpenOfïŹce.org: 3 months)
  • 18. The Rewrite Trap Major reengineering efforts usually have schedule and/or quality problems. Recall: Samba 4 Perl 6 KDE 4
  • 19. Pre-Releases Beta, RC are standard. Even/odd model (Linux, Perl) is obsolescent. Alpha/milestone releases are rare.
  • 20. Release Manager Some projects appoint rotating release managers. In other projects, these roles fall into place by tradition.
  • 21. Downstream Packaging Various approaches: Tight integration, e.g.: PostgreSQL, KDE, Samba Laissez-faire, e.g.: Linux, GCC, MySQL ConïŹ‚ict-prone, e.g.: OpenOfïŹce.org, Mozilla
  • 22. Security Handling Most sizeable projects have special security contacs/teams. CVE numbers are standard. Note: Non-database projects have a skewed/different view of “security”.
  • 23. Committers Surprisingly, many projects seem to do with very few committers. Some projects have very large amounts of committers. I think this is strongly related to the software architecture and project layout. Compare: KDE has everything in one repo; hundreds of committers. PostgreSQL has PgFoundry etc. Linux kernel uses a very different model. Managing external committers tends to be a problem for company-run projects.
  • 24. Project Steering Company-run projects have a clear direction (usually). In principle, the developers create their own destiny everywhere else. Some projects have elected boards etc., but these don’t have technical inïŹ‚uence. Most projects are steered by the “old farts”.
  • 25. Forking Forking continues to happen. Contemporary cases: Go-OO.org, eglibc, OurDelta, Iceweasel Reasons: Faster/different feature advancement Licensing or trademark conïŹ‚icts Company vs. community barrier Personal problems Many commercial forks of open-source DBMS: EnterpriseDB, Greenplum, Truviso, KickïŹre, Infobright
  • 26. Licensing Distributors are incredibly picky. So are legal departments. Well-known licenses are important. Consistent and uniform licensing helps. Weird licensing can kill projects. Many projects have had their share of problems: KDE (Qt), Linux (SCO, ïŹrmware), XFree86, Mambo, Apache vs. OpenBSD, PostgreSQL (GPL), OpenSSL vs. Debian
  • 27. Copyright Notices Amateur legal opinion: Copyright notices are more or less meaningless. But they could help if you plan to go to court. Most company-sponsored code has standard copyright headers. FSF and Apache use copyright assignments and careful changelog tracking. Most other projects are pretty random. Initial author: Perl, Samba Various authors: KDE, Vim “Fake” organizations: OpenSSL, (PHP), PostgreSQL, wxWidgets nothing: Python Many (smaller) projects apply the GPL wrongly.
  • 28. Legal and Funds Management Four models: Run and owned by a single company: OpenOfïŹce.org, MySQL, Qt, Berkeley DB, CUPS, (PHP) Run and controlled by a non-proïŹt association: GCC, KDE, Mozilla, GNOME, Apache, (Fedora) Loosely organized but someone in the background: Linux, PostgreSQL, Debian, OpenBSD Unorganized: Vim
  • 29. Standards Organizations OSS participation is possible, e. g.: OpenOfïŹce.org Linux/glibc KDE/GNOME/X.org/Freedesktop MySQL, PostgreSQL, . . . ?
  • 30. The Average Sizeable Open-Source Project 2010/2011 Written in C (or Java) GPL Source in Git Bugs in Bugzilla Built with Autoconf (or Maven) Released every 6 months
  • 31. Open Issues for PostgreSQL Version control system Web forum Bug tracking system CMake? DocBook XML Release cycle length Upgradability
  • 32. Rights and Attributions This presentation “The Lives of Others: Open-Source Development Practices Elsewhere” was authored by Peter Eisentraut and is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported license. The image on page 2 is “Comiskey Park (US Celluar Field)” by Flickr user Zol87, available under the Creative Commons Attribution-Noncommercial 2.0 Generic license. The image on page 3 is “Apples and oranges” by Flickr user Jeff Tabaco, available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license. The image on page 14 is “Valimon asema Helsinki” from Wikipedia and is in the public domain. The image on page 21 is “Watersfalls, Mesa Arts Center” by Flickr user cobalt123, available under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic license. The image on page 22 is “Suomenlinna” by Flickr user Anosmia, available under the Creative Commons Attribution 2.0 Generic license. The image on page 31 is “Committee meeting” by Flickr user Matt and Kim Rudge, available under the Creative Commons Attribution-Noncommercial 2.0 Generic license.