SlideShare a Scribd company logo
1 of 186
1
The Apache Software Foundation
Community Development
Mentoring Programme
India ICFOSS
Luciano Resende (lresende@apache.org)
Community Development, at Apache Software Foundation
Open Source Workshop 2
Welcome!
 Get to know each other
 What would like to gain out of this workshop ?
About me
 Professionally
 Joined IBM Brazil in 2000 as Senior Consultant on Lotus Products
 Relocated to IBM US in 2001 to work on Lotus Organization
 In 2006, joined the IBM AIM Organization, and started working on new
technologies for WebSphere Application Server in open source
 Left IBM in 2010 and joined the Platform & Architecture team at Shutterfly as
Architect/Manager.
 In 2012 rejoined IBM as Senior Software Engineer at IBM Big Data & Analytics
group
 Open Source
 Started working on open source as part of my day job at IBM in 2006 working on
Apache Tuscany.
 Currently chair for the Community Development PMC and Wink PMC.
 Have created and mentored various projects throughout Incubation
Open Source Workshop 4
Day 1 Agenda
Day 1: June 21st
2013
 Learn about
 Open Source
 Open Source Licenses
 Open Source Communities
 Apache Software Foundation
 How to get involved with an Apache project
 Apache Incubator
 Creating new projects
Open Source Workshop 5
Day 2 Agenda
Day 2: June 22nd
2013
 Development hands-on
 Setup development environment
 Subversion
 Git
 Maven
 Development tools overview
 Hands-on exercises
Open Source Workshop 6
Day 3 Agenda
Day 3: June 23rd
2013
 About Mentoring
 Expectations from students
 Working on project proposals
Open Source Workshop 7
Post sessions Follow Up & Questions
 Interaction will be through mailing list and open source
 Students Mailing List :
 students-subscribe@community.apache.org
 students@community.apache.org
 This presentation is available for download at :
 http://people.apache.org/~lresende/presentations/asf-icfoss-mentoring.pdf
Open source
Open Source Workshop 9
Topics
 General knowledge about open source
 Importance of Open Source
 How it got started
 What is Open Source
 License
 Infrastructure
 Community
Why Open Source ?
September 1, 2013
10
?
Open Source Workshop 11
Why open source?
-Open source impossible to avoid, Gartner says”, Network World
-http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html
It’s “impossible to avoid”
Gartner 2007 Study:
By 2011, 80% of all commercial software will contain open source code
Forrester 2008 Study:
Study of 2,252 North American and European Software decision makers
done by Forrester: 66% are interested in open-source software….
Open source seems to be a tactic for achieving the high priority
initiatives.
..
Web 2.0 technologies (such as blogs, wikis and RSS) and
Service Oriented Architecture among their major software initiatives.
-“Open source software: Just a Means to an End”, CIO magazine, March 2008
Open Source Workshop 12
Why is Open Source important ?
 Can be a major source of innovation!
 It unites perspectives from a host of disciplines and brings ideas together from all
around the world to
 Rapidly solve business issues
 Accelerate technological advancements
 Stimulate economic growth
 Enable new business models
 OSS is a good approach for driving emerging open standards
 Popular open source projects can become the common implementations
 IT can benefit
 Increased choice and flexibility
 Lower costs
 Quick response
world-wide view of an OS project
Major Players
Serious Users
Some Statistics
 $1.3 billion Red Hat 2012 revenue
 3 million GitHub projects
 80% commercial products with open source code
 66% market share for Apache HTTP, Nginx and Lighttpd
 > 50% market share for Firefox and Chrome
 50% blue chip companies fully committed to open source
 29% growth rate for Android
How it all Started ?
1983 Sep 27 - GNU Project launched by Richard Stallman.
Stallman appalled
1985 Mar 20 - GNU Emacs first public release.
GNU Emacs and GCC
1985 May - Original patch program written.
Patch and Perl
1991 August 6 - Info.cern.ch goes online
World Wide What?
1991 August 25 - Linux first announced on Usenet.
Linus - Unix = Linux
1993 Aug 16 - Debian Project
Deb + Ian = Debian
1994 May - NCSA loses its web developer.
McCool hangs five
1995 Feb - Apache Group form.
The band gets together
1995 Jun 8 - PHP released publicly by Rasmus Lerdorf .
Personal Home Page
1998 Feb 23 - Mozilla Organization created by Netscape.
Mozilla escapes
1995-2001
Foundations coalesce
2001 Jan 15 - Wikipedia launched by Jimmy Wales and Larry Sanger.
Wikipedia spins off
2010 Sep 28 - Several members of the OpenOffice.org project form a new group called "The Document
Foundation".
Office politics
What is open source ?
Open Source Workshop 31
What Is Open Source?
 open source refers to software that is published under licenses that
defines how source code can be made available to everyone to
inspect, change, download, and explore as they wish.
 Open source is not a software methodology
 It is a way of developing ideas and software collaboratively in the open
 Open source is about software license
 Defines how the developers develop the software
 Defines how the users consume the software and contribute back
 Defines how the community interacts with one another
Open Source Workshop 32
What characterizes an open source?
 The community of software users and developers interested to
develop some idea in the open create the open source project
 The makeup of each open source project is identified by it’s philosophy, it’s
culture and it’s character defines an open source project.
 Community Philosophy: The software license used for the open source
project captures defines its philosophy
 Community Culture: Where the open source project is hosted can define its
community culture. For example Apache promotes a different culture than
Eclipse.
 Community Character:
 Each project can run differently even within a given open source embodiment.
The community decides on how to create, build and maintain the project.
 The technology offered by a project can also form the character of the project.
For a project that develops applications will be different than one that develops an
infrastructure.
Open Source Workshop 33
Open Source License
 License defines the community philosophy
 open source refers to software that is published under licenses that defines how
source code can be made available to everyone to inspect, change, download,
and explore as they wish.
 There are upward of 71 open source licenses which fall into 3
families:
 Give me credit
 Give me fixes
 Give me everything
Open Source Workshop 34
Open Source License Type – Give Me Credit
 Examples: AL, BSD, MIT
 Typical Characteristic:
 Derivatives can sub-license
 May have some conditions
 No warranty
 Credit to original authors required
 Limited control by any one entity
 Allows for commercial product development
 Allows for competing services
Open Source Workshop 35
Open Source License Type – Give Me Fixes
 Examples: Mozilla (MPL), Eclipse (EPL/CPL), LGPL
 Typical Characteristic:
 Single entity control, still ‘business friendly’. If you modify the code, you need to
make the modification available
 File or derivative based conditions
 Original author may have special rights
 Differentiate between source and binary
 Larger works can be under a different license
 Encourages incorporation of code into larger works
 Ensures direct development benefits all
Open Source Workshop 36
Open Source License Type – Give Me Everything
 Examples: GPL (GNU General Public License )
 Typical Characteristic:
 Also referred to COPY LEFT. If you use it, everything must be under this license
 Derivative works remain under the license
 Linked works may also remain under the license
 Ensures all ‘down stream’ have the same rights
 All direct development is contributed back
 Contributors assured code remains open source
 Encourages a full free software economy
 Copyright holder retains much control
 Limits commercial adoption: Forbids distribution for profit
 Software with this type of license cannot be included in Apache
projects
Open Source License Type – Give Me Everything
• GNU AGPL v3.0
 “AGPL fixes this “loophole” in GPL by saying that if you use the software over a
network, you are bound by the copyleft. Other than that, the license is virtually the
same as GPL v3.”
• What does it mean ?
 it is never required that applications are published/released.
 The copyleft applies to internal AGPL Software, meaning that changes to these
software needs to be published even though they have never been
published/released and are only used internally.
Open Source Workshop 38
Open Source: Most common Licenses
 Apache License, 2.0
 BSD licenses
 GNU General Public License (GPL)
 GNU Library or "Lesser" General Public License (LGPL)
 MIT license
 Mozilla Public License 1.1 (MPL)
 Common Development and Distribution License
 Eclipse Public License
 Artistic Licenses
Open Source Workshop 39
License Compatibility
 License compatibility refers to the problem with software licenses
which can contain contradictory requirements, rendering it
impossible to combine code from such packages in order to create
new software packages.
 Let’s consider the following scenario:
 Code distributed with license A says :"modified versions must mention the
developers in any advertising materials“
 Code distributed with license B says : "modified versions cannot contain additional
attribution requirements"
 These two licenses are considered license-incompatible. If
someone combine a software package which uses license A, with a
software package which uses license B, it would be impossible to
distribute the combination because the two requirements cannot be
simultaneously fulfilled.
License Compatibility (wikipedia): http://en.wikipedia.org/wiki/License_compatibility
Open Source Workshop 40
The Free-Libre / Open Source Software (FLOSS) License Slide (by David A. Wheeler) : http://www.dwheeler.com/essays/floss-license-slide.html
License Compatibility
Apache License and third-party licenses
 Authorized Licenses
 Apache License 2.0
 Apache Software License 1.1
 BSD (without advertising clause)
 MIT/X11
 ICU
 University of Illinois/NCSA
 W3C Software License
 X.Net
 zlib/libpng
 FSF autoconf license
 DejaVu Fonts
 Academic Free License 3.0
 Service+Component+Architecture+S
pecifications
 OOXML XSD ECMA License
 Microsoft Public License (MsPL)
 Creative Commons Attribution (CC-
A)
 Creative Commons Copyright-Only
Dedication
 Python Software Foundation License
 Adobe Postcript(R) AFM files
 Boost Software License Version 1.0
 Eclipse Distribution License 1.0
 License for CERN packages in COLT
Open Source Workshop
Apache third-party licensing policy : http://www.apache.org/legal/resolved.html
Apache License and third-party licenses
 Excluded Licenses
 Binary Code License - BCL*
 Special exceptions to the GNU
GPL (e.g. GNU Classpath)*
 GNU GPL 1, 2, 3
 GNU LGPL 2, 2.1, 3
 Affero GPL 3
 NPL 1.0/NPL 1.1
 QPL
 Sleepycat License
 Microsoft Limited Public License
 Code Project Open License
(CPOL)
Open Source Workshop
Apache third-party licensing policy : http://www.apache.org/legal/resolved.html
Open Source Workshop 43
Open Source Project Hosts
 Project umbrellas host the open source projects and can influence
the overall culture of a community
 Hosts provide infrastructure for open source project referred to as
PRIM:
 P (portal), R (repository), I (Issue tracking), M (mailing list)
 Can provide legal governance
 There are three main types of public open source hosts:
 Pure infrastructure
 Vendor collaboration
 Community focused
Open Source Workshop 44
Project Host Type 1: Pure Infrastructure
 Examples: SourceForge, CollabNet, Codehaus, googlecode, github
 Provide the infrastructure
 Sets overall rules (e.g. type of license permitted)
 Each project governs itself
 Often many small projects
 One or two developers, although may have lots of users
 Fairly small codebase
 Provide an incubator role
 Projects start under incubation and move to a more formal community when they
grow
Open Source Workshop 45
Project Host Type 2: Vendor Collaboration
 Examples: Eclipse, ObjectWeb, Mozilla
 Allows companies to collaborate
 Specifically acknowledge the role companies have
 Consider corporate needs
 Closer to commercial software development roadmap
 More planning and oversight
 (e.g.) have a architectural steering committee
 (e.g.) have an official project management committee
 Can be more conservative
 Eclipse recently created “Eclipse Project Incubator” as a place for
innovation and investigation of new and alternative ideas.
Open Source Workshop 46
Project Host Type 3: Community Focused
 Example: Apache Software Foundation
 Non-profit corporation
 No staff, all volunteer
 Elected membership
 Primary goal is to foster open source communities
 Provide technical infrastructure
 Provide legal oversight
 Projects start under incubation and once they demonstrate they can run as a
healthy Apache type project they graduate into an Apache top level project.
 Technocratic Meritocracy
 People earn status by what they do
 Project communities are very independent
 Project Management Committee (PMC) is a legal construct
 Binding decisions e.g. to release software
 Community decides direction and priorities
Open Source Workshop 47
Examples of Open Source projects
 Apache
 Web Server
 Community initiated (apache.org)
 Linux
 Operating System kernel
 Individual initiated (Linus Torvalds)
 Eclipse
 Universal Integration platform
 Extensible application framework
supporting solution based plug-ins
 IT Vendor initiated (IBM and
others)
 Mozilla
 Browser and client technology
 Hybrid (Netscape + community)
Open Source Community
Heart of an open source project
Open Source Workshop 48
Open Source Workshop 49
Traditional Commercial Software
 Separate User and Developer Community
 Feedback provided through Beta and early adaptor programs
 Agile development model can help to provide more frequent
feedback
USERS
“use the software”
DEVELOPER
S
“produce
the
software”
Open Source Workshop 50
Mixed Commercial – Share Code
 Code Is developed in the open and can be used readily
 Users provide feedback, but can’t modify the main repository
 Software is typically not free or a more advanced form of it is
licensed
USERS
“use the software”
DEVELOPER
S
“produce
the
software”
Open Source Workshop 51
Open Source – Collaborative Environment
 Code Is developed in the open and can be used readily
 Users can become involved in the development of the software
USERS
“use the software”
DEVELOPERS
“produce
the
software”
Open Source Workshop 52
Start of an Open Source Project
 Open Source projects typically start with
 A smaller developer community who have an idea to develop
 One or more users who can use the software
USERS
DEVELOPER
S
“produce
the
software”
Open Source Workshop 53
Who are the developers?
 A group of people interested to develop some idea in the open
collaboratively.
 Because ..
 They want to create software that solves their business problems
 Want to test new ideas in the market
 Want To participate in new technology development
 Want To test validity of standards through collaboration with users
 Maybe they get paid by an employer, it’s their job.
 Maybe it is just interesting to get involved in new technology!
 Participation in a successful project can open the door to fame and recognition
 …….
 There is no magic answer. This makes it good challenge to analyze how to attract developers for each
project
 IMPORTANT: Anyone interested can join in to help with the
development
 No invitation is required! Just get involved in what is interesting to you and share your
thoughts with the community.
 People from different backgrounds participate in open source. The key is to not be shy
about not having a high command of a given language. Source Code and technology
ideas become the common language.
Open Source Workshop 54
Open Source Project
 Open Source Brings Users and Developers together to
 Invent, develop, share experience, improve
 Overtime, users join the developers community to influence what they use (care
about).
USERS
“use and
produce
software”
DEVELOPERS
“produce the
software”
Open Source Workshop 55
Open Source Project
 A successful Open Source Community is an integrated user and
developer community who together they
 Invent, develop, share experience, improve
DEVELOPERSDevelopers
& users
contributing
Pure
users
Open Source Workshop 56
Open Source Project
 Open source project grows as users get more involved and new
developers join the project.
 Growth and adoption makes the project more stable and brings in
innovations.
growth
Developer
s
& users
contributin
g
DEVELOPERS
Developers
& users
contributing
Pure
users
Pure users
Open Source Workshop 57
Why is Community Important?
Code with
Community
Code without
community
Time
Factor of
Success
Community = Stability
ApacheCon 2006, Aaron Farr, www.cubiclemuses.com
Open Source Workshop 58
How to Grow a Community?
• Prerequisites
 Attractive Code Qualities
 Communication Infrastructure
 People who believe in the project and help it grow
DEVELOPERS
Developers
& users
contributing
Pure users
developers
?
How to
Get here
Open Source Workshop 59
Attractive Code Qualities for Starting OS projects
 Directly used by and useful to developers
 Builds
 Follows common standards where applicable
 Modular and flexible
 Consistent
 Enough documentation to help new developers to get started
 Enough test examples to help new developers to get started and be confident to test
their changes
 Can be improved
 Does not have to be functionality complete (Tough concept to grasp)
 Incremental, smaller checkins accompanied with discussions with the community get the community more involved and
enables others to participate in building the software.
Open Source Workshop 60
Communication Infrastructure
 Source code repository
 Issue Tracking
 Defines how problems can be reported.
 Provide a way to organize handling of many different ideas, feedbacks, etc.
 Website
 First impression of the project is from the website. It is important to have a good website
which clearly states objectives and introduces the visitor the to project
 Most developers don’t find this a fun thing to do! Find ways to make it happen.
 Documentation
 User documentation : Focuses on how to use the project
 Developer documentation: Focus on how to get involved
 Caution: ‘code talks’ does not work 100%. It is worth to spend time to share information
 Mailing list, newsgroup, or forum
 Communication should be open
 Engages everyone and solicits new ideas and participation
 Communication should be archived
 Archived information can be used to search for problems that were discussed before
 Provides a reference for decisions that were made
Open Source Workshop 61
How to attract a community?
 Good product and frequent releases
 Good documentation
 Examples of how to use the software
 Modular and flexible
 Lowers the barrier to entry for developers. Let’s them focus on areas that they are interested
in
 Facilitates adoption by allowing users to pick and choose what they need. Lower footprint.
 Have an open, inviting environment
 Mentor new people to learn the project and feel comfortable to contribute
 But, that’s not enough!
 People need to know about your project to download and use it or come to the site to
participate.
 Talk about the project and how it solves the given business problem through Conferences, Forums,
Articles, …
Open Source Workshop 62
Summary
 Open Source brings Users and Developers from all around world
together to invent, develop, share ideas, …
 Community is the heart of Open Source
 Community = stability
 Starting and growing of an open source project requires
 Code
 Infrastructure
 And, dedication and effort to build the community
The Apache Software Foundation
The State of the Feather
The ASF
 What is the ASF ?
 What does the ASF do ?
 Name some ASF projects you know ?
 Have you used/contributed to the project ?
The ASF
➡ ASF == The Apache Software Foundation
➡ Before the ASF there was “The Apache Group” (~2006)
➡ But we needed a more formal and legal entity
➡ The ASF was incorporated in 1999
➡ Governed solely by members - 100% member based entity
The ASF
➡ Non-profit corporation founded in 1999
➡ 501( c )3 public charity
➡ Volunteer organization (The ASF doesn’t pay anyone to work on
Apache projects)
➡ Virtual world-wide organization - Membership of Individuals
➡ Exists to provide the organizational, legal, and financial support for
various OSS projects - let the developers develop
The ASF
April 13, 1999 - The first official meeting of the Apache Software Foundation (not pictured).
The ASF
 Why call ourselves Apache ?
 No, it isn’t an attack helicopter
 A Patchy Server? Nope, that’s just a pun.
 A reference to our development philosophy:
“Characteristic of both Eastern and Western Apache, with the exception of the
Kiowa Apache, was the lack of a centralized tribal organization. The band, an
autonomous collection of small local groups within a given locality, was the
primary political unit as well as the primary warring and raiding unit. The
strongest headman of the local groups was recognized as an informal chief, and
several bands might be united under one leader. Chieftainship was thus not
generally hereditary.” Encyclopaedia Britannica
At the start
➡ There were only 21 members
➡ And 2 “projects”: httpd and Concom
➡ All servers and services were donated
Today...
➡ We have 468 members...(!)
➡ and 59 emeritus member
➡ >100 TLPs
➡ >30 Incubator podlings
➡ 36 Labs
➡ 16 in the Attic
➡ Tons of committers (literally)
➡ (Over 3000 people)
Apache Mission
 Provide open source software to the public free of charge
 Provides a foundation for open, collaborative software development
projects
 supplies hardware
 Supplies communication, and business infrastructure
 Create an independent legal entity to which companies and
individuals can donate resources and be assured that those
resources will be used for the public benefit
Open Source Workshop 71
The ASF’s Mission
 Provide a means for individual volunteers to be sheltered from legal
suits directed at the Foundation’s projects
 Protect the ‘Apache’ brand, as applied to its software products, from
being abused by other organizations
 Provide legal and technical infrastructure for open source software
development and to perform appropriate oversight of such software
Vision Statement
➡ The Apache Software Foundation provides support for the Apache
community of open-source software projects. The Apache projects
are characterized by a collaborative, consensus based development
process, an open and pragmatic software license, and a desire to
create high quality software that leads the way in its field. We
consider ourselves not simply a group of projects sharing a server,
but rather a community of developers and users.
Vision Statement, Take 2
➡ Community created code
➡ Our code should be exceptional
Structure of the ASF - legal
➡ Member-based corporation - individuals only
➡ Members nominate and elect new members
➡ Members elect a board - 9 seats
➡ Semi-annual meetings via IRC
➡ Each PMC has a Chair - eyes and ears of the board (oversight only)
ASF “Org Chart”
Development Administrative
Users
Patchers/Buggers
Contributors
Committers
PMC Members
Members
Officers
Board
~430
9
~100
~4500
~2000
Technical Oversight Organizational Oversight
PMCs
(TLPs)
~100
Elects
ReportsAppoints
Creates
&
Updates
Staying true
➡ Policy still firmly in the hands of the ASF
➡ Use outsourced help where needed
➡ Help volunteers, not replace them (if they want to do the work)
➡ Only for administrative efforts
➡ 3 FT sys-admins, 1 PT sys-admin
➡ 1 PT Exec Assistant
➡ Infrastructure itself is a service provided by the ASF
Staying true
➡ Board/Infra/etc exists so projects and people don’t need to worry
about it
➡ The ASF exists for the projects, the community and the
membership.
➡ Our “best practices” have proven themselves time and time again to
work.
➡ The board runs the foundation
The PMCs run the projects
(and rarely do the 2 interact)
Overview
➡ In general, PMCs are active and healthy!
➡ Lots of releases
➡ Lots of development
➡ New committers and PMC members
➡ New podlings being added (eg: CloudStack)
➡ New projects being graduated (eg: OpenOffice)
➡ ASF continues to be recognized as FOSS leader
Protection
➡ Ensuring that IP is checked (oversight and governance)
➡ Tracking and handling any legal issues
➡ Protecting the ASF brand and trademarks
14 Years is a LONG time
➡ Over a decade of declarative discussion and development
➡ We must be doing something right
➡ By maintaining our focus on the right direction - the projects and community
➡ Not all things to all people, and we don’t want to be
➡ Growth, improvement without speciation
➡ The “Apache Way” continues to be a sought-after topic at cons.
Open Source Workshop 82
Apache License
 Apache License Philosophy
 To allow the maximum use of our software for any purpose and by all people.
 Give me Credit type
 Requires Attribution via a NOTICE file
 Credits to original author is required, derivatives can sub-license
 No Trademark Grant
 Includes patent grant
 A liberal open source software license
 Business friendly
 Easily reused by other projects & organizations
Open Source Workshop 83
Apache Infrastructure
 Provide legal and technical infrastructure for open source software
development and to perform appropriate oversight of such software
 provide a foundation for open, collaborative software development
projects by supplying hardware, communication, and business
infrastructure
 Portal (confluence and moin moin wikis, content management for website)
 Repository for source, SVN and GIT for source control
 Issue Tracking, JIRA and Bugzilla for bug tracking
 Mailing Lists, all the communication
 Also provides integration build infrastructure and many more
Open Source Workshop 84
Apache Roles
User Contributor Committer PMC ASF Member
Less Involvement More Involvement
 Apache Contributors/Committers are viewed as individual
contributors, independent of their potential company affiliation
 Individuals are recognized for their contributions and can assume
more responsibility.
 Products are owned by project community.
 Emphasis on community stewardship.
Aaron Farr, http://www.slideshare.net
Open Source Workshop 85
Apache Roles Definition (1 of 2)
 User
 Uses the software and provides feedback in the form of bug or feature requests.
 Contributor/Developer
 Contributes to the development of the project.
 Takes the extra steps to participate in the project: Active on the mailing list,
participate in discussions, provide patches, documentation, website updates, new
features, etc.
 Committer
 Committer is a developer that has been given write access to the code repository
and has a signed Contributor License Agreement (CLA) on file. They have an
@apache.org mail address
Open Source Workshop 86
Apache Roles Definition (2 of 2)
 PMC (Project Management Committee) Member
 Each project has a project management committee who makes decisions for the project,
such as software releases and community related decisions.
 A committer become a PMC member as a result of their involvement in the community
matters related to the project.
 PMC Chair
 The Chair of a Project Management Committee (PMC) is appointed by PMC Members.
 The Chair is the interface between the Apache Board and the Project. He/she reports status
of the project on a regular basis.
 Apache Software Foundation (ASF) Member
 An ASF member is a person that was nominated by current members and elected due to
merit for the evolution and progress of the foundation. Members care for the ASF itself.
Open Source Workshop 87
The Apache Philosophy – “The Apache Way”
 Meritocracy – It’s about what you do, those who contribute decide
 Peer to Peer
 We work with people, not companies.
 Committers and members should hold one another with respect.
 All votes hold the same weight.
 Community over code.
 Consensus decision making
 Most decisions made on mailing list without voting, sometimes by way of lazy consensus
 Typically use Wikis for proposals and design sharing
 Voting rules : Yes (+1) Abstain (0) No (veto or -1)
 A -1 veto requires proposal of an alternate solution
 Open, online communication
 Email lists are preferred form of communication.  The most used and preferred
 Most communication is publicly archived.
 Most lists are open to any subscriber
 Responsible oversight
 Security is mandatory
 Ensure license compliance
 Release only high quality software
 No abuse of Apache brand or community
Open Source Workshop 88
What is Karma ?
 A Buddhist/Hindu conceptions of the sum of a person's actions
which dictate his future (lives).
 Now, with regards to open source, your good actions and
contributions come back to you as “karma” or “permission to a given
resource” (e.g. when you become a committer, you receive karma to
source code repository).
Open Source Workshop 89
How to Become a User?
 Simply download and use the open source project.
 Report bugs
 Talk to the project community through user mailing list
 Ask questions that will help you build your solution
 Provides feedback to the project
 Usage feedback is important - Examples, here is how we are using the project.
It is working well in these cases and it can be improved in these cases.
 Helps the developers to create software that addresses real use case scenarios.
 Creates a user community who can help each other to use the software properly
Open Source Workshop 90
How to become a contributor/developer?
 Actively participate on the project mailing list by answering user
questions, contributing to design discussions, etc.
 Start providing fixes (patches) and small enhancements to code,
documentation, website.
Open Source Workshop 91
How to become a committer ?
 Projects recognize contribution and extends the committer role to
high contributors. This means:
 Write access to code and an @apache.org mailing address. It requires a signed
CLA in place.
 One gains committer status through contribution as well as by
gaining the trust of the PMC.
 The criteria is really defined by the character of each project, that is what PMC
believes is important to the project. What is important to that project. Some
general characteristics:
 Dedication
 Attention to code quality and project guidelines
 How well this person collaborates with the rest of the community
 How openly they work
Open Source Workshop 92
How to Get Involved with Apache?
 Apache is a non-profit organization run by volunteers
 Apache sponsors can provide monetary support:
http://apache.org/foundation/sponsorship.html
 It is the closest and most direct method for a corporation or individual to support
the ASF
 The ASF provides the infrastructure for the projects - the mailing lists, code
repositories, bug tracking systems, etc. While all of the administrative effort is
currently through unpaid volunteers, financial assistance to purchase bandwidth
and keep servers running is required.
 If interested to get more involved with ASF, start with the above link
How to get involved with
Open Source Projects?
Open Source Workshop 93
IBM Software Group
Getting Involved
Open Source Workshop 94
Getting Involved
 Quality Assurance
 Bug Fixers
 Tech Writers
 Level one support
 Issue Tracker
 Mailing List
 Web Site
 Be proactive
 Begin with the end in
mind
 Put first things first
 Seek first to
understand
 Think Win-Win
 Synergize
Open Source Workshop 95
Open Source Workshop 96
I have been hearing a lot
about this open source
project called Apache
Tuscany. How can I learn
more about it ?
Get to know the project
 Learn about the project
 Project overview and subproject pages
 Ask questions on the project mailing list
 Subscribe to the mailing list and talk to
the community
 Ask questions. Any questions is good
 Download distribution
 Typically latest release is the best to start with
 Run getting started tutorial
 Run samples, demos
 Use samples and demos to better understand
how to use the project and learn details about
it’s features
Open Source Workshop 97
For service composition
& management
For Data Handling
Project Overview: http:/tuscany.apache.org
Open Source Workshop 98
How to ask questions?
Note: Send an empty email to get registered.
 You will get an email that you need to reply to. Simply reply, no text. This
Activates your subscription
• You can always unregister yourself
•Once registered, you will see other user questions once on this mailing list
Open Source Workshop 99
How to develop applications
How to help with Tuscany development and extend it
Documentation
Open Source Workshop 100
I have started using
Apache Tuscany. How
can I get more involved ?
Getting Involved
 Check “Get involved” page. It
explains some ways to get
involved.
 Report a problem:
 Report problems via JIRA
 Describe problem and attach a test
 Provide input
 Features that are important and provide
use cases to help the community
understand why something is important
 Provide feedback based on your
experience
 Become a reference for the project
Open Source Workshop 101
Get Involved Page
Open Source Workshop 102
Reporting Problems: Use JIRA system
Open Source Workshop 103
How do I create a JIRA?
JIRA System
 If first time user, create a login
account: User id and password
 You define your own user id and
password
 If not a first time user, login to
create a JIRA or to update a JIRA
Open Source Workshop 104
Creating a JIRA
•Provide a one liner summary that describes
the issue
•Select the area that was affected
•Select the version of the code that you are
using
•Provide necessary environment information
•Provide detailed description and any stack
traces on the description
•Provide a test case to reproduce if can be
done
Open Source Workshop 105
Subscribing and using the mailing lists
 Different mailing list types
 User – Used by users to ask questions or help each other
 Development – Used by developers to discuss designs, releases, roadmaps. JIRA updates
get routed to this mailing list
 Committs – where code commits are sent to. A good way to see what is progressing in the
project
 You can subscribe, unsubscribe or watch archive of these mailing lists. You
cannot respond to emails from archive.
 Subscribing to Tuscany user list
 <list>-subscribe@<project>.apache.org
 <e.g.> user-subscribe@tuscany.apache.org
 Unsubscribing from Tuscany user list
 <list>-unsubscribe@<project>.apache.org
 <e.g.> user-unsubscribe@project.apache.org
 Browsing Tuscany Mailing Archives
 http://www.mail-archive.com/
 http://apache.markmail.org
 http://mail-archives.apache.org/mod_mbox/
Open Source Workshop 106
Asking questions on the project mailing list
 Feel VERY COMFORTABLE to ask ANY kind of questions to help you understand
the project. There is no bad or good questions.
 Remember that the project is a community effort and most people working
on the project are volunteers.
 The way you ask questions can play in how you get answers
 You get quicker answer if you share information about how your investigation went and
where you are blocked
 Search archive mailing list and FAQ to see if you can find your answer.
 Search mailing list archive for similar topics
 Clear questions get clear answers
 Here is a nice guide for how to ask questions: http://www.catb.org/~esr/faqs/smart-questions.html
Open Source Workshop 107
Asking questions on the project mailing list
 Use meaningful, specific
subject headers
 Not helpful: HELP!
 Better: Webservice Error when running
App
 Be precise and informative
about your problem
 Describe the symptoms of your problem
or bug carefully and clearly.
 Do the best you can to anticipate the
questions someone could ask back, and
answer them in advance in your request
for help.
 Volume is not precision
How to Ask questions the Smart Way : http://www.catb.org/~esr/faqs/smart-questions.html
Open Source Workshop 108
I think Apache Tuscany is a
great project to get involved
with. I like the idea and the
technology. How can I get
involved?
How to Contribute?
 Identify what areas you’d like to get involved
in
 Find JIRAs (reported problems) to fix in
that area
 Share with the community that you’d
like to help and which areas you are
interested in. They’ll help you find
pieces
 Check out roadmap (if there is one)
 Download Code
 Typically the ‘latest’ code branch is also
referred to as trunk
 Read relevant developer documentation
guides such as architecture doc, etc.
 Check out development guideline if any. It
usually has good hints for how to build and
get started
 Learn how the code works via samples,
Open Source Workshop 109
Java SCA
Open defects
Finding JIRAs to fix, good starting point
Open Source Workshop 110
• Anyone can read the code
• Anyone can provide a patch
• Only committers can write to the repository
• There are different subprojects under Java
(SCA, SDO, DAS, ..)
Download the code
Open Source Workshop 111
• DAS – Data Access Object
• SCA – Service Component Architecture
• SDO – Service Data Object
•Developers Guide with general info on how to check out code and build is on :
http://tuscany.apache.org/sca-java-development-guide.html
Open Source Workshop 112
How do I learn more
about a release?
Exploring open source releases
 Download the release
 There is a binary and source distribution
for each supported platform
 Check important distribution
artifacts
 RELEASE_NOTES
 CHANGES
 Learn how the code works via
samples, tests
Open Source Workshop 113
Tuscany Binary and Source distribution
Java SCA source distribution
- Demos
- Distributions
- Integration Tests
- Implementation Modules
- Samples
- Tools
- Tutorial
Java SCA binary distribution
- Demos
- Binary Dependencies
- Tuscany binaries
- Samples
- Tutorial
Open Source Workshop 114
Running a sample from a distribution
 cd tuscany-sca-1.2.1-incubatingsamplescalculator
 ant run
 Buildfile: build.xml
 run:
 [java] 3 + 2=5.0
 [java] 3 - 2=1.0
 [java] 3 * 2=6.0
 [java] 3 / 2=1.5
Open Source Workshop 115
I have found this bug,
and have a fix for it. How
can I give it back to the
Tuscany Project ?
Contributing your fixes – Patch process
 Communicate to the community
that there is an issue by creating a
new JIRA issue
 Bugs
 New Features
 etc
 Discuss any design issues,
doubts, etc on the dev-list.
 Provide a patch
Open Source Workshop 116
Contributing your fixes – Patch process
 Configure your svn properties
 https://svn.apache.org/repos/asf/tuscany/java/etc/svn-props
 Checkout the code
 https://svn.apache.org/repos/asf/tuscany/java/sca/
 Use svn client or TortoiseSVN
 Modify a file(s)
 Edit modules/pom.xml
 New files need to be added
 svn add
 Check modified files
 svn status
 Generate patch
 Svn diff > my_updates.patch
 Attach the patch to the related JIRA. If a
JIRA does not exist, create one.
 Make sure you grant Apache License
 Make sure you mark the flag that says a patch is
included
 Someone in the community will pick up
the patch, review it and apply it or ask for
more information.
Open Source Workshop 117
Summary
 Getting involved in Apache Tuscany is easy
 Check Get involved
 Subscribe to the right mailing list and ask questions, provide your input and
contribute
 Plenty of choices:
 Report problems via JIRA
 Provide patches
 Contribute samples, scenarios
 Provide feedback on the project is working for you
 Contribute code
 Help with the website content, documentation
 ……..
 Any contribution is valued
Open Source Workshop 118
List of Apache Projects
 Apache TLPs
 http://projects.apache.org/indexes/quick.html
 Apache Podlings
 http://incubator.apache.org/
 Apache Labs
 http://labs.apache.org/
Open Source Workshop 119
Home Work – Find a project of your interest
 Familiarize with the project resources
 Web Site
 Documentation
 Subscribe to development and user list
How to Start an Apache Project?
Open Source Workshop 120
Open Source Workshop 121
Incubator Projects
 Apache projects start as incubator projects that are overseen by
incubator PMC. They are called podlings.
 Once a project demonstrates it can behave as a ‘good’ Apache
citizen, it graduates to a top level project
 It is a worthy and healthy project: diverse and will sustain itself
 It truly fits within the ASF framework
 It “gets” the Apache way
 Useful code
 Working Communication infrastructure
 Active developers
 Dedicated users
Open Source Workshop 122
About Apache Incubator
 Apache incubator is the entry path into The Apache Software Foundation
(ASF) for projects wishing to be part of the foundation’s effort.
 Details about Apache Incubator at
 http://incubator.apache.org/
 The Apache Incubator have two main goals :
 Ensure all donations are in accordance with the ASF legal standards
 Develop new communities that adhere to our guiding principles
 Incubator PMC provides oversight for new projects on the following areas :
 responsible for the acceptance and oversight of new products submitted or proposed to
become part of the Foundation
 Ensures that the projects develop products according to the Foundation's philosophy and
guidelines for collaborative development
 Legal – ensures donation are in accordance with legal standards
 Community – helps develops communities that adhere to guiding principles
 Regularly evaluates products to determine if the product should be abandoned, continue to
receive guidance and support, or proposed to the board for promotion to full project status as
part of an existing or new Foundation PMC;
Open Source Workshop 123
How to Start a New Incubator Project?
 Detailed Guidelines at this link:
 http://incubator.apache.org/guides/proposal.html#preamble
 Starts with a proposal… Formulate your proposal
 Find a champion. The Champion is a person associated with ASF already and helps move
the proposal forward.
 Identify mentors from ASF or ask for volunteers
 Find a sponsoring organization for the project. This could be:
 The Apache Board
 The incubator
 Another Apache Project
 Post the proposal in plain text in a email whose subject is prefixed with [PROPOSAL] at
general@incubator.apache.org
 Example: [Proposal] Photo Share Project for incubation
 If there is interest, the proposal gets discussed. Expect to revise your proposal with
input from the general discussion. Be Responsive and inviting.
 Once there is consensus on the proposal, post in a email proposal whose subject is prefix
with [Vote].
 Example: [Vote] Photo Share Project for incubation
 When Incubator PMC approves the project, mentors help set up the infrastructure (PRIM) for
the project.
Open Source Workshop 124
Tips for Building a successful project
 Make sure there is enough help/resource to jump start and drive the project
 Set clear expectations (pathway)
 Community should understand the purpose and focus
 Don’t worry about duplication
 Be willing to break up
 Open communication - extremely important
 Be inviting and help others to come on board
 Promote the project (blogs, conferences, articles)
 Release often and regularly
 Good documentation and website
 Lower the barrier to entry
 Integrate with other Apache projects if it makes sense
 Watch how other successful projects behave and work
 Use your mentors and the incubator PMC effectively
 Focus on creating a diverse and stable community
 And, be Patient.
DAY 2
Open Source Workshop 125
Open Source Tools
Overview
Open Source Workshop 126
Open Source Workshop 127
Topics
 Install development environment tools
 Subversion
 Git
 Maven
 Source Control Repositories
 Subversion
 Git
 Build and Dependency Management
 Maven
Installing development environment tools
 Subversion
 http://subversion.apache.org/packages.html
 Git
 http://git-scm.com/downloads
 Maven
 http://maven.apache.org/download.cgi
 Eclipse
 http://www.eclipse.org/downloads/
Open Source Workshop 128
Also available at:
http://10.0.0.3/icfoss
Wi-Fi :
ICFOSS-ROBOTICS
ICFOSS606
Subversion (SVN) 101
Open Source Workshop 129
Subversion
 Centralized source control repository
 Regular project structure
 Trunk – current development
 Branches – parallel development
 Tags – snapshots (e.g. release tags)
Open Source Workshop 130
Subversion useful commands
• Checkout source code
 svn co http://www.company.com/repo/project/trunk
 Ex. Svn co http://svn.apache.org/repos/asf/wink/trunk/ wink-svn
• Update current checkout
 svn update
• Check status of current checkout
 svn status
 Check differences
 svn diff
 svn diff >> changes.patch (create a patch with the current diff)
 Rollback changes
 svn revert file
 svn revert *
• Add new file
 svn add file/directory
• Commit files
 svn ci –m”Describe the contents of your commit”
Open Source Workshop 131
Subversion hands-on
 Find an ASF project using subversion
 Play with the basic subversion commands
Open Source Workshop 132
Git 101
Open Source Workshop 133
Git
 Distributed source control repository
 Regular project structure
 Trunk – current development
 Branches – parallel development
 Tags – snapshots (e.g. release tags)
Open Source Workshop 134
Git useful commands
• Checkout source code
 git clone http://www.company.com/repo/project/trunk
 E.g : git clone git://git.apache.org/wink.git
• Update current checkout
 git pull --rebase
• Check status of current checkout
 git status
 Check differences
 git diff
 git format-patch >> changes.patch (create a patch with the current diff)
 Rollback changes
 git reset –soft / --hard
 git checkout file
• Add new file
 git add file/directory
• Commit files
 git add file // git commit –a –m”Describe the contents of your commit”
 git commit –a –m”Describe the contents of your commit”
 git push
 git svn dcommit for git-svn bridge
Open Source Workshop 135
Git branch workflow
 Clone the repository for the first time
git clone git://git.apache.org/wink.git
 Update the repository
git pull –rebase
git svn rebase for git-svn bridge
 Workflow
git checkout –b JIRA-101 creates a new branch
git commit –a –m”JIRA-101 – My updates” commit all files changed
git commit –a –amend updated commit with new changes
git rebase master get changes from master
git push push changes to remote repo
git svn dcommit push changes in case of git-svn bridge
git checkout master goes back to master branch
 Updating a branch with changes from master
git rebase master
Open Source Workshop 136
Git hands-on
 Find an ASF project using GIT
 Play with the basic GIT commands
Open Source Workshop 137
Maven 101
Open Source Workshop 138
What is Maven
 A Java project management and integration build tool
 Based on the concept of XML Project Object Model (POM)
 Favors convention over configuration
 Project Structure
 Repository Layout
 Etc
 Modular build platform
 Extensible via plugins (a.k.a MOJO’s)
Open Source Workshop 139
Maven Build Lifecycle (Phases)
Phases
 Validate
 Compile
 Test
 Package
 Install
 Site
 Deploy
Plugins + Goals
 Maven-java-plugin:compile
 Maven-test-plugin:test
 Maven-jar-plugin:jar
 <project>
…
<packaging>jar</packaging>
…
 </project>
Open Source Workshop 140
Maven Repository
 Repositories
 No more libs in source code
 Public repositories
 Central, etc
 Internal repository (Nexus, Artifactory, etc)
 Proxy repository
 Local repositories
 <project>
…
<repositories>
<repository>
<id>central</id>
<url>http://repo.internal.company.com:8081/releases</url>
</repository>
</repositories>
…
</project>
Open Source Workshop 141
Artifactory
Internal Repo
Public Maven
Repos
/m2
/repository
/org
/apache
/com
/google
Internet
Internet
Maven Dependency Management
<project>
…
<dependencies>
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-binding-rest-runtime</artifactId>
<version>2.0-M5</version>
<packaging>jar</packaging>
</dependency>
</dependencies>
…
</project>
http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/tuscany/sca/tuscany-
binding-rest-runtime/2.0-M5/tuscany-binding-rest-runtime-2.0-M5.jar
Open Source Workshop 142
Maven Project Structure
Open Source Workshop 143
Maven Project Configuration
 Configuration is entered in XML format in a Project Object Model or
POM
 Projects are structured in a hierarchy and project configuration is
inherited by sub-projects
 If no parent is specified, parent is called “Super” or “Parent POM”
Open Source Workshop 144
Maven Project Configuration
<project>
<parent>
<groupId>com.company.application</groupId>
<artifactId>parentProject</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.parent.application</groupId>
<artifactId>artifactName</artifactId>
<packaging>pom</packaging>
<name>artifactName</name>
<modules>
<module>…</module>
<module>…</module>
</modules>
</project>
Modules must map to directory
structure
Open Source Workshop 145
Maven useful commands
 Build
 mvn clean install
 Build in offline mode
 mvn clean install -o
 Build and force updating/downloading dependencies
 mvn -U clean install
 Build without executing unit tests
 mvn clean install -Dmaven.test.skip=true
 Build and report errors only at the end (fail at end)
 mvn -fae clean install
 Build and don’t report errors (fail never)
 mvn -fn clean install
 Execute only one test case
 mvn -Dtest=ComponentServiceReferenceTestCase
Clean is optional, but omitting it might cause
unexpected issues.
Open Source Workshop 146
Maven useful commands
• Put maven in debug mode
 mvnDebug
• Identify 3rd
party dependencies with maven dependency plugin
 mvn dependency:analyze
 mvn dependency:copy-dependencies
 mvn dependency:tree
Open Source Workshop 147
Maven with Eclipse
Maven Eclipse plugins
 The goal of the Eclipse m2eclipse project is to provide Apache Maven support in
the Eclipse IDE, making it easier to edit Maven's pom.xml, run a build from the
IDE and much more. For Java developers, the very tight integration with JDT
greatly simplifies the consumption of Java artifacts.
 http://download.eclipse.org/technology/m2e/releases
Open Source Workshop 148
Suggested Homework
Open Source Workshop 149
Github Project
 Create a github java project
 Create new repository
 Create a maven java project
 Add some business logic
 Add tests to verify your business logic
 Build
 With tests
 Without tests
Open Source Workshop 150
Github collaboration
 Provide a patch for your colleague project
 Do a simple change on your colleague project
 Submit a pull request
 Add a bit more change (simulating a update based on feedback)
 Submit a pull request
 Owner should accept pull request and merge changes
 If you can’t find an owner, I will create a simple project and you can use that
 My github account : lresende
Open Source Workshop 151
DAY 3
Open Source Workshop 152
How mentoring programs can help you get
started with open source
Why Mentoring ?
Open Source Project
You
Why Mentoring
Open Source Project
Mentor
Why Mentoring ?
 What to expect from the mentor
 Will help you get familiar with the open source community, and help you interact
with the existent community
 Your mentor might also help with technical questions/issues, but this might not be
a complete requirement
What mentoring programs are
available ?
Google Summer of Code
Google Summer of Code
 Goals
 Inspire students to engage in open source development and also give them more
exposure to real-world software development scenarios
 Eligibility Requirements
 Must be 18 years old by program announcement/start
 Must be a student.
Google Summer of Code
 Restrictions
 Code only
 Summer only
 Students only
Google Summer of Code
 How it works ?
Project Ideas Project Proposals
Mentoring
&
Evaluations
Google Summer of Code
 Google Summer of Code web page
 http://code.google.com/soc/
 Google Summer of Code FAQ
 http://code.google.com/soc/2009/faqs.html
 Google Summer of Code discussion group
 http://groups.google.com/group/google-summer-of-code-discuss
 IRC Channel
 IRC Freenode #gsoc channel
Google Code-In
Google Code-In
 Goals
 Inspire young students to engage and contribute to open source communities
 Eligibility Requirements
 Must be between 13-18 years old
 Must be a student.
Google Code-In
 Google Code-In web page
 http://code.google.com/opensource/gci
 Google Code-In FAQ
 http://code.google.com/opensource/gci/2010-11/faqs.html
Apache Mentoring Programme
Apache Mentoring Programme
 Goals
 Foster a greater community around the various Apache Projects
 Introduce The Apache Way to people new to Apache and open source in general
Apache Mentoring Programme
 Restrictions ?
NO RESTRICTIONS …
 Any contribution
 Any time
 Anyone
Apache Mentoring Programme
 How it works ?
Project Ideas Project Proposals
Mentoring
&
Evaluations
Apache Mentoring Programme
 Finding a local mentor
 http://community.zones.apache.org/
Apache Mentoring Programme
 Community Development web page
 http://community.apache.org
 Mentoring Programme web page
 http://community.apache.org/mentoringprogramme.html
 FAQ
 http://community.apache.org/newbiefaq.html
ASF & ICFOSS
Mentoring Programme
Programme Information
 Mentoring Programme Page
 http://community.apache.org/mentoringprogramme-icfoss-pilot.html
Open Source Workshop 173
Schedule
 June 20 Local Workshop at ICFOSS headquarters in Kerala - India
 June 24 - July 12 Would-be student participants discuss application ideas with ASF projects
 July 15 Students project proposal submission opens
 July 19 Students project proposal submission deadline
 July 22 - August 02 Mentors review and rank students project proposals
 August 05 Accepted student proposals announced
 August 05 Students start coding their project proposal with Mentor guidance
 September 09 Mentors and students can begin submitting mid-term evaluations
 September 13 Mid-term evaluation deadline
 October 21 Suggested 'DCUT' date, where students should then scrub code, enhance documentation.
 October 28 Mentors and students can begin submitting final evaluations
 November 1 Final evaluation deadline
Open Source Workshop 174
Finding Apache Projects
 List of Apache Projects
 http://projects.apache.org/indexes/quick.html
 List of Incubator Projetcs
 http://incubator.apache.org
Open Source Workshop 175
Finding Project Ideas
 ICFOSS Project Ideas
 http://s.apache.org/icfoss2013ideas
 Google Summer of Code Project Ideas
 http://s.apache.org/gsoc2013ideas
The workflow
Select
an area of
interest
(e.g. Cloud,
Big Data, Services)
Find an Apache
Project
on that area
Find
JIRA (ideas)
for that Project
Contact Mentor
that submitted
the idea
Start creating
your project
proposal
Discuss/Review
project proposal
with mentor
(using dev list)
ICFOSS Project Ideas
http://s.apache.org/icfoss2013ideas
Google Summer of Code Project Ideas
http://s.apache.org/gsoc2013ideas
List of Apache Projects
http://projects.apache.org/indexes/quick.html
List of Incubator Projetcs
http://incubator.apache.org
Creating your project proposal
 Start as early as possible
 The earlier you start working on your proposal the higher is your chance to get
accepted.
 Focus on quality
 Make one good proposal, instead of few half baked ones
 Get involved in the project community
 Subscribe to the development list and discuss your proposal with your mentor and
others on the community
 Be descriptive when writing the proposal
 Describe in detail the idea being proposed, and how is your approach to
implement it.
 Describe the technical details (this shows you have a clear idea of what needs to
be done). Some high level system diagrams is a plus.
 Write a timeline
 Include a detailed schedule of your project
Open Source Workshop 178
Examples of project proposals
 Searching artifact across SCA Domains
 https://cwiki.apache.org/confluence/display/TUSCANYWIKI/Searching+artifacts+across+SCA+domain
 GIMPLE to GRAPHITE transformation
 http://students.fim.uni-passau.de/~grosser/gcc_soc/
 Nmap Scripting Engine – Infrastructure Manager
 http://opendz.org/users/tixxdz/gsoc/gsoc_2010_proposal_nmap_scripting_engine_short_version.pdf
Open Source Workshop 179
Thank You !!!
Open Source Workshop 180
Notice
 This presentation contains contents from “Secret Life of Open
Source” slides, originally created by “Ted Husted”.
 This presentation contains contents from “The State of the Feather”
slides, originally created by Jim Jagielski, which are licensed under
a Creative Commons Attribution 3.0 Unported License.
Open Source Workshop 181
Additional information
Open Source Workshop 182
How companies use open source
Open Source Workshop 183
How companies use open source
 Internal forking
 Pros
 Quicker to produce fixes for
internal
environments/deployments.
 Cons
 Requires deep knowledge
of the source code
 Can’t easily move to new
releases
 If a must, at least
maintain a internal
branch for the fork
Open Source Workshop 184
Trunk
Release 1.x
Release 2.x
Internal fork
How companies use open source
 Partial forking, where
fixes are provided back to
community
 Pros
 Quicker to produce fixes for
internal
environments/deployments.
 Fixes are provided to the
community
 Provide a path for moving
to new releases
 Cons
 Depending on how often
codes are contributed back,
things can get very apart
Open Source Workshop 185
Trunk
Release 1.x
Release 2.x
Internal fork
How companies use open source
 Working on the
community
 Pros
 Always in sync with latest
fixes
 Cons
 In general can be a bit
slower depending on the
community
 Can introduce regressions,
which can be mitigated by
test coverage in the
community source
Open Source Workshop 186
Trunk
Release 1.x
Release 2.x
Internal code drop

More Related Content

What's hot

Government ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock InGovernment ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock InJeremy Brown
 
Develop, Deploy, Iterate Often.
Develop, Deploy, Iterate Often.Develop, Deploy, Iterate Often.
Develop, Deploy, Iterate Often.J On The Beach
 
Social Connections Amsterdam 2012 - Extensibility of IBM Connections
Social Connections Amsterdam 2012 - Extensibility of IBM ConnectionsSocial Connections Amsterdam 2012 - Extensibility of IBM Connections
Social Connections Amsterdam 2012 - Extensibility of IBM ConnectionsNiklas Heidloff
 
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...Antti Koskela
 
Scaling face recognition with big data - Bogdan Bocse
 Scaling face recognition with big data - Bogdan Bocse Scaling face recognition with big data - Bogdan Bocse
Scaling face recognition with big data - Bogdan BocseITCamp
 
As Software eats the World, APIs eat Software
As Software eats the World, APIs eat SoftwareAs Software eats the World, APIs eat Software
As Software eats the World, APIs eat Software3scale
 
Gdsc lbce offline accelerator meet -1
Gdsc lbce offline accelerator meet -1Gdsc lbce offline accelerator meet -1
Gdsc lbce offline accelerator meet -1Diksha71
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsOlaf Janssen
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays
 
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionCitizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionAntti Koskela
 
PouchDB - The Database That Syncs
PouchDB - The Database That SyncsPouchDB - The Database That Syncs
PouchDB - The Database That SyncsAll Things Open
 
Publishing your research results with an open source foundation
Publishing your research results with an open source foundationPublishing your research results with an open source foundation
Publishing your research results with an open source foundationOpen Source Experience
 
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveRed Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveJeremy Brown
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienITCamp
 
5/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'165/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'16Kangaroot
 
Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...Open Source Experience
 
Why citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXWhy citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXDavidPeake15
 
Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Antti Koskela
 

What's hot (20)

Querix Lycia: 4GL is modern!
Querix Lycia: 4GL is modern!Querix Lycia: 4GL is modern!
Querix Lycia: 4GL is modern!
 
Government ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock InGovernment ICT 2.0 - Removing The G-Cloud Lock In
Government ICT 2.0 - Removing The G-Cloud Lock In
 
Develop, Deploy, Iterate Often.
Develop, Deploy, Iterate Often.Develop, Deploy, Iterate Often.
Develop, Deploy, Iterate Often.
 
Social Connections Amsterdam 2012 - Extensibility of IBM Connections
Social Connections Amsterdam 2012 - Extensibility of IBM ConnectionsSocial Connections Amsterdam 2012 - Extensibility of IBM Connections
Social Connections Amsterdam 2012 - Extensibility of IBM Connections
 
Opensourceshift
OpensourceshiftOpensourceshift
Opensourceshift
 
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...
Citizen Developer Tools (session at SharePoint Saturday Twin Cities 4/14/2018...
 
Scaling face recognition with big data - Bogdan Bocse
 Scaling face recognition with big data - Bogdan Bocse Scaling face recognition with big data - Bogdan Bocse
Scaling face recognition with big data - Bogdan Bocse
 
As Software eats the World, APIs eat Software
As Software eats the World, APIs eat SoftwareAs Software eats the World, APIs eat Software
As Software eats the World, APIs eat Software
 
Gdsc lbce offline accelerator meet -1
Gdsc lbce offline accelerator meet -1Gdsc lbce offline accelerator meet -1
Gdsc lbce offline accelerator meet -1
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
 
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday sessionCitizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
Citizen Developer Tools @ Valo Solutions / Blue Meteorite Monday session
 
PouchDB - The Database That Syncs
PouchDB - The Database That SyncsPouchDB - The Database That Syncs
PouchDB - The Database That Syncs
 
Publishing your research results with an open source foundation
Publishing your research results with an open source foundationPublishing your research results with an open source foundation
Publishing your research results with an open source foundation
 
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss PerspectiveRed Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
Red Hat Forum London 2014 - Delivering Innovation at Speed, A JBoss Perspective
 
From Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines KergosienFrom Developer to Data Scientist - Gaines Kergosien
From Developer to Data Scientist - Gaines Kergosien
 
5/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'165/ GitHub Inner Source @ OPEN'16
5/ GitHub Inner Source @ OPEN'16
 
Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...Choisir le bon business model et la bonne licence pour la survie de son proje...
Choisir le bon business model et la bonne licence pour la survie de son proje...
 
Why citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEXWhy citizen developers should be your new best friend - Oracle APEX
Why citizen developers should be your new best friend - Oracle APEX
 
Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...Citizen Developer Tools are not just for Citizen Developers (session at Share...
Citizen Developer Tools are not just for Citizen Developers (session at Share...
 

Viewers also liked

Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...
Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...
Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...Janith Rukman
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...WSO2
 
Performance Evaluation Of IEEE 802.11p For Vehicular Communication Networks
Performance Evaluation Of IEEE 802.11p For Vehicular Communication NetworksPerformance Evaluation Of IEEE 802.11p For Vehicular Communication Networks
Performance Evaluation Of IEEE 802.11p For Vehicular Communication NetworksAmir Jafari
 
The “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingThe “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingAlison Chaiken
 

Viewers also liked (6)

RDBMS_IT_Lecture_View_Via_SQL
RDBMS_IT_Lecture_View_Via_SQLRDBMS_IT_Lecture_View_Via_SQL
RDBMS_IT_Lecture_View_Via_SQL
 
Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...
Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...
Driver Development for IEEE WAVE (802.11p/1609.x) based wireless module with ...
 
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...Git workshop - University of Moratuwa, Department of Computer Science and Eng...
Git workshop - University of Moratuwa, Department of Computer Science and Eng...
 
802.11p
802.11p802.11p
802.11p
 
Performance Evaluation Of IEEE 802.11p For Vehicular Communication Networks
Performance Evaluation Of IEEE 802.11p For Vehicular Communication NetworksPerformance Evaluation Of IEEE 802.11p For Vehicular Communication Networks
Performance Evaluation Of IEEE 802.11p For Vehicular Communication Networks
 
The “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingThe “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I Networking
 

Similar to Asf icfoss-mentoring

An Open Source Workshop
An Open Source WorkshopAn Open Source Workshop
An Open Source Workshophalehmahbod
 
Open Source
Open SourceOpen Source
Open Sourcenqfaq
 
OPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATIONOPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATIONRitwick Halder
 
Understanding and implementation of open source ecosystems final
Understanding and implementation of open source ecosystems finalUnderstanding and implementation of open source ecosystems final
Understanding and implementation of open source ecosystems finalRachit Technology Pvt Ltd
 
Open Source Licensing
Open Source LicensingOpen Source Licensing
Open Source LicensingJohn Lewis
 
A kick-start into Open Source
A kick-start into Open SourceA kick-start into Open Source
A kick-start into Open SourceAbhiram Ravikumar
 
Intro to FOSS
Intro to FOSSIntro to FOSS
Intro to FOSSmgamal87
 
Introduction to FOSS
Introduction to FOSSIntroduction to FOSS
Introduction to FOSSmgamal87
 
Open Source Presentation To Portal Partners2
Open Source Presentation To Portal Partners2Open Source Presentation To Portal Partners2
Open Source Presentation To Portal Partners2Viet NguyenHoang
 
Open source software
Open source softwareOpen source software
Open source softwareLaFlame5
 
Open Source Software in Libraries
Open Source Software in LibrariesOpen Source Software in Libraries
Open Source Software in LibrariesSukhdev Singh
 
Intellectual Property Open Source Software Movement
Intellectual Property   Open Source Software MovementIntellectual Property   Open Source Software Movement
Intellectual Property Open Source Software Movementaliraza786
 
Open Source Software Concepts
Open Source Software ConceptsOpen Source Software Concepts
Open Source Software ConceptsJITENDRA LENKA
 

Similar to Asf icfoss-mentoring (20)

An Open Source Workshop
An Open Source WorkshopAn Open Source Workshop
An Open Source Workshop
 
Open Source
Open SourceOpen Source
Open Source
 
OPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATIONOPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATION
 
Understanding and implementation of open source ecosystems final
Understanding and implementation of open source ecosystems finalUnderstanding and implementation of open source ecosystems final
Understanding and implementation of open source ecosystems final
 
Open Source Software
Open Source SoftwareOpen Source Software
Open Source Software
 
Opensource
OpensourceOpensource
Opensource
 
Open source
Open sourceOpen source
Open source
 
Open Source Licensing
Open Source LicensingOpen Source Licensing
Open Source Licensing
 
Ijetr042189
Ijetr042189Ijetr042189
Ijetr042189
 
foss_19-9
foss_19-9foss_19-9
foss_19-9
 
A kick-start into Open Source
A kick-start into Open SourceA kick-start into Open Source
A kick-start into Open Source
 
Intro to FOSS
Intro to FOSSIntro to FOSS
Intro to FOSS
 
Introduction to FOSS
Introduction to FOSSIntroduction to FOSS
Introduction to FOSS
 
Open source software and os
Open source software and osOpen source software and os
Open source software and os
 
Open Source Presentation To Portal Partners2
Open Source Presentation To Portal Partners2Open Source Presentation To Portal Partners2
Open Source Presentation To Portal Partners2
 
Open source software
Open source softwareOpen source software
Open source software
 
Open Source Lecture
Open Source LectureOpen Source Lecture
Open Source Lecture
 
Open Source Software in Libraries
Open Source Software in LibrariesOpen Source Software in Libraries
Open Source Software in Libraries
 
Intellectual Property Open Source Software Movement
Intellectual Property   Open Source Software MovementIntellectual Property   Open Source Software Movement
Intellectual Property Open Source Software Movement
 
Open Source Software Concepts
Open Source Software ConceptsOpen Source Software Concepts
Open Source Software Concepts
 

More from Luciano Resende

A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfLuciano Resende
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsLuciano Resende
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Luciano Resende
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...Luciano Resende
 
Ai pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksAi pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksLuciano Resende
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayLuciano Resende
 
Scaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloadsScaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloadsLuciano Resende
 
Jupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway OverviewJupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway OverviewLuciano Resende
 
Inteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeInteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeLuciano Resende
 
IoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache BahirIoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache BahirLuciano Resende
 
Getting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirGetting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirLuciano Resende
 
Open Source AI - News and examples
Open Source AI - News and examplesOpen Source AI - News and examples
Open Source AI - News and examplesLuciano Resende
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsLuciano Resende
 
Building iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache BahirBuilding iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache BahirLuciano Resende
 
An Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache SparkAn Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache SparkLuciano Resende
 
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017Luciano Resende
 
What's new in Apache SystemML - Declarative Machine Learning
What's new in Apache SystemML  - Declarative Machine LearningWhat's new in Apache SystemML  - Declarative Machine Learning
What's new in Apache SystemML - Declarative Machine LearningLuciano Resende
 
Big analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel GatewayBig analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel GatewayLuciano Resende
 
Jupyter con meetup extended jupyter kernel gateway
Jupyter con meetup   extended jupyter kernel gatewayJupyter con meetup   extended jupyter kernel gateway
Jupyter con meetup extended jupyter kernel gatewayLuciano Resende
 
Writing Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache BahirWriting Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache BahirLuciano Resende
 

More from Luciano Resende (20)

A Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdfA Jupyter kernel for Scala and Apache Spark.pdf
A Jupyter kernel for Scala and Apache Spark.pdf
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 Analytics
 
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
Elyra - a set of AI-centric extensions to JupyterLab Notebooks.
 
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
From Data to AI - Silicon Valley Open Source projects come to you - Madrid me...
 
Ai pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooksAi pipelines powered by jupyter notebooks
Ai pipelines powered by jupyter notebooks
 
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise GatewayStrata - Scaling Jupyter with Jupyter Enterprise Gateway
Strata - Scaling Jupyter with Jupyter Enterprise Gateway
 
Scaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloadsScaling notebooks for Deep Learning workloads
Scaling notebooks for Deep Learning workloads
 
Jupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway OverviewJupyter Enterprise Gateway Overview
Jupyter Enterprise Gateway Overview
 
Inteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for CodeInteligencia artificial, open source e IBM Call for Code
Inteligencia artificial, open source e IBM Call for Code
 
IoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache BahirIoT Applications and Patterns using Apache Spark & Apache Bahir
IoT Applications and Patterns using Apache Spark & Apache Bahir
 
Getting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache BahirGetting insights from IoT data with Apache Spark and Apache Bahir
Getting insights from IoT data with Apache Spark and Apache Bahir
 
Open Source AI - News and examples
Open Source AI - News and examplesOpen Source AI - News and examples
Open Source AI - News and examples
 
Building analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernelsBuilding analytical microservices powered by jupyter kernels
Building analytical microservices powered by jupyter kernels
 
Building iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache BahirBuilding iot applications with Apache Spark and Apache Bahir
Building iot applications with Apache Spark and Apache Bahir
 
An Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache SparkAn Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
An Enterprise Analytics Platform with Jupyter Notebooks and Apache Spark
 
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
The Analytic Platform behind IBM’s Watson Data Platform - Big Data Spain 2017
 
What's new in Apache SystemML - Declarative Machine Learning
What's new in Apache SystemML  - Declarative Machine LearningWhat's new in Apache SystemML  - Declarative Machine Learning
What's new in Apache SystemML - Declarative Machine Learning
 
Big analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel GatewayBig analytics meetup - Extended Jupyter Kernel Gateway
Big analytics meetup - Extended Jupyter Kernel Gateway
 
Jupyter con meetup extended jupyter kernel gateway
Jupyter con meetup   extended jupyter kernel gatewayJupyter con meetup   extended jupyter kernel gateway
Jupyter con meetup extended jupyter kernel gateway
 
Writing Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache BahirWriting Apache Spark and Apache Flink Applications Using Apache Bahir
Writing Apache Spark and Apache Flink Applications Using Apache Bahir
 

Recently uploaded

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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"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
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 

Recently uploaded (20)

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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"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...
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 

Asf icfoss-mentoring

  • 1. 1 The Apache Software Foundation Community Development Mentoring Programme India ICFOSS Luciano Resende (lresende@apache.org) Community Development, at Apache Software Foundation
  • 2. Open Source Workshop 2 Welcome!  Get to know each other  What would like to gain out of this workshop ?
  • 3. About me  Professionally  Joined IBM Brazil in 2000 as Senior Consultant on Lotus Products  Relocated to IBM US in 2001 to work on Lotus Organization  In 2006, joined the IBM AIM Organization, and started working on new technologies for WebSphere Application Server in open source  Left IBM in 2010 and joined the Platform & Architecture team at Shutterfly as Architect/Manager.  In 2012 rejoined IBM as Senior Software Engineer at IBM Big Data & Analytics group  Open Source  Started working on open source as part of my day job at IBM in 2006 working on Apache Tuscany.  Currently chair for the Community Development PMC and Wink PMC.  Have created and mentored various projects throughout Incubation
  • 4. Open Source Workshop 4 Day 1 Agenda Day 1: June 21st 2013  Learn about  Open Source  Open Source Licenses  Open Source Communities  Apache Software Foundation  How to get involved with an Apache project  Apache Incubator  Creating new projects
  • 5. Open Source Workshop 5 Day 2 Agenda Day 2: June 22nd 2013  Development hands-on  Setup development environment  Subversion  Git  Maven  Development tools overview  Hands-on exercises
  • 6. Open Source Workshop 6 Day 3 Agenda Day 3: June 23rd 2013  About Mentoring  Expectations from students  Working on project proposals
  • 7. Open Source Workshop 7 Post sessions Follow Up & Questions  Interaction will be through mailing list and open source  Students Mailing List :  students-subscribe@community.apache.org  students@community.apache.org  This presentation is available for download at :  http://people.apache.org/~lresende/presentations/asf-icfoss-mentoring.pdf
  • 9. Open Source Workshop 9 Topics  General knowledge about open source  Importance of Open Source  How it got started  What is Open Source  License  Infrastructure  Community
  • 10. Why Open Source ? September 1, 2013 10 ?
  • 11. Open Source Workshop 11 Why open source? -Open source impossible to avoid, Gartner says”, Network World -http://www.networkworld.com/news/2007/092007-open-source-unavoidable.html It’s “impossible to avoid” Gartner 2007 Study: By 2011, 80% of all commercial software will contain open source code Forrester 2008 Study: Study of 2,252 North American and European Software decision makers done by Forrester: 66% are interested in open-source software…. Open source seems to be a tactic for achieving the high priority initiatives. .. Web 2.0 technologies (such as blogs, wikis and RSS) and Service Oriented Architecture among their major software initiatives. -“Open source software: Just a Means to an End”, CIO magazine, March 2008
  • 12. Open Source Workshop 12 Why is Open Source important ?  Can be a major source of innovation!  It unites perspectives from a host of disciplines and brings ideas together from all around the world to  Rapidly solve business issues  Accelerate technological advancements  Stimulate economic growth  Enable new business models  OSS is a good approach for driving emerging open standards  Popular open source projects can become the common implementations  IT can benefit  Increased choice and flexibility  Lower costs  Quick response world-wide view of an OS project
  • 15. Some Statistics  $1.3 billion Red Hat 2012 revenue  3 million GitHub projects  80% commercial products with open source code  66% market share for Apache HTTP, Nginx and Lighttpd  > 50% market share for Firefox and Chrome  50% blue chip companies fully committed to open source  29% growth rate for Android
  • 16. How it all Started ?
  • 17. 1983 Sep 27 - GNU Project launched by Richard Stallman. Stallman appalled
  • 18. 1985 Mar 20 - GNU Emacs first public release. GNU Emacs and GCC
  • 19. 1985 May - Original patch program written. Patch and Perl
  • 20. 1991 August 6 - Info.cern.ch goes online World Wide What?
  • 21. 1991 August 25 - Linux first announced on Usenet. Linus - Unix = Linux
  • 22. 1993 Aug 16 - Debian Project Deb + Ian = Debian
  • 23. 1994 May - NCSA loses its web developer. McCool hangs five
  • 24. 1995 Feb - Apache Group form. The band gets together
  • 25. 1995 Jun 8 - PHP released publicly by Rasmus Lerdorf . Personal Home Page
  • 26. 1998 Feb 23 - Mozilla Organization created by Netscape. Mozilla escapes
  • 28. 2001 Jan 15 - Wikipedia launched by Jimmy Wales and Larry Sanger. Wikipedia spins off
  • 29. 2010 Sep 28 - Several members of the OpenOffice.org project form a new group called "The Document Foundation". Office politics
  • 30. What is open source ?
  • 31. Open Source Workshop 31 What Is Open Source?  open source refers to software that is published under licenses that defines how source code can be made available to everyone to inspect, change, download, and explore as they wish.  Open source is not a software methodology  It is a way of developing ideas and software collaboratively in the open  Open source is about software license  Defines how the developers develop the software  Defines how the users consume the software and contribute back  Defines how the community interacts with one another
  • 32. Open Source Workshop 32 What characterizes an open source?  The community of software users and developers interested to develop some idea in the open create the open source project  The makeup of each open source project is identified by it’s philosophy, it’s culture and it’s character defines an open source project.  Community Philosophy: The software license used for the open source project captures defines its philosophy  Community Culture: Where the open source project is hosted can define its community culture. For example Apache promotes a different culture than Eclipse.  Community Character:  Each project can run differently even within a given open source embodiment. The community decides on how to create, build and maintain the project.  The technology offered by a project can also form the character of the project. For a project that develops applications will be different than one that develops an infrastructure.
  • 33. Open Source Workshop 33 Open Source License  License defines the community philosophy  open source refers to software that is published under licenses that defines how source code can be made available to everyone to inspect, change, download, and explore as they wish.  There are upward of 71 open source licenses which fall into 3 families:  Give me credit  Give me fixes  Give me everything
  • 34. Open Source Workshop 34 Open Source License Type – Give Me Credit  Examples: AL, BSD, MIT  Typical Characteristic:  Derivatives can sub-license  May have some conditions  No warranty  Credit to original authors required  Limited control by any one entity  Allows for commercial product development  Allows for competing services
  • 35. Open Source Workshop 35 Open Source License Type – Give Me Fixes  Examples: Mozilla (MPL), Eclipse (EPL/CPL), LGPL  Typical Characteristic:  Single entity control, still ‘business friendly’. If you modify the code, you need to make the modification available  File or derivative based conditions  Original author may have special rights  Differentiate between source and binary  Larger works can be under a different license  Encourages incorporation of code into larger works  Ensures direct development benefits all
  • 36. Open Source Workshop 36 Open Source License Type – Give Me Everything  Examples: GPL (GNU General Public License )  Typical Characteristic:  Also referred to COPY LEFT. If you use it, everything must be under this license  Derivative works remain under the license  Linked works may also remain under the license  Ensures all ‘down stream’ have the same rights  All direct development is contributed back  Contributors assured code remains open source  Encourages a full free software economy  Copyright holder retains much control  Limits commercial adoption: Forbids distribution for profit  Software with this type of license cannot be included in Apache projects
  • 37. Open Source License Type – Give Me Everything • GNU AGPL v3.0  “AGPL fixes this “loophole” in GPL by saying that if you use the software over a network, you are bound by the copyleft. Other than that, the license is virtually the same as GPL v3.” • What does it mean ?  it is never required that applications are published/released.  The copyleft applies to internal AGPL Software, meaning that changes to these software needs to be published even though they have never been published/released and are only used internally.
  • 38. Open Source Workshop 38 Open Source: Most common Licenses  Apache License, 2.0  BSD licenses  GNU General Public License (GPL)  GNU Library or "Lesser" General Public License (LGPL)  MIT license  Mozilla Public License 1.1 (MPL)  Common Development and Distribution License  Eclipse Public License  Artistic Licenses
  • 39. Open Source Workshop 39 License Compatibility  License compatibility refers to the problem with software licenses which can contain contradictory requirements, rendering it impossible to combine code from such packages in order to create new software packages.  Let’s consider the following scenario:  Code distributed with license A says :"modified versions must mention the developers in any advertising materials“  Code distributed with license B says : "modified versions cannot contain additional attribution requirements"  These two licenses are considered license-incompatible. If someone combine a software package which uses license A, with a software package which uses license B, it would be impossible to distribute the combination because the two requirements cannot be simultaneously fulfilled. License Compatibility (wikipedia): http://en.wikipedia.org/wiki/License_compatibility
  • 40. Open Source Workshop 40 The Free-Libre / Open Source Software (FLOSS) License Slide (by David A. Wheeler) : http://www.dwheeler.com/essays/floss-license-slide.html License Compatibility
  • 41. Apache License and third-party licenses  Authorized Licenses  Apache License 2.0  Apache Software License 1.1  BSD (without advertising clause)  MIT/X11  ICU  University of Illinois/NCSA  W3C Software License  X.Net  zlib/libpng  FSF autoconf license  DejaVu Fonts  Academic Free License 3.0  Service+Component+Architecture+S pecifications  OOXML XSD ECMA License  Microsoft Public License (MsPL)  Creative Commons Attribution (CC- A)  Creative Commons Copyright-Only Dedication  Python Software Foundation License  Adobe Postcript(R) AFM files  Boost Software License Version 1.0  Eclipse Distribution License 1.0  License for CERN packages in COLT Open Source Workshop Apache third-party licensing policy : http://www.apache.org/legal/resolved.html
  • 42. Apache License and third-party licenses  Excluded Licenses  Binary Code License - BCL*  Special exceptions to the GNU GPL (e.g. GNU Classpath)*  GNU GPL 1, 2, 3  GNU LGPL 2, 2.1, 3  Affero GPL 3  NPL 1.0/NPL 1.1  QPL  Sleepycat License  Microsoft Limited Public License  Code Project Open License (CPOL) Open Source Workshop Apache third-party licensing policy : http://www.apache.org/legal/resolved.html
  • 43. Open Source Workshop 43 Open Source Project Hosts  Project umbrellas host the open source projects and can influence the overall culture of a community  Hosts provide infrastructure for open source project referred to as PRIM:  P (portal), R (repository), I (Issue tracking), M (mailing list)  Can provide legal governance  There are three main types of public open source hosts:  Pure infrastructure  Vendor collaboration  Community focused
  • 44. Open Source Workshop 44 Project Host Type 1: Pure Infrastructure  Examples: SourceForge, CollabNet, Codehaus, googlecode, github  Provide the infrastructure  Sets overall rules (e.g. type of license permitted)  Each project governs itself  Often many small projects  One or two developers, although may have lots of users  Fairly small codebase  Provide an incubator role  Projects start under incubation and move to a more formal community when they grow
  • 45. Open Source Workshop 45 Project Host Type 2: Vendor Collaboration  Examples: Eclipse, ObjectWeb, Mozilla  Allows companies to collaborate  Specifically acknowledge the role companies have  Consider corporate needs  Closer to commercial software development roadmap  More planning and oversight  (e.g.) have a architectural steering committee  (e.g.) have an official project management committee  Can be more conservative  Eclipse recently created “Eclipse Project Incubator” as a place for innovation and investigation of new and alternative ideas.
  • 46. Open Source Workshop 46 Project Host Type 3: Community Focused  Example: Apache Software Foundation  Non-profit corporation  No staff, all volunteer  Elected membership  Primary goal is to foster open source communities  Provide technical infrastructure  Provide legal oversight  Projects start under incubation and once they demonstrate they can run as a healthy Apache type project they graduate into an Apache top level project.  Technocratic Meritocracy  People earn status by what they do  Project communities are very independent  Project Management Committee (PMC) is a legal construct  Binding decisions e.g. to release software  Community decides direction and priorities
  • 47. Open Source Workshop 47 Examples of Open Source projects  Apache  Web Server  Community initiated (apache.org)  Linux  Operating System kernel  Individual initiated (Linus Torvalds)  Eclipse  Universal Integration platform  Extensible application framework supporting solution based plug-ins  IT Vendor initiated (IBM and others)  Mozilla  Browser and client technology  Hybrid (Netscape + community)
  • 48. Open Source Community Heart of an open source project Open Source Workshop 48
  • 49. Open Source Workshop 49 Traditional Commercial Software  Separate User and Developer Community  Feedback provided through Beta and early adaptor programs  Agile development model can help to provide more frequent feedback USERS “use the software” DEVELOPER S “produce the software”
  • 50. Open Source Workshop 50 Mixed Commercial – Share Code  Code Is developed in the open and can be used readily  Users provide feedback, but can’t modify the main repository  Software is typically not free or a more advanced form of it is licensed USERS “use the software” DEVELOPER S “produce the software”
  • 51. Open Source Workshop 51 Open Source – Collaborative Environment  Code Is developed in the open and can be used readily  Users can become involved in the development of the software USERS “use the software” DEVELOPERS “produce the software”
  • 52. Open Source Workshop 52 Start of an Open Source Project  Open Source projects typically start with  A smaller developer community who have an idea to develop  One or more users who can use the software USERS DEVELOPER S “produce the software”
  • 53. Open Source Workshop 53 Who are the developers?  A group of people interested to develop some idea in the open collaboratively.  Because ..  They want to create software that solves their business problems  Want to test new ideas in the market  Want To participate in new technology development  Want To test validity of standards through collaboration with users  Maybe they get paid by an employer, it’s their job.  Maybe it is just interesting to get involved in new technology!  Participation in a successful project can open the door to fame and recognition  …….  There is no magic answer. This makes it good challenge to analyze how to attract developers for each project  IMPORTANT: Anyone interested can join in to help with the development  No invitation is required! Just get involved in what is interesting to you and share your thoughts with the community.  People from different backgrounds participate in open source. The key is to not be shy about not having a high command of a given language. Source Code and technology ideas become the common language.
  • 54. Open Source Workshop 54 Open Source Project  Open Source Brings Users and Developers together to  Invent, develop, share experience, improve  Overtime, users join the developers community to influence what they use (care about). USERS “use and produce software” DEVELOPERS “produce the software”
  • 55. Open Source Workshop 55 Open Source Project  A successful Open Source Community is an integrated user and developer community who together they  Invent, develop, share experience, improve DEVELOPERSDevelopers & users contributing Pure users
  • 56. Open Source Workshop 56 Open Source Project  Open source project grows as users get more involved and new developers join the project.  Growth and adoption makes the project more stable and brings in innovations. growth Developer s & users contributin g DEVELOPERS Developers & users contributing Pure users Pure users
  • 57. Open Source Workshop 57 Why is Community Important? Code with Community Code without community Time Factor of Success Community = Stability ApacheCon 2006, Aaron Farr, www.cubiclemuses.com
  • 58. Open Source Workshop 58 How to Grow a Community? • Prerequisites  Attractive Code Qualities  Communication Infrastructure  People who believe in the project and help it grow DEVELOPERS Developers & users contributing Pure users developers ? How to Get here
  • 59. Open Source Workshop 59 Attractive Code Qualities for Starting OS projects  Directly used by and useful to developers  Builds  Follows common standards where applicable  Modular and flexible  Consistent  Enough documentation to help new developers to get started  Enough test examples to help new developers to get started and be confident to test their changes  Can be improved  Does not have to be functionality complete (Tough concept to grasp)  Incremental, smaller checkins accompanied with discussions with the community get the community more involved and enables others to participate in building the software.
  • 60. Open Source Workshop 60 Communication Infrastructure  Source code repository  Issue Tracking  Defines how problems can be reported.  Provide a way to organize handling of many different ideas, feedbacks, etc.  Website  First impression of the project is from the website. It is important to have a good website which clearly states objectives and introduces the visitor the to project  Most developers don’t find this a fun thing to do! Find ways to make it happen.  Documentation  User documentation : Focuses on how to use the project  Developer documentation: Focus on how to get involved  Caution: ‘code talks’ does not work 100%. It is worth to spend time to share information  Mailing list, newsgroup, or forum  Communication should be open  Engages everyone and solicits new ideas and participation  Communication should be archived  Archived information can be used to search for problems that were discussed before  Provides a reference for decisions that were made
  • 61. Open Source Workshop 61 How to attract a community?  Good product and frequent releases  Good documentation  Examples of how to use the software  Modular and flexible  Lowers the barrier to entry for developers. Let’s them focus on areas that they are interested in  Facilitates adoption by allowing users to pick and choose what they need. Lower footprint.  Have an open, inviting environment  Mentor new people to learn the project and feel comfortable to contribute  But, that’s not enough!  People need to know about your project to download and use it or come to the site to participate.  Talk about the project and how it solves the given business problem through Conferences, Forums, Articles, …
  • 62. Open Source Workshop 62 Summary  Open Source brings Users and Developers from all around world together to invent, develop, share ideas, …  Community is the heart of Open Source  Community = stability  Starting and growing of an open source project requires  Code  Infrastructure  And, dedication and effort to build the community
  • 63. The Apache Software Foundation The State of the Feather
  • 64. The ASF  What is the ASF ?  What does the ASF do ?  Name some ASF projects you know ?  Have you used/contributed to the project ?
  • 65. The ASF ➡ ASF == The Apache Software Foundation ➡ Before the ASF there was “The Apache Group” (~2006) ➡ But we needed a more formal and legal entity ➡ The ASF was incorporated in 1999 ➡ Governed solely by members - 100% member based entity
  • 66. The ASF ➡ Non-profit corporation founded in 1999 ➡ 501( c )3 public charity ➡ Volunteer organization (The ASF doesn’t pay anyone to work on Apache projects) ➡ Virtual world-wide organization - Membership of Individuals ➡ Exists to provide the organizational, legal, and financial support for various OSS projects - let the developers develop
  • 67. The ASF April 13, 1999 - The first official meeting of the Apache Software Foundation (not pictured).
  • 68. The ASF  Why call ourselves Apache ?  No, it isn’t an attack helicopter  A Patchy Server? Nope, that’s just a pun.  A reference to our development philosophy: “Characteristic of both Eastern and Western Apache, with the exception of the Kiowa Apache, was the lack of a centralized tribal organization. The band, an autonomous collection of small local groups within a given locality, was the primary political unit as well as the primary warring and raiding unit. The strongest headman of the local groups was recognized as an informal chief, and several bands might be united under one leader. Chieftainship was thus not generally hereditary.” Encyclopaedia Britannica
  • 69. At the start ➡ There were only 21 members ➡ And 2 “projects”: httpd and Concom ➡ All servers and services were donated
  • 70. Today... ➡ We have 468 members...(!) ➡ and 59 emeritus member ➡ >100 TLPs ➡ >30 Incubator podlings ➡ 36 Labs ➡ 16 in the Attic ➡ Tons of committers (literally) ➡ (Over 3000 people)
  • 71. Apache Mission  Provide open source software to the public free of charge  Provides a foundation for open, collaborative software development projects  supplies hardware  Supplies communication, and business infrastructure  Create an independent legal entity to which companies and individuals can donate resources and be assured that those resources will be used for the public benefit Open Source Workshop 71
  • 72. The ASF’s Mission  Provide a means for individual volunteers to be sheltered from legal suits directed at the Foundation’s projects  Protect the ‘Apache’ brand, as applied to its software products, from being abused by other organizations  Provide legal and technical infrastructure for open source software development and to perform appropriate oversight of such software
  • 73. Vision Statement ➡ The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users.
  • 74. Vision Statement, Take 2 ➡ Community created code ➡ Our code should be exceptional
  • 75. Structure of the ASF - legal ➡ Member-based corporation - individuals only ➡ Members nominate and elect new members ➡ Members elect a board - 9 seats ➡ Semi-annual meetings via IRC ➡ Each PMC has a Chair - eyes and ears of the board (oversight only)
  • 76. ASF “Org Chart” Development Administrative Users Patchers/Buggers Contributors Committers PMC Members Members Officers Board ~430 9 ~100 ~4500 ~2000 Technical Oversight Organizational Oversight PMCs (TLPs) ~100 Elects ReportsAppoints Creates & Updates
  • 77. Staying true ➡ Policy still firmly in the hands of the ASF ➡ Use outsourced help where needed ➡ Help volunteers, not replace them (if they want to do the work) ➡ Only for administrative efforts ➡ 3 FT sys-admins, 1 PT sys-admin ➡ 1 PT Exec Assistant ➡ Infrastructure itself is a service provided by the ASF
  • 78. Staying true ➡ Board/Infra/etc exists so projects and people don’t need to worry about it ➡ The ASF exists for the projects, the community and the membership. ➡ Our “best practices” have proven themselves time and time again to work. ➡ The board runs the foundation The PMCs run the projects (and rarely do the 2 interact)
  • 79. Overview ➡ In general, PMCs are active and healthy! ➡ Lots of releases ➡ Lots of development ➡ New committers and PMC members ➡ New podlings being added (eg: CloudStack) ➡ New projects being graduated (eg: OpenOffice) ➡ ASF continues to be recognized as FOSS leader
  • 80. Protection ➡ Ensuring that IP is checked (oversight and governance) ➡ Tracking and handling any legal issues ➡ Protecting the ASF brand and trademarks
  • 81. 14 Years is a LONG time ➡ Over a decade of declarative discussion and development ➡ We must be doing something right ➡ By maintaining our focus on the right direction - the projects and community ➡ Not all things to all people, and we don’t want to be ➡ Growth, improvement without speciation ➡ The “Apache Way” continues to be a sought-after topic at cons.
  • 82. Open Source Workshop 82 Apache License  Apache License Philosophy  To allow the maximum use of our software for any purpose and by all people.  Give me Credit type  Requires Attribution via a NOTICE file  Credits to original author is required, derivatives can sub-license  No Trademark Grant  Includes patent grant  A liberal open source software license  Business friendly  Easily reused by other projects & organizations
  • 83. Open Source Workshop 83 Apache Infrastructure  Provide legal and technical infrastructure for open source software development and to perform appropriate oversight of such software  provide a foundation for open, collaborative software development projects by supplying hardware, communication, and business infrastructure  Portal (confluence and moin moin wikis, content management for website)  Repository for source, SVN and GIT for source control  Issue Tracking, JIRA and Bugzilla for bug tracking  Mailing Lists, all the communication  Also provides integration build infrastructure and many more
  • 84. Open Source Workshop 84 Apache Roles User Contributor Committer PMC ASF Member Less Involvement More Involvement  Apache Contributors/Committers are viewed as individual contributors, independent of their potential company affiliation  Individuals are recognized for their contributions and can assume more responsibility.  Products are owned by project community.  Emphasis on community stewardship. Aaron Farr, http://www.slideshare.net
  • 85. Open Source Workshop 85 Apache Roles Definition (1 of 2)  User  Uses the software and provides feedback in the form of bug or feature requests.  Contributor/Developer  Contributes to the development of the project.  Takes the extra steps to participate in the project: Active on the mailing list, participate in discussions, provide patches, documentation, website updates, new features, etc.  Committer  Committer is a developer that has been given write access to the code repository and has a signed Contributor License Agreement (CLA) on file. They have an @apache.org mail address
  • 86. Open Source Workshop 86 Apache Roles Definition (2 of 2)  PMC (Project Management Committee) Member  Each project has a project management committee who makes decisions for the project, such as software releases and community related decisions.  A committer become a PMC member as a result of their involvement in the community matters related to the project.  PMC Chair  The Chair of a Project Management Committee (PMC) is appointed by PMC Members.  The Chair is the interface between the Apache Board and the Project. He/she reports status of the project on a regular basis.  Apache Software Foundation (ASF) Member  An ASF member is a person that was nominated by current members and elected due to merit for the evolution and progress of the foundation. Members care for the ASF itself.
  • 87. Open Source Workshop 87 The Apache Philosophy – “The Apache Way”  Meritocracy – It’s about what you do, those who contribute decide  Peer to Peer  We work with people, not companies.  Committers and members should hold one another with respect.  All votes hold the same weight.  Community over code.  Consensus decision making  Most decisions made on mailing list without voting, sometimes by way of lazy consensus  Typically use Wikis for proposals and design sharing  Voting rules : Yes (+1) Abstain (0) No (veto or -1)  A -1 veto requires proposal of an alternate solution  Open, online communication  Email lists are preferred form of communication.  The most used and preferred  Most communication is publicly archived.  Most lists are open to any subscriber  Responsible oversight  Security is mandatory  Ensure license compliance  Release only high quality software  No abuse of Apache brand or community
  • 88. Open Source Workshop 88 What is Karma ?  A Buddhist/Hindu conceptions of the sum of a person's actions which dictate his future (lives).  Now, with regards to open source, your good actions and contributions come back to you as “karma” or “permission to a given resource” (e.g. when you become a committer, you receive karma to source code repository).
  • 89. Open Source Workshop 89 How to Become a User?  Simply download and use the open source project.  Report bugs  Talk to the project community through user mailing list  Ask questions that will help you build your solution  Provides feedback to the project  Usage feedback is important - Examples, here is how we are using the project. It is working well in these cases and it can be improved in these cases.  Helps the developers to create software that addresses real use case scenarios.  Creates a user community who can help each other to use the software properly
  • 90. Open Source Workshop 90 How to become a contributor/developer?  Actively participate on the project mailing list by answering user questions, contributing to design discussions, etc.  Start providing fixes (patches) and small enhancements to code, documentation, website.
  • 91. Open Source Workshop 91 How to become a committer ?  Projects recognize contribution and extends the committer role to high contributors. This means:  Write access to code and an @apache.org mailing address. It requires a signed CLA in place.  One gains committer status through contribution as well as by gaining the trust of the PMC.  The criteria is really defined by the character of each project, that is what PMC believes is important to the project. What is important to that project. Some general characteristics:  Dedication  Attention to code quality and project guidelines  How well this person collaborates with the rest of the community  How openly they work
  • 92. Open Source Workshop 92 How to Get Involved with Apache?  Apache is a non-profit organization run by volunteers  Apache sponsors can provide monetary support: http://apache.org/foundation/sponsorship.html  It is the closest and most direct method for a corporation or individual to support the ASF  The ASF provides the infrastructure for the projects - the mailing lists, code repositories, bug tracking systems, etc. While all of the administrative effort is currently through unpaid volunteers, financial assistance to purchase bandwidth and keep servers running is required.  If interested to get more involved with ASF, start with the above link
  • 93. How to get involved with Open Source Projects? Open Source Workshop 93 IBM Software Group
  • 95. Getting Involved  Quality Assurance  Bug Fixers  Tech Writers  Level one support  Issue Tracker  Mailing List  Web Site  Be proactive  Begin with the end in mind  Put first things first  Seek first to understand  Think Win-Win  Synergize Open Source Workshop 95
  • 96. Open Source Workshop 96 I have been hearing a lot about this open source project called Apache Tuscany. How can I learn more about it ? Get to know the project  Learn about the project  Project overview and subproject pages  Ask questions on the project mailing list  Subscribe to the mailing list and talk to the community  Ask questions. Any questions is good  Download distribution  Typically latest release is the best to start with  Run getting started tutorial  Run samples, demos  Use samples and demos to better understand how to use the project and learn details about it’s features
  • 97. Open Source Workshop 97 For service composition & management For Data Handling Project Overview: http:/tuscany.apache.org
  • 98. Open Source Workshop 98 How to ask questions? Note: Send an empty email to get registered.  You will get an email that you need to reply to. Simply reply, no text. This Activates your subscription • You can always unregister yourself •Once registered, you will see other user questions once on this mailing list
  • 99. Open Source Workshop 99 How to develop applications How to help with Tuscany development and extend it Documentation
  • 100. Open Source Workshop 100 I have started using Apache Tuscany. How can I get more involved ? Getting Involved  Check “Get involved” page. It explains some ways to get involved.  Report a problem:  Report problems via JIRA  Describe problem and attach a test  Provide input  Features that are important and provide use cases to help the community understand why something is important  Provide feedback based on your experience  Become a reference for the project
  • 101. Open Source Workshop 101 Get Involved Page
  • 102. Open Source Workshop 102 Reporting Problems: Use JIRA system
  • 103. Open Source Workshop 103 How do I create a JIRA? JIRA System  If first time user, create a login account: User id and password  You define your own user id and password  If not a first time user, login to create a JIRA or to update a JIRA
  • 104. Open Source Workshop 104 Creating a JIRA •Provide a one liner summary that describes the issue •Select the area that was affected •Select the version of the code that you are using •Provide necessary environment information •Provide detailed description and any stack traces on the description •Provide a test case to reproduce if can be done
  • 105. Open Source Workshop 105 Subscribing and using the mailing lists  Different mailing list types  User – Used by users to ask questions or help each other  Development – Used by developers to discuss designs, releases, roadmaps. JIRA updates get routed to this mailing list  Committs – where code commits are sent to. A good way to see what is progressing in the project  You can subscribe, unsubscribe or watch archive of these mailing lists. You cannot respond to emails from archive.  Subscribing to Tuscany user list  <list>-subscribe@<project>.apache.org  <e.g.> user-subscribe@tuscany.apache.org  Unsubscribing from Tuscany user list  <list>-unsubscribe@<project>.apache.org  <e.g.> user-unsubscribe@project.apache.org  Browsing Tuscany Mailing Archives  http://www.mail-archive.com/  http://apache.markmail.org  http://mail-archives.apache.org/mod_mbox/
  • 106. Open Source Workshop 106 Asking questions on the project mailing list  Feel VERY COMFORTABLE to ask ANY kind of questions to help you understand the project. There is no bad or good questions.  Remember that the project is a community effort and most people working on the project are volunteers.  The way you ask questions can play in how you get answers  You get quicker answer if you share information about how your investigation went and where you are blocked  Search archive mailing list and FAQ to see if you can find your answer.  Search mailing list archive for similar topics  Clear questions get clear answers  Here is a nice guide for how to ask questions: http://www.catb.org/~esr/faqs/smart-questions.html
  • 107. Open Source Workshop 107 Asking questions on the project mailing list  Use meaningful, specific subject headers  Not helpful: HELP!  Better: Webservice Error when running App  Be precise and informative about your problem  Describe the symptoms of your problem or bug carefully and clearly.  Do the best you can to anticipate the questions someone could ask back, and answer them in advance in your request for help.  Volume is not precision How to Ask questions the Smart Way : http://www.catb.org/~esr/faqs/smart-questions.html
  • 108. Open Source Workshop 108 I think Apache Tuscany is a great project to get involved with. I like the idea and the technology. How can I get involved? How to Contribute?  Identify what areas you’d like to get involved in  Find JIRAs (reported problems) to fix in that area  Share with the community that you’d like to help and which areas you are interested in. They’ll help you find pieces  Check out roadmap (if there is one)  Download Code  Typically the ‘latest’ code branch is also referred to as trunk  Read relevant developer documentation guides such as architecture doc, etc.  Check out development guideline if any. It usually has good hints for how to build and get started  Learn how the code works via samples,
  • 109. Open Source Workshop 109 Java SCA Open defects Finding JIRAs to fix, good starting point
  • 110. Open Source Workshop 110 • Anyone can read the code • Anyone can provide a patch • Only committers can write to the repository • There are different subprojects under Java (SCA, SDO, DAS, ..) Download the code
  • 111. Open Source Workshop 111 • DAS – Data Access Object • SCA – Service Component Architecture • SDO – Service Data Object •Developers Guide with general info on how to check out code and build is on : http://tuscany.apache.org/sca-java-development-guide.html
  • 112. Open Source Workshop 112 How do I learn more about a release? Exploring open source releases  Download the release  There is a binary and source distribution for each supported platform  Check important distribution artifacts  RELEASE_NOTES  CHANGES  Learn how the code works via samples, tests
  • 113. Open Source Workshop 113 Tuscany Binary and Source distribution Java SCA source distribution - Demos - Distributions - Integration Tests - Implementation Modules - Samples - Tools - Tutorial Java SCA binary distribution - Demos - Binary Dependencies - Tuscany binaries - Samples - Tutorial
  • 114. Open Source Workshop 114 Running a sample from a distribution  cd tuscany-sca-1.2.1-incubatingsamplescalculator  ant run  Buildfile: build.xml  run:  [java] 3 + 2=5.0  [java] 3 - 2=1.0  [java] 3 * 2=6.0  [java] 3 / 2=1.5
  • 115. Open Source Workshop 115 I have found this bug, and have a fix for it. How can I give it back to the Tuscany Project ? Contributing your fixes – Patch process  Communicate to the community that there is an issue by creating a new JIRA issue  Bugs  New Features  etc  Discuss any design issues, doubts, etc on the dev-list.  Provide a patch
  • 116. Open Source Workshop 116 Contributing your fixes – Patch process  Configure your svn properties  https://svn.apache.org/repos/asf/tuscany/java/etc/svn-props  Checkout the code  https://svn.apache.org/repos/asf/tuscany/java/sca/  Use svn client or TortoiseSVN  Modify a file(s)  Edit modules/pom.xml  New files need to be added  svn add  Check modified files  svn status  Generate patch  Svn diff > my_updates.patch  Attach the patch to the related JIRA. If a JIRA does not exist, create one.  Make sure you grant Apache License  Make sure you mark the flag that says a patch is included  Someone in the community will pick up the patch, review it and apply it or ask for more information.
  • 117. Open Source Workshop 117 Summary  Getting involved in Apache Tuscany is easy  Check Get involved  Subscribe to the right mailing list and ask questions, provide your input and contribute  Plenty of choices:  Report problems via JIRA  Provide patches  Contribute samples, scenarios  Provide feedback on the project is working for you  Contribute code  Help with the website content, documentation  ……..  Any contribution is valued
  • 118. Open Source Workshop 118 List of Apache Projects  Apache TLPs  http://projects.apache.org/indexes/quick.html  Apache Podlings  http://incubator.apache.org/  Apache Labs  http://labs.apache.org/
  • 119. Open Source Workshop 119 Home Work – Find a project of your interest  Familiarize with the project resources  Web Site  Documentation  Subscribe to development and user list
  • 120. How to Start an Apache Project? Open Source Workshop 120
  • 121. Open Source Workshop 121 Incubator Projects  Apache projects start as incubator projects that are overseen by incubator PMC. They are called podlings.  Once a project demonstrates it can behave as a ‘good’ Apache citizen, it graduates to a top level project  It is a worthy and healthy project: diverse and will sustain itself  It truly fits within the ASF framework  It “gets” the Apache way  Useful code  Working Communication infrastructure  Active developers  Dedicated users
  • 122. Open Source Workshop 122 About Apache Incubator  Apache incubator is the entry path into The Apache Software Foundation (ASF) for projects wishing to be part of the foundation’s effort.  Details about Apache Incubator at  http://incubator.apache.org/  The Apache Incubator have two main goals :  Ensure all donations are in accordance with the ASF legal standards  Develop new communities that adhere to our guiding principles  Incubator PMC provides oversight for new projects on the following areas :  responsible for the acceptance and oversight of new products submitted or proposed to become part of the Foundation  Ensures that the projects develop products according to the Foundation's philosophy and guidelines for collaborative development  Legal – ensures donation are in accordance with legal standards  Community – helps develops communities that adhere to guiding principles  Regularly evaluates products to determine if the product should be abandoned, continue to receive guidance and support, or proposed to the board for promotion to full project status as part of an existing or new Foundation PMC;
  • 123. Open Source Workshop 123 How to Start a New Incubator Project?  Detailed Guidelines at this link:  http://incubator.apache.org/guides/proposal.html#preamble  Starts with a proposal… Formulate your proposal  Find a champion. The Champion is a person associated with ASF already and helps move the proposal forward.  Identify mentors from ASF or ask for volunteers  Find a sponsoring organization for the project. This could be:  The Apache Board  The incubator  Another Apache Project  Post the proposal in plain text in a email whose subject is prefixed with [PROPOSAL] at general@incubator.apache.org  Example: [Proposal] Photo Share Project for incubation  If there is interest, the proposal gets discussed. Expect to revise your proposal with input from the general discussion. Be Responsive and inviting.  Once there is consensus on the proposal, post in a email proposal whose subject is prefix with [Vote].  Example: [Vote] Photo Share Project for incubation  When Incubator PMC approves the project, mentors help set up the infrastructure (PRIM) for the project.
  • 124. Open Source Workshop 124 Tips for Building a successful project  Make sure there is enough help/resource to jump start and drive the project  Set clear expectations (pathway)  Community should understand the purpose and focus  Don’t worry about duplication  Be willing to break up  Open communication - extremely important  Be inviting and help others to come on board  Promote the project (blogs, conferences, articles)  Release often and regularly  Good documentation and website  Lower the barrier to entry  Integrate with other Apache projects if it makes sense  Watch how other successful projects behave and work  Use your mentors and the incubator PMC effectively  Focus on creating a diverse and stable community  And, be Patient.
  • 125. DAY 2 Open Source Workshop 125
  • 126. Open Source Tools Overview Open Source Workshop 126
  • 127. Open Source Workshop 127 Topics  Install development environment tools  Subversion  Git  Maven  Source Control Repositories  Subversion  Git  Build and Dependency Management  Maven
  • 128. Installing development environment tools  Subversion  http://subversion.apache.org/packages.html  Git  http://git-scm.com/downloads  Maven  http://maven.apache.org/download.cgi  Eclipse  http://www.eclipse.org/downloads/ Open Source Workshop 128 Also available at: http://10.0.0.3/icfoss Wi-Fi : ICFOSS-ROBOTICS ICFOSS606
  • 129. Subversion (SVN) 101 Open Source Workshop 129
  • 130. Subversion  Centralized source control repository  Regular project structure  Trunk – current development  Branches – parallel development  Tags – snapshots (e.g. release tags) Open Source Workshop 130
  • 131. Subversion useful commands • Checkout source code  svn co http://www.company.com/repo/project/trunk  Ex. Svn co http://svn.apache.org/repos/asf/wink/trunk/ wink-svn • Update current checkout  svn update • Check status of current checkout  svn status  Check differences  svn diff  svn diff >> changes.patch (create a patch with the current diff)  Rollback changes  svn revert file  svn revert * • Add new file  svn add file/directory • Commit files  svn ci –m”Describe the contents of your commit” Open Source Workshop 131
  • 132. Subversion hands-on  Find an ASF project using subversion  Play with the basic subversion commands Open Source Workshop 132
  • 133. Git 101 Open Source Workshop 133
  • 134. Git  Distributed source control repository  Regular project structure  Trunk – current development  Branches – parallel development  Tags – snapshots (e.g. release tags) Open Source Workshop 134
  • 135. Git useful commands • Checkout source code  git clone http://www.company.com/repo/project/trunk  E.g : git clone git://git.apache.org/wink.git • Update current checkout  git pull --rebase • Check status of current checkout  git status  Check differences  git diff  git format-patch >> changes.patch (create a patch with the current diff)  Rollback changes  git reset –soft / --hard  git checkout file • Add new file  git add file/directory • Commit files  git add file // git commit –a –m”Describe the contents of your commit”  git commit –a –m”Describe the contents of your commit”  git push  git svn dcommit for git-svn bridge Open Source Workshop 135
  • 136. Git branch workflow  Clone the repository for the first time git clone git://git.apache.org/wink.git  Update the repository git pull –rebase git svn rebase for git-svn bridge  Workflow git checkout –b JIRA-101 creates a new branch git commit –a –m”JIRA-101 – My updates” commit all files changed git commit –a –amend updated commit with new changes git rebase master get changes from master git push push changes to remote repo git svn dcommit push changes in case of git-svn bridge git checkout master goes back to master branch  Updating a branch with changes from master git rebase master Open Source Workshop 136
  • 137. Git hands-on  Find an ASF project using GIT  Play with the basic GIT commands Open Source Workshop 137
  • 138. Maven 101 Open Source Workshop 138
  • 139. What is Maven  A Java project management and integration build tool  Based on the concept of XML Project Object Model (POM)  Favors convention over configuration  Project Structure  Repository Layout  Etc  Modular build platform  Extensible via plugins (a.k.a MOJO’s) Open Source Workshop 139
  • 140. Maven Build Lifecycle (Phases) Phases  Validate  Compile  Test  Package  Install  Site  Deploy Plugins + Goals  Maven-java-plugin:compile  Maven-test-plugin:test  Maven-jar-plugin:jar  <project> … <packaging>jar</packaging> …  </project> Open Source Workshop 140
  • 141. Maven Repository  Repositories  No more libs in source code  Public repositories  Central, etc  Internal repository (Nexus, Artifactory, etc)  Proxy repository  Local repositories  <project> … <repositories> <repository> <id>central</id> <url>http://repo.internal.company.com:8081/releases</url> </repository> </repositories> … </project> Open Source Workshop 141 Artifactory Internal Repo Public Maven Repos /m2 /repository /org /apache /com /google Internet Internet
  • 143. Maven Project Structure Open Source Workshop 143
  • 144. Maven Project Configuration  Configuration is entered in XML format in a Project Object Model or POM  Projects are structured in a hierarchy and project configuration is inherited by sub-projects  If no parent is specified, parent is called “Super” or “Parent POM” Open Source Workshop 144
  • 146. Maven useful commands  Build  mvn clean install  Build in offline mode  mvn clean install -o  Build and force updating/downloading dependencies  mvn -U clean install  Build without executing unit tests  mvn clean install -Dmaven.test.skip=true  Build and report errors only at the end (fail at end)  mvn -fae clean install  Build and don’t report errors (fail never)  mvn -fn clean install  Execute only one test case  mvn -Dtest=ComponentServiceReferenceTestCase Clean is optional, but omitting it might cause unexpected issues. Open Source Workshop 146
  • 147. Maven useful commands • Put maven in debug mode  mvnDebug • Identify 3rd party dependencies with maven dependency plugin  mvn dependency:analyze  mvn dependency:copy-dependencies  mvn dependency:tree Open Source Workshop 147
  • 148. Maven with Eclipse Maven Eclipse plugins  The goal of the Eclipse m2eclipse project is to provide Apache Maven support in the Eclipse IDE, making it easier to edit Maven's pom.xml, run a build from the IDE and much more. For Java developers, the very tight integration with JDT greatly simplifies the consumption of Java artifacts.  http://download.eclipse.org/technology/m2e/releases Open Source Workshop 148
  • 150. Github Project  Create a github java project  Create new repository  Create a maven java project  Add some business logic  Add tests to verify your business logic  Build  With tests  Without tests Open Source Workshop 150
  • 151. Github collaboration  Provide a patch for your colleague project  Do a simple change on your colleague project  Submit a pull request  Add a bit more change (simulating a update based on feedback)  Submit a pull request  Owner should accept pull request and merge changes  If you can’t find an owner, I will create a simple project and you can use that  My github account : lresende Open Source Workshop 151
  • 152. DAY 3 Open Source Workshop 152
  • 153. How mentoring programs can help you get started with open source
  • 154. Why Mentoring ? Open Source Project You
  • 155. Why Mentoring Open Source Project Mentor
  • 156. Why Mentoring ?  What to expect from the mentor  Will help you get familiar with the open source community, and help you interact with the existent community  Your mentor might also help with technical questions/issues, but this might not be a complete requirement
  • 157. What mentoring programs are available ?
  • 159. Google Summer of Code  Goals  Inspire students to engage in open source development and also give them more exposure to real-world software development scenarios  Eligibility Requirements  Must be 18 years old by program announcement/start  Must be a student.
  • 160. Google Summer of Code  Restrictions  Code only  Summer only  Students only
  • 161. Google Summer of Code  How it works ? Project Ideas Project Proposals Mentoring & Evaluations
  • 162. Google Summer of Code  Google Summer of Code web page  http://code.google.com/soc/  Google Summer of Code FAQ  http://code.google.com/soc/2009/faqs.html  Google Summer of Code discussion group  http://groups.google.com/group/google-summer-of-code-discuss  IRC Channel  IRC Freenode #gsoc channel
  • 164. Google Code-In  Goals  Inspire young students to engage and contribute to open source communities  Eligibility Requirements  Must be between 13-18 years old  Must be a student.
  • 165. Google Code-In  Google Code-In web page  http://code.google.com/opensource/gci  Google Code-In FAQ  http://code.google.com/opensource/gci/2010-11/faqs.html
  • 167. Apache Mentoring Programme  Goals  Foster a greater community around the various Apache Projects  Introduce The Apache Way to people new to Apache and open source in general
  • 168. Apache Mentoring Programme  Restrictions ? NO RESTRICTIONS …  Any contribution  Any time  Anyone
  • 169. Apache Mentoring Programme  How it works ? Project Ideas Project Proposals Mentoring & Evaluations
  • 170. Apache Mentoring Programme  Finding a local mentor  http://community.zones.apache.org/
  • 171. Apache Mentoring Programme  Community Development web page  http://community.apache.org  Mentoring Programme web page  http://community.apache.org/mentoringprogramme.html  FAQ  http://community.apache.org/newbiefaq.html
  • 173. Programme Information  Mentoring Programme Page  http://community.apache.org/mentoringprogramme-icfoss-pilot.html Open Source Workshop 173
  • 174. Schedule  June 20 Local Workshop at ICFOSS headquarters in Kerala - India  June 24 - July 12 Would-be student participants discuss application ideas with ASF projects  July 15 Students project proposal submission opens  July 19 Students project proposal submission deadline  July 22 - August 02 Mentors review and rank students project proposals  August 05 Accepted student proposals announced  August 05 Students start coding their project proposal with Mentor guidance  September 09 Mentors and students can begin submitting mid-term evaluations  September 13 Mid-term evaluation deadline  October 21 Suggested 'DCUT' date, where students should then scrub code, enhance documentation.  October 28 Mentors and students can begin submitting final evaluations  November 1 Final evaluation deadline Open Source Workshop 174
  • 175. Finding Apache Projects  List of Apache Projects  http://projects.apache.org/indexes/quick.html  List of Incubator Projetcs  http://incubator.apache.org Open Source Workshop 175
  • 176. Finding Project Ideas  ICFOSS Project Ideas  http://s.apache.org/icfoss2013ideas  Google Summer of Code Project Ideas  http://s.apache.org/gsoc2013ideas
  • 177. The workflow Select an area of interest (e.g. Cloud, Big Data, Services) Find an Apache Project on that area Find JIRA (ideas) for that Project Contact Mentor that submitted the idea Start creating your project proposal Discuss/Review project proposal with mentor (using dev list) ICFOSS Project Ideas http://s.apache.org/icfoss2013ideas Google Summer of Code Project Ideas http://s.apache.org/gsoc2013ideas List of Apache Projects http://projects.apache.org/indexes/quick.html List of Incubator Projetcs http://incubator.apache.org
  • 178. Creating your project proposal  Start as early as possible  The earlier you start working on your proposal the higher is your chance to get accepted.  Focus on quality  Make one good proposal, instead of few half baked ones  Get involved in the project community  Subscribe to the development list and discuss your proposal with your mentor and others on the community  Be descriptive when writing the proposal  Describe in detail the idea being proposed, and how is your approach to implement it.  Describe the technical details (this shows you have a clear idea of what needs to be done). Some high level system diagrams is a plus.  Write a timeline  Include a detailed schedule of your project Open Source Workshop 178
  • 179. Examples of project proposals  Searching artifact across SCA Domains  https://cwiki.apache.org/confluence/display/TUSCANYWIKI/Searching+artifacts+across+SCA+domain  GIMPLE to GRAPHITE transformation  http://students.fim.uni-passau.de/~grosser/gcc_soc/  Nmap Scripting Engine – Infrastructure Manager  http://opendz.org/users/tixxdz/gsoc/gsoc_2010_proposal_nmap_scripting_engine_short_version.pdf Open Source Workshop 179
  • 180. Thank You !!! Open Source Workshop 180
  • 181. Notice  This presentation contains contents from “Secret Life of Open Source” slides, originally created by “Ted Husted”.  This presentation contains contents from “The State of the Feather” slides, originally created by Jim Jagielski, which are licensed under a Creative Commons Attribution 3.0 Unported License. Open Source Workshop 181
  • 183. How companies use open source Open Source Workshop 183
  • 184. How companies use open source  Internal forking  Pros  Quicker to produce fixes for internal environments/deployments.  Cons  Requires deep knowledge of the source code  Can’t easily move to new releases  If a must, at least maintain a internal branch for the fork Open Source Workshop 184 Trunk Release 1.x Release 2.x Internal fork
  • 185. How companies use open source  Partial forking, where fixes are provided back to community  Pros  Quicker to produce fixes for internal environments/deployments.  Fixes are provided to the community  Provide a path for moving to new releases  Cons  Depending on how often codes are contributed back, things can get very apart Open Source Workshop 185 Trunk Release 1.x Release 2.x Internal fork
  • 186. How companies use open source  Working on the community  Pros  Always in sync with latest fixes  Cons  In general can be a bit slower depending on the community  Can introduce regressions, which can be mitigated by test coverage in the community source Open Source Workshop 186 Trunk Release 1.x Release 2.x Internal code drop

Editor's Notes

  1. Open Source is important because it can bring together people from a many backgrounds to help solve common problems, which then benefit a wide range of users and customers. It can be an important source of innovation because of the collaboration it enables between developers from different backgrounds. Its community approach enables more people to solve common problems faster Open source encourages the implementation and acceptance of open standards, and the open source implementations can have wide distribution and acceptance Customers are already experiencing benefits through lower costs and increased choice And from an IT vendor, ISV or reseller point of view, it can open up new business opportunities
  2. 1983 Sep 27 - GNU Project launched by Richard Stallman with the goal to develop &quot; a sufficient body of free software [...] to get along without any software that is not free. &quot;
  3. 1985 Mar 20 - GNU Emacs first public release.   1987 May 23 - GNU Compiler Collection 1.0 is released.
  4. 1985 May - Original patch program written.    1987 - Perl 1.000 is unleashed.  
  5. 1991 August 6 - Info.cern.ch goes online, becoming the world’s first website.
  6. 1991 August 25 - Linux first announced on Usenet .
  7. 1993 Aug 16 - Debian Project was officially founded by Ian Murdock with the goal of to create a non-commercial distribution that will be able to effectively compete in the commercial market.
  8. 1994 May - NCSA loses its web developer, and development on the web server ceases.
  9. 1995 Feb - Apache Group forms with the goal to produce “ a revised version of NCSA 1.3 which has all the popular fixes in it directly, in order to have a supported server which actually meets our needs. ”       Brian Behlendorf Roy T. Fielding  Cliff Skolnick Rob Hartill  David Robinson Randy Terbush  Robert S. Thau  Andrew Wilson
  10. 1995 Jun 8 - PHP released publicly vy Rasmus Lerdorf .   PHP Group 2011 Thies C. Arntzen, Stig Bakken, Shane Caraveo, Andi Gutmans, Rasmus Lerdorf, Sam Ruby, Sascha Schumann, Zeev Suraski, Jim Winstead, Andrei Zmievski 
  11. 1998 Feb 23 - Mozilla Organization created by Netscape to co-ordinate the development of the Mozilla Application Suite .     
  12. 1995 Oct 4 - Free Software Foundation (FSF) is created to support the GNU Project .   1996 Feb - OSF mergs with X/Open to become The Open Group .   1997 Jun 16 - Software in the Public Interest founded to help Debian and other similar organizations develop and distribute open hardware and software. 1998 Feb - Open Source Initiative (OSI) formed as an educational, advocacy, and stewardship organization, and coins the term “open source”. Draws on Debian Free Software Guidelines for definition of open source. 1998 Feb 23 - Mozilla Organization created by Netscape to co-ordinate the development of the Mozilla Application Suite . 1999 Jun - Apache Software Foundation (ASF), formed from the Apache Group, is officially incorporated, with the goal of providing “ organizational, legal, and financial support for the Apache open-source software projects [...] to ensure that the Apache projects continue to exist beyond the participation of individual volunteers, to enable contributions of intellectual property and financial support, and to provide a vehicle for limiting legal exposure while participating in open-source projects. “   2001 - The FreeBSD Foundation is publically announced, dedicated to supporting and building the FreeBSD Project and community worldwide.       2001 Nov - Eclipse open source project announced by the Eclipse Consortium   2003 Jul 15 - The Mozilla Foundation founded by the Netscape-affiliated Mozilla Organization to support and provide leadership for the open source Mozilla project.       
  13. 2001 Jan 15 - Wikipedia launched by Jimmy Wales and Larry Sanger , growing to approximately 20,000 articles and 18 language editions by the end of 2001.Wikipedia was formally launched on January 15, 2001, as a single English-language edition at www.wikipedia.com, [32] and announced by Sanger on the Nupedia mailing list. [28]
  14. 2010 Sep 28 - Several members of the OpenOffice.org project form a new group called &quot;The Document Foundation&quot;.
  15. Typical Characteristic: Software “Commons” Derivatives can sub-license May have some conditions No warranty Credit to original authors required Universal donor Limited control by any one entity Little value in direct commercial licensing Allows for commercial product development Allows for competing services Commoditized and “low-level”
  16. Single entity control, still ‘business friendly’. If you modify the code, you need to make the modification available File or derivative based conditions Original author may have special rights Differentiate between source and binary Larger works can be under a different license Encourages incorporation of code into larger works Ensures direct development benefits all Tends towards libraries or platforms
  17. Also referred to COPY LEFT. If you use it, everything must be under this license Derivative works remain under the license Linked works may also remain under the license Ensures all ‘down stream’ have the same rights All direct development is contributed back Contributors assured code remains open source Encourages a full free software economy Copyright holder retains much control Limits commercial adoption: Forbids distribution for profit Dual-license business strategy
  18. Open Source projects come in all shapes and sizes and can have very different starting points – three examples are Apache, Linux and Eclipse. Apache started as a community developing a web server, and has now grown to be the host of a wide variety of open source projects under the auspices of the Apache Software Foundation. The Linux kernel started with an individual – Linus Torvalds – developing an operating system, but has now developed into a community approach across IT vendors such as IBM and Red Hat, organisations such as OSDL, and individuals Eclipse started with an IT vendor - IBM - donating the code of WebSphere Studio Workbench to open source and setting up a foundation, but has grown into a collaborative effort of IT vendors to build a common open source integrated development environment. Mozilla started with funding from AOL ’ s Netscape division and others, and is now a not-for-profit foundation and community of developers and users which produces the open-source Firefox web browser and Thunderbird e-mail software. There have also been subsequent code donations from various sources, including accessibility code donated by IBM to Firefox. The common theme across all three projects is the importance of “ open ” community with participation and collaboration encouraged from all sources. (And, not controlled or filtered by a single vendor with vested interests.)
  19. While GSoC is more towards codes and University students, Code-in is more flexible and allows code, documentation, training materials, etc