Contributing to Ubuntu
by Neal McBurnett
Presented to the
North Colorado Linux User's Group on 2008-03-11,
and the
Boulder Linux Users Group on 2007-11-08
Online with links at: http://mcburnett.org/neal/talks/contribute_to_ubuntu.html
Introductions
- Ubuntu - popular Linux distro based on Debian, sponsored by Canonical
- Local contributors:
- Lamont Jones - one of the first Ubuntu Core Team members starting in 2004
- Joey Stanford (blog) - started the Colorado Ubuntu Linux Team
- Jim Hutchinson, a strong advocate for Ubuntu in education - see his Ubuntu Kids blog
- Over 150 members of the Colorado Ubuntu Linux Team, including about 5 folks recognized by the Community Council as "Ubuntu Members" (Lamont, Joey, Jim, David Overcash and me).
- Our new CULT leader, Mitch Mahan
- Carl Richell - founder of System 76, a leading vendor of Ubuntu-based hardware (like my new laptop).
Why get involved?
- Fun, interesting
- Good cause - bring free software to the world
- Learn marketable skills
- Make money (gnash is hiring - talk to Rob Savoye in Nederland)
Why get involved with Ubuntu?
- Great, friendly community, based on the Code of Conduct
- Diverse: from 14-year old students to retired computing pioneers, reaches out to ubuntu women, etc.
- Low barriers to entry, good tools for contributors
- Multi-lingual
- Worldwide network of Local Teams
- Meritocracy via open processes
- Community Council
- Technical Board
- Core Developers (~50) with "commit" rights on "main"
(supported packages). Perhaps half of the core team works
for Canonical.
- Masters of the Universe (~100) with "commit" rights on
"universe". "universe" is the category of Ubuntu packages
which is available but not supported by Canonical.
- Ubuntu Members (~336)
- Ubunteros (~6000) - signed the Code of Conduct
- Also 1 "SABDFL"
(Self-Appointed Benevolent Dictator For Life), Mark
Shuttleworth, but he leaves nearly all decisions to the
community.
How to get involved?
- Try it out, and share it with your friends and colleagues
- Give feedback via bug reports, forum posts, irc input
- Bug day - confirm bugs, "triage", work on them, etc.
- https://wiki.ubuntu.com/UbuntuDeveloperWeek/ (Feb 2008) and https://wiki.ubuntu.com/UbuntuOpenWeek (Oct 2007) - see the transcripts of IRC sessions in #ubuntu-classroom
- Hang out with the Colorado Ubuntu Linux Team in #ubuntu-us-co on freenode
- Polish documentation pages via the wiki in a topic of your interest
- Find a team that appeals to you: Server team, Laptop Testing, Marketing team, etc.
- Translate apps into a language you know
- Package applications as a "Master of the Universe". To get started, see PPA and Ubuntu Packaging 101
- Plan an event like
Software Freedom Day,
Ubucon Boulder,
Colorado Technology in Education Conference
- Write specification ("blueprints") for future versions.
Every 6 months there is an
Ubuntu Developer Summit - a week-long multi-track set of meetings
to decide on and document the roadmap for the next 6 months and beyond.
Free for all to attend. Not a "conference". Some "sponsored" attendees. Great people. Great food :-)
- See also: https://wiki.ubuntu.com/ContributeToUbuntu
Development processes
Development tools
- Tools focused on collaborative development: with other distros
like Debian, with the many derivatives of Ubuntu, and with upstream projects
- Next-generation distributed code development:
bzr - easy to manage and
publish your own code versions/branches of a package, easy to
merge in changes from others.
- Launchpad - sort of like sourceforge.
Ties together much of the development of Ubuntu and other
derivatives and projects like Zope. Tracking projects, people, teams, code,
bugs, specifications, translations, support queries, etc.
Proprietary, for now, unfortunately.
- Personal Package Archives (PPA) - build, upload, deploy a package in your own apt-based repository that others can subscribe to and get updates from.
Provide packages for preview, testing, or roll-your-own distribution....
See also the Falcon repository builder - a similar tool that is open source