And how to avoid it Tom “spot” Callaway Presented by Fedora Engineering Manager This presentation is licensed under a Creative Commons Attribution-Share.

Slides:



Advertisements
Similar presentations
Overview of Free/Open Source Software for Librarians Eric Goldhagen
Advertisements

Installation/Setup creation tools Stuart Eggerton Canberra ADUG Meeting 12 April 2005.
Configuration management
Configuration management
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Introduction to Linux Chapter 1. Operating Systems Operating System (OS) - most basic and important software on a computer Performs core tasks Organize.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
This chapter is extracted from Sommerville’s slides. Text book chapter
Downloading & Installing Software Chapter 13. Maintaining the System Yum Pirut BitTiorrent Rpm Keeping Software Up To Date Up2date Red Hat Network Wget.
Software Configuration Management (SCM)
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Linux Last Update Copyright Kenneth M. Chipps Ph.D. 1.
Introduction Purpose This course describes the process of installing the KPIT GNU toolchain on your PC. Objective Learn how easy it is to get information.
Review Security Hardening IPTables SELinux. Today Installations and updates – Rpm command and packages Apache “Issue Ownership”
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Engineering in Robotics Packaging and Deployment of Systems Henrik I. Christensen –
Just as there are many human languages, there are many computer programming languages that can be used to develop software. Some are named after people,
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring Mike Phenow.
By: Anuj Sharma. Topics covered:  GIT Introduction  GIT Benefits over different tools  GIT workflow  GIT server creation  How to use GIT for first.
Getting Started with Trilinos October 14, :30-10:30 a.m. Jim Willenbring.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
TOPIC 7.0 LINUX SERVICES AND CONFIGURATION. ROOT USER Root user is called “super user” because it has power far beyond those of mortal user. As root,
Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 5.1 © Copyright IBM Corporation 2008 Unit 14 Basic.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Outline Announcements: –HW II due today! –HW III on web CVS.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
1 Creative Innovation – Customer Satisfaction – Continual Quality Improvement Accessing and Building Asterisk SCF.
Moving Picture Metaphor
Free Software - Introduction to free software and the GPL Copyright © 2007 Marcus Rejås Free Software Foundation Europe I hereby grant everyone the right.
Cloud cloud, cloud cloud! Cloud “cloud” Cloud Cloud cloud Cloud Cloud Cloudcloud Cloud cloud cloudcloud cloud cloud cloud. Cloud cloudcloud, cloud cloud.
1 April 2, Software Packaging and Releasing Best Practices William Cohen NCSU CSC 591W April 2, 2008.
An Introduction to. Where did Fedora come from? Boxed set every 6 months == Failed business model [
1 The World’s Most Popular Open Source Database MySQL and Fedora: A Developer's Overview Colin Charles Community Engineer
Chapter 1 Getting Started with ASP.NET Objectives Why ASP? To get familiar with our IDE (Integrated Development Environment ), Visual Studio. Understand.
What is IronTcl? Binary distribution of Tcl/Tk.
What is F/LOSS? By Scot Henderson.
Open-O Integration Project Introduction
Installing Software Part 3
What are they? The Package Repository Client is a set of Tcl scripts that are capable of locating, downloading, and installing packages for both Tcl and.
How to open source your Puppet configuration
Selected topic in computer science (1)
Creating and nurturing communities of contributors
A Simple Introduction to Git: a distributed version-control system
Software Packaging and Releasing
Delphi or C++ Builder, with Subversion and Jenkins
Introduction to Fedoraproject
Brian Leonard ブライアン レオナルド
A project for teaching new contributors
Embedded Linux Conference - April 2009
How to be a good upstream
Fedora Project Paul W. Frields Red Hat, Inc. Fedora Project Leader
THE BASICS.
FOSS 101 Sarah Glassmeyer Project Specialist Manager,
Chapter 2: The Linux System Part 1
Using Mach153A Lecture Tools
Version Control System - Git
Document Types Technical Writing Document Types.
Open Source Software Development Processes Version 2.5, 8 June 2002
Git started with git: 2018 edition
Discussing an OVS/OVN Split
Open Source Development Challenges
Review of Previous Lesson
Copyright and License.
Outline Announcements: Version control with CVS HW II due today!
Module 02 Operating Systems
Presentation transcript:

and how to avoid it Tom “spot” Callaway Presented by Fedora Engineering Manager This presentation is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License (“CC-BY-SA”). This presentation uses the Droid Sans ( and Comfortaa ( ) font families. If you want it to look nice, please install them. This is why you FAIL

Today's Topics 1. About the Speaker 2. Success 3. Points of FAIL

Maintainer of 350+ Fedora packages Maintaining Chromium browser packages for Fedora in an external repository Packaging third-party software in RPM format since 2001 Responsible for handling Fedora's Legal issues IANAL, but I work regularly with Red Hat Legal About the Speaker

Success

Users good, contributors better Distribution friendly software Most Linux users get their software from their distribution package set Healthy community Helping improve the project (not just the code) Users helping each other Regular releases What Does Success Mean

No FOSS project wants to fail but there is more to success than just working code. Summary

Points of FAIL

In 2009, I was feeling pain with Chromium To explain the pain to others, I started a list of the things they had done (or not done) The list grew to include things that I had seen other projects do Each item received a point score All aboard the FAILBOAT Licensed CC-BY

Feel Free To Keep Score

The bigger it is, the harder it fails If the source code is more than 100MB [ +5 Points ] If the source code is more than 100MB when compressed [ +5 Points ] Size of Codebase Licensed CC-BY

This is where the source lives (e.g. cvs, svn, bzr, git) There is no good reason for a FOSS project to not have public source control Nevertheless, if the project doesn't have it... [ +10 Points ] Source Control Licensed CC-BY

If you have public source control, but... No Web Viewer [ +5 Points ] If it exists but doesn't work, you get the +5 Points too. No documentation on how to use it [ +5 Points ] Source Control Continued Licensed CC-BY

If you've written your own source control system for this project (and the project is not a source control system) [ +30 Points ] If you don't actually use the existing public source control [ +50 Points ] Source Control Gone Wild Licensed CC-BY

Code that doesn't build is usually worse than no code. If there is no documentation on how to build the project from source [ +20 Points ] If documentation exists but does not work [ +10 Points ] Building From Source Licensed CC-BY

If your source is configured by... A handwritten shell script [ +10 Points ] Editing flat text config files [ +20 Points ] Manually editing code header files [ +30 Points ] If your source isn't configurable... [ +50 Points ] Configuring the Source Licensed CC-BY

If your source builds using something that isn't GNU make [ +10 Points ] If your source only builds with third-party proprietary build tools [ +50 Points ] You wrote your own build tool for this code [ +100 Points ] Build Tools Licensed CC-BY

If your source includes copies of other code projects it depends on [ +20 Points ] If your code cannot be built without first building the bundled code bits [ +10 Points ] If you have modified the bundled code bits [ +40 Points ] Bundling Licensed CC-BY

Libraries If your code only builds static libraries [ +20 Points ] Your code can build shared libraries, but only unversioned ones [ +20 Points ] Your code does not try to use existing system libraries [ +20 Points ] Licensed CC-BY

System Install If your code forces an install into /opt or /usr/local [ +10 Points ] Your code has no “make install” [ +20 Points ] Your code does not work outside of the source directory [ +30 Points ] Licensed CC-BY

Code Oddities If your code... Uses Windows line breaks (“DOS format”) [ +5 Points ] Depends on specific compiler features [ +20 Points ] Depends on specific compiler bugs [ +50 Points ] Depends on Microsoft Visual Anything [ +100 Points ] Licensed CC-BY

Communication If your project... Does not announce releases on a mailing list [ +5 Points ] Does not have a mailing list [ +10 Points ] Does not have a bug tracker [ +20 Points ] Does not have a website [ +50 Points ] Is sourceforge vaporware [ +100 Points ] Licensed CC-BY

Releases (Versioning) Your project... Does not do sanely versioned releases (major & minor) [ +10 Points ] Does not version releases [ +20 Points ] Does not do releases [ +50 Points ] Only releases as attachments in web forum posts [ +100 Points ] Licensed CC-BY

Releases (Format) Your releases are... Only in ZIP format [ +5 Points ] Only in OSX-compat ZIP [ +10 Points ] Only in RAR format [ +20 Points ] Only in ARJ format [ +50 Points ] Only in an encapsulation format that you invented [ +100 Points ] Licensed CC-BY

Releases (Unpack) Your releases... Do not unpack into a an versioned top-level directory (e.g. glibc-2.4.2/ ) [ +10 Points ] Do not unpack into a top-level directory (e.g. glibc/ ) [ +25 Points ] Unpacks into an absurd number of useless directories (e.g. home/john/doe/glibc- svn/tarball/glibc/src ) [ +50 Points ] Licensed CC-BY

History (Forking) If your code is a fork of another project [ +10 Points ] If your primary developers were not involved with the parent project [ +50 Points ] Sometimes forking is necessary, but usually it isn't. Licensed CC-BY

History (Age) Until open sourcing it, your code was proprietary for: 1-2 years [ +10 Points ] 3-5 years [ +20 Points ] 6-10 years [ +30 Points ] 10+ years [ +50 Points ] You cannot change the past, but you may be doomed to FAIL because of it. Licensed CC-BY

Licensing Your code does not have per-file licensing [ +10 Points ] The licenses in your code conflict [ +20 Points ] Your code does not contain any notice of licensing intent [ +30 Points ] Your code doesn't include a copy of the license text [ +50 Points ] Your code doesn't have a license [ +100 Points ] Licensed CC-BY

Documentation Your code doesn't have a Changelog [ +10 Points ] Your code doesn't have any documentation [ +20 Points ] Your website doesn't have any documentation [ +30 Points ] Licensed CC-BY

FAIL METER 0 Points: Perfect! All signs point to success 5-25 Points: You're probably doing okay, but you could do better Points: Babies cry when your code is downloaded Points: Kittens die when your code is downloaded Points: You're riding the FAILBOAT 135+ Points: Your code should have its own reality TV show Licensed CC-BY

What about the Linux Kernel? Doesn't it FAIL a lot on this stuff? Sure, but it is the exception, rather than the rule. Have you actually seen projects do these things? Yes. Every single one, although, not in one project. What was Chromium's score? 285 Yes, Google knows. No, Google doesn't care. FAQ

The Open Source Way The Open Source Way is a handbook that distills years of knowledge about running open source projects I'm humbled that they've chosen to include my “Points of FAIL” system in that handbook You should definitely read it over (the whole handbook, not just my chapter)

Questions ? Contact: