succeeding with foss!

Post on 23-Jun-2015

4.460 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Make your successful open source software http://mahtonu.wordpress.com

TRANSCRIPT

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)

Mailing ListsReply-to: discuss@lists.example.org

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")

ToolsMediaWiki - http://www.mediawiki.org

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/

top related