succeeding with foss!
DESCRIPTION
Make your successful open source software http://mahtonu.wordpress.comTRANSCRIPT
Succeeding with FOSS!Make your successful open source software
PHP DevCon 2012 Basis SoftEXPO 2012
For whom is this?
software developers and managers who are considering starting an open source project, or who have started one and are wondering what to do now.
What is inside?✓ Introducing FOSS
✓ Getting started
✓ Technical Infrastructure
✓ Social Infrastructure
✓ Managing Volunteers
✓ Money!
✓ Packaging, Releasing, and Daily Development
✓ Licenses, Copyrights, and Patents
What is FOSS anyway!
Free and Open Source Software
Now lets break it down
the "free software" sense
What do you think about the term ‘Free’?
Free Vs. Open Source
all free software is zero-cost, but not all zero-cost software is free
- Able to get the source code?- Have the right to modify or redistribute it?
“free as in freedom” – Stallman
Got Some Freaking Ideas!!!
How to get started?
Getting Started
Hell yeah! Getting started
The hardest part about launching a free software project is transforming a private vision into a public one
How?
Choose a Good NameRelevant to project
Easy to remember
Have a clear mission statement
The next thing people will look for is a quick description, a mission statement
Should be on the front page, preferably right under the project's name
Is that free?
State That the Project is Free
Like GIT did…
Features and Requirements List
Development StatusPeople always want to know how a project is doing
they want to know how actively it is maintained, how often it puts out new releases, how responsive it is likely to be to bug reports, etc.
Development StatusAlpha and Beta
The term alpha usually means a first release, with which users can get real work done and which has all the intended functionality, but which also has known bugs. The main purpose of alpha software is to generate feedback, so the developers know what to work on. The next stage, beta, means the software has had all the serious bugs fixed, but has not yet been tested enough to certify for release.
Downloads
The software should be downloadable as source code in standard formats.
Give a unique version number to the release
Communications Channels
Forums, mailing lists, chat rooms, and IRC channels
Announcinggo to http://freecode.com/, click on Submit in the top navigation bar, and fill out a form announcing your new project.
Post to mailing lists or newsgroups: to direct people to your project's own forums for follow-up discussion (by setting the Reply-to header).
Announcing
Technical issues
Website Pick *.org as official home
Centralized information from the project out to the public
Bind together the other tools (the version control system, bug tracker)
ToolsMailman — http://www.list.org/
PHPList - http://www.phplist.com/
SCM/ Version Control System
combination of technologies and practices for tracking and controlling changes to a project's files, in particular to source code, documentation, and web pages
If you have never used version control before, the first thing you should do is go find someone who has, and get them to join your project.
"We see you have expertise to make commits in a certain domain, so go for it."
"Not only are we asserting a limit on your expertise, we're also a bit suspicious about your intentions."
Version everything
Allow Committers
Browsability
Use branches to avoid bottlenecks
Code review
Change Log
Version Control Means You Can Relax
Tools
GIT (Distributed) - http://www.git-scm.org
Subversion (Centralized) - http://subversion.tigris.org/
Bug Tracker
The tracker must be connected to a mailing list
ToolsRedmine — http://www.redmine.org/
Bugzilla — http://www.bugzilla.org/
Flyspray — http://www.flyspray.org/
Trac — http://trac.edgewall.com/
RSS FeedsSpread your updates
WikisA wiki is a web site that allows any visitor to edit or extend its content;
"wiki" (from a Hawaiian word meaning "quick" or "super-fast")
Free Hosting! yummyThere are a few sites that provide free hosting and infrastructure for open source projects: a web area, version control, a bug tracker, a download area, chat forums, regular backups, etc.
you get a lot for free; what you give up, obviously, is fine-grained control over the user experience.
ToolsGitHub (Git)- http://github.com/
Google Code Hosting (Subversion and Mercurial ) http://code.google.com/hosting/
BitBucket (Git and Mercurial: integrates with JIRA, Jenkins, Pivotal Tracker) - https://bitbucket.org
Springloops (Git, SVN) - http://www.springloops.com/v2/
Get your codes into social & political issues
forkabilitythe ability of anyone to take a copy of the source code and use it to start a competing project,
Good or Bad?
if fewer than half of the developers are in favor?
Benevolent Dictators
Benevolent DictatorsThe benevolent dictator model is exactly what it sounds like: final decision-making authority rests with one person, who, by virtue of personality and experience, is expected to use it wisely.
Democracy"Wait, I didn't agree to that. We need to hash this out some more."
"I assume we all agree that this bug needs to be fixed, and that this is the way to fix it."
"Time to vote"
Democracy
Angel Volunteers
Getting the Most Out of Volunteers
Why do volunteers work on free software projects?
" hey! you do this Vs. who can do this?"
"Would you be willing to look at this bug?"
"Follow up"
Use "Praise & Criticism"
Use "Automation" i.e. testing
Share Management Tasks as Well as Technical Tasks
Translation Manager
Documentation Manager
Issue Manager
FAQ Manager
Committers, who?will bring the best results for the code?
"If you have 100 committers, 10 of whom make large changes on a regular basis, and the other 90 of whom just fix typos and small bugs a few times a year, that's still better than having only the 10. "
Credit
Credit is the primary
currency of
the free software world
Money! earnings or spendings
why open source projects get funded?
Everybody likes a prime idea
Corporate funding of free software development is not a new phenomenon
Sharing the burden
Augmenting servicesExample: CollabNet's support of http://subversion.tigris.org/
Undermining a competitorExample: http://www.openoffice.org/
Marketing - think image, think brand value
Dual-licensingExample: MySQL and Sleepycat
Donations (donation button, mugs, T-shirts)Example: www.wikipedia.org
Money Can't Buy You Love
Hey! Mr. Chowdhury! we dont want your so called company branding in our project
Google Summer of Code
For students: http://code.google.com/soc/
Kickstarter
Kickstarter is the world's largest funding platform for creative projects. Every week, tens of thousands of amazing people pledge millions of dollars to projects from the worlds of music, film, art, technology, design, food, publishing and other creative fields.
http://www.kickstarter.com/
Packaging, Releasing, and Daily Development
Release Numbering
Release Branches - always use a release branch
Maintaining Multiple Release Lines
Licenses, Copyrights, and Patents
Choosing a License and Applying It
The "Do Anything" LicensesIf you're comfortable with your project's code potentially being used in proprietary programs, then use an MIT/X-style license (http://www.opensource.org/licenses/mit-license.php)
The GPLIf you don't want your code to be used in proprietary programs, use the GNU General Public License (http://www.gnu.org/licenses/gpl.html).
Applying a License to Your Software
You don't need to include the actual text of the license there; just give the name of the license, and make it link to the full license text on another page.
The software itself must contain the license
The standard way to do this is to put the full license text in a file called COPYING (or LICENSE)
The GNU GPL says to put a notice like this at the top of each source file
Copyright (C) <year> <name of author>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
Dual Licensing Schemes
Patents
Who am i?m a hossain tonu
http://mahtonu.wordpress.com
@mahtonu
Writing a Book
coming this march
i dont have any licensing issues with these slides, cool!
Thanks :)
questions?
Reference
Producing Open Source Software - Karl Fogel
http://www.producingoss.com/