Towards

Community

Michael Meeks

<mmeeks@novell.com>

“Stand at the crossroads and look; ask for the ancient paths, ask where the good way is, and walk in it, and you will find rest for your souls...” - Jeremiah 6:16

(lets get there fast)

Overview

'Community' foo

The community – a snapshot

we're a success already

or are we ?

Barriers to entry

Release schedules

Credits

Conclusions

To try and demonstrate I planned this talk, and it has some vague structure

How to know when you've made it

You know when you're successful when you get E-mail like:

I see myself as something of visionary ...

Unfortunately this is true only of conventional projects

It is easy to get people to tell you what to do

We need a 'Management' project

suggested every so often in GNOME

Some wisdom from an old friend ...

OpenOffice.org 'successful' already

We got there by cheating however

no school of hard knocks

no experience attracting people

Charity creation

hire 1000 people to setup a charity that saves small furry animals ? no volenteers ?

Need to make OO.o hacking 'cool & fun'

servant leadership

help people do what they want to do

We are failing:

Gnome – 250cvs commits per day

OO.o – 10/15 patch issues per week

Our product is simply the best.

What is 'a community' ?

I have no idea what a community is

no-one has ever seen one

other people's seem to work better than ours

I care about working with my friends

sharp people, that are a pleasure to work with

people I like to spend time with / do things for

people I can help & who can help me back

guys I can have a laugh & a beer with

Get obsessed with metrics:

More Mono devel mail than OO.o 'discuss'

More E-mail ! - doing very well here

The patronising nonsense that people ramble out there

A photograph of the community:

People are normal – even hackers

Hackers work on what gives the best bang/consumed-evening

There is a random pool of people

Or why Free software is like climbing some potential hill

oranges

apples

potential hackers

Patience,

Stickability,

Neurosis:

OO.o

Barriers to entry: A start:

ooo-build – kill mozilla

ooo-build – it builds

hackers-guide – honest

public LXR

conference plugs

hearing OO.o is good fun

source download size

compile fragility

compile time

lack of devel. docs

finding the place to hack

debugging

JCA signing

patch submit / approval

ssh add process

learning cws system

building latest devel ver

committing code

getting cws nominated

Room for improvement

multiple round trips

ooo-build - http://ooo.ximian.com/

Building made easy

Wraps the existing OO.o build system

configure

download

make

make install

Used for the 1st build, & packaging

Development iteration more cunning

Hackers guide:

http://ooo.ximian.com/hackers-guide.html

Prerequisites:

~4Gb+ spare space

~512Mb RAM

~1Ghz processor

StarOffice/OpenOffice.org

Sun is doing it right

OO.o CVS is the authoritative base source

Freedom / Legal bits:

Source under LGPL / SISSL

SISSL: X11 + ~LGPL for ABI / file-format changes

JCA – joint copyright assignment

You continue to own the copyright

You grant Sun copyright-owner-like rights too

GPL + assymetric copyright assignment

worst of all worlds

How the two relate to each other a small and shrinking difference

A (typical?) example

A student in 1998 – hits a bug & starts on a fix

First 'community' contribution:

to a large code-base 500k lines

lots of lovely macros / global variables

Hacked a patch: add -Wsequence-point to gcc

Catches a = a++; a[n] = b[n++]; etc.

Signed / posted / got copyright to FSF confirmed

Posted E-mail with patch: 16th June 1998

As Zeus said to Narcissus: “Watch yourself” - so, look at me!

A (typical?) example (2)

First reply: 9th July 1998

From: Robert Lipe <robertl at dgii dot com>

Subject: Re: New feature, warning on n=n++ etc.

I could find no discussion of this patch nor any evidence it was committed.

I just dusted it off, cleaned it up, applied it to my egcs tree and performed a bootstrap with it in place. No problems noted.

I then fed a large chunk of code through it and it did successfully spot a few problems. After I unravelled the macros that generated the sleaze in question, I agree with the new warning. The code in question is wrong.

...

How about it ?

No reply ...

Result: wandered off elsewhere

doc++ - javadoc but fast

dramatically improved flex grammer / feature-set

no maintainer interest – forked but pain to maintain

GGI project – games interesting

H/W difficulties / no

Wrote (toy) spreadsheet in Java

discouraged by nasty pre-swing printing model

Mahjongg – a Gnome game

wrote a tile-placing algorithm to make solvable

E-mail reply with maintainer

Instant recognition / credit.

Gnumeric – 1998 couple of months after gcc

Productive / committed ... into Gnome big-time.

Interacting with contributors

Love them – they probably need it.

Initial contribution special

Inevitably a terrible patch – card ...

Immediately respond, fix the patch, create the cws, commit it, credit them with the work.

2nd patch

send it back once – so they learn, then fix it up

3rd patch

send it back a lot – should be getting better by now

commit it for them

Nth patch – crunch point

Maintainership or sudden Death – be careful.

Minor barriers & interacting

Pre-hacking interaction

More painful – no idea if they're any good

my umpteen build problems with gnumeric: Miguel

IRC – the only real solution

extremely helpful – works both ways

CVS performance – branch,tag,merge vs. a patch-set

#$%#$%#%#'ing unfixable NFS idiocy

Bad behavior

“we re-wrote your feature from scratch” - 3x

“it's on our road-map to do for 2.0” - ?

“interesting patch” ... no feedback / follow-up

Not as bad as I remember it

dealing with the paranoid & delusional ...

Your feature will be in the next release:

A rough guide to the OO.o schedule:

2004

2005

OO.o 2.0

2006

2007 ...

OO.o 1.1

FF

OO.o 2.0

OO.o 3.0

FF

Upgrade / patch release [ minor version ] every quarter

Acutely different to Free software release process

Foo Written

Foo in a

Distribution

Peer applause etc.

don't worry:

A (typical?) example (3)

Second reply: 10th October 2000

From: Joseph S. Myers

Subject: Updated version of Michael Meeks' sequence point warning patch

I decided to update Michael Meeks's patch to warn for some sequence point rule violations to current GCC. Here is the updated version

(with a tree-checking problem and some other bugs fixed ...

The original patch seems to have waited two years unreviewed. I hope someone reviews this version a bit quicker than that (on the basis of whether this patch is suitable for inclusion and useful as it is, though it could certainly be improved)? If false positives are found to be a problem, the warning can always be moved out of -Wall.

Bootstrapped with no regressions on i686-pc-linux-gnu. OK to commit?

Committed ... (somewhat interested)

A (typical?) example (4)

A few months ago (2003?)

Noticed (with some amazement) my warning spewing out for some other people's code

Delay until stable release

Delay until distribution

users not using / testing / appreciating for years.

Accelerating the release schedule

Other projects:

GNOME – 6 month, time based

staggered freezes UI, string, code, release

missed the deadline ? next only 6 months

re-organising development resources (?)

Linux Kernel – crazy, was: umpteen months

now monthly releases: permanent instability?

OO.o – is too slow – make it faster ?

6 months a long time in the industry ?

Community ? / problems

ooo-build

patch holding ground for up-streaming

collaborative effort between Linux distros:

Ximian, Debian, Red Hat, SuSE, Ark, PLD, [ Win32 ]

Easy to commit to / get involved with

Ask for JCA in the post

Hack here ...

~300 patches, sub-setted several ways.

~every Linux distribution

Our bug is your feature ?

unreasonably ugly artwork

no native widget integration

The things that are wrong under the sun ...

Credits: Spot the external contributor:

Credits: See where you can get a mention:

Look Mum; that's me there:

Go on: click on that link:

doesn't work huh ? try selecting it to copy/paste instead ? ...

Credits: Peer credits:

How will they recognize your great work:

Conventionally:

* Copyright: 2000 by Sun Microsystems, Inc.

*

* All Rights Reserved.

*

* Contributor(s): ___________________

2004-08-25 Luiz Augusto Von Dentz <luiz.dentz@freedows.com>

* patches/OOO_1_1_3/apply, patches/OOO_1_1_2/apply,

* patches/OOO_1_1/vba-foreach.diff: add feature

ChangeLog

+ features

+ VBA (Luiz)

+ foreach functionality

NEWS file

About box mention, Authors: tag in source, maintainership etc. - Marketing help ?

Interesting things ...

Novell – 6000 users

80% using OO.o as their main office suite

Almost none file bugs

[ we know the bugs are there but ...]

Added a 'file a bug' button on the toolbar

Serious apathy / fatalism here

ooo-build (yet to go upstream / get finished)

VBA interoperability [ not migration ]

Lotus 123 import bits

Lotus Word Pro – in progress

More hands coming from Novell Bangalore

Conclusions / Thanks

Still a long way to go with the community

ooo-build / hackers moving up-stream

some compromises / duplication necessary

Credit people

Faster releases extremely helpful

Marketing project

creditable opportunity to get hackers ?

Sign the JCA today ...

What I spent the last minutes saying – nudge your neighbour it's nearly over

Oh, that my words were recorded, that they were written on a scroll, that they were inscribed with an iron tool on lead, or engraved in rock for ever! I know that my Redeemer lives, and that in the end he will stand upon the earth. And though this body has been destroyed yet in my flesh I will see God, I myself will see him, with my own eyes - I and not another. How my heart yearns within me. - Job 19: 23-27

2003-04-02T15:18:38