When and Where

Location

Time: Friday Oct 8th, 5pm - Oct 9th

Note: all times are US Eastern. GMT -5 hours.

Background (what is Etherpad?)

Background: EtherPad (video demo) was a high-performance web-based collaborative document editor, launched in 2008 from etherpad.com. It was acquired by Google during the development of Google Wave, and the service's code base was open-sourced. Several websites now run an EtherPad service and there is interest in making private installs (such as one for the Fedora Project) easier to create.

Buuut the EtherPad code-base isn't exactly in a packageable state, as demonstrated by SDZ, here. We would like to package EtherPad correctly for Fedora. Where possible, we intend to use good build system practices and clean up libraries used.

Finally, once complete, we'd like to use the new packages to setup an EtherPad instance for the Fedora Community.

I'm new to FADs / open source / hackathons what can I expect?

Expect to learn a lot. The FAD is mainly about a volunteer group working to make a dent in an awesome piece of software. Not an über-coder, we'll find ways for you to help, and make sure you learn something.

Not interested in working a whole weekend on Etherpad? Stop by 5pm Saturday for a presentation by Jeff Mitchell on managing the KDE community (agenda)! How do you manage a passionate, distributed group of international volunteers? We'll find out. After, we'd love to talk about open source, our communities, and technology in general.

I'm far away / can't physically attend, how can I help?

We'll be hanging out on IRC! I'll make sure there is someone dedicated to IRC / community contact.

Don't know what IRC is yet? It's the realtime chat system that many open source communities use. (Mel Chua) would be happy to teach you; just drop me a line at mchua {at} fedoraproject {dot} org.

"Who do I get in contact with if I have any questions about logistics during the FAD?" - see #Help desk.

??? Colin, or designated contact person

Contributing: how can you help work towards the FAD's goals?

A list of goals of the FAD - primary goals, then secondary goals. Each goal should be measurable - in other words, at the end of the FAD, it should be clear to an external observer whether you accomplished a goal or not.

Our purpose is to...

Repackage EtherPad in a consistent, portable, more best-practice form

Metric: Etherpad functions without bundled libraries

Metric: Etherpad has a single configuration file (possibly part of build system)

Metric: Difference between EtherPad vanilla and GitHub code has been assessed

Create compliant, Fedora packages for EtherPad

Metric: Etherpad Fedora package exists

Metric: Etherpad package has been accepted into the repositories

Setup EtherPad instance on Fedora Infrastructure

Metric: Etherpad is running on Fedora Infra staging

Metric: Etherpad is running on Fedora Infrastructure permanent

Metric: Written maintenance plan for Etherpad on Fedora Infrastructure

Remember: the purpose of the FAD is to complete the FAD's goals. All the learning that happens during the FAD should directly apply to making people better able to achieve the goals of the FAD - it's not a Barcamp (although if there's interest, it wouldn't be a bad thing to schedule one for later and redirect people to planning/teaching what they're interested in at that!)

Intro to FOSS contribution tutorial

Desired result: any interested newcomer who may not have prior exposure to open source contribution should be able to attend this session and then jump into the remainder of the FAD as a full contributor; they won't know all the skills they need to do everything, but they will know how the activities in this FAD fit into the big picture of Fedora and FOSS contribution, what things they can learn and help with immediately, how to communicate their questions to the community remotely and be self-starting in getting the knowledge they need to contribute, and how to report their status and progress to the rest of the FAD community (including remote attendees).

There are going to be a lot of new people at this FAD. We must find a way for all of them to be able to get the context they need to contribute. Especially if professors want to get involved, my thought would be ask them to teach an intro "how software engineering works" session for those who've never contributed to FOSS before. Topics like:

what's open source

what's Linux/Fedora

what's packaging

what's version control

Using SVN (as a starter)

How to use SVN mastery to learn Git

what's the software development lifecycle (release cycles, the role of QA, etc)

What are patches and diffs and how do I use them

How do changes get pulled into Open Source projects

What is this forking business

All rolled into maybe a 2-hour intro session at the start of the FAD - whatever they think people new to distributed software development ought to know, directly aimed at "how can we make you useful for the FAD as fast as possible?" rather than an isolated academic overview.

If professors can't teach this, get a Fedora person to do it - possibly remotely, via Fedora Classroom or some sort of video chat.

Colin comments:

2 hours seems too long, unless we plan to run then through an activity that will require a good deal of work (or checkins, pushing, branching, etc).

Task list

Desired result: At any given point in time during the FAD, a remote person who hasn't been following the FAD should be able to look at one location and get an immediate answer to the questions "how far along are we to reaching the goals of this FAD, what remains to be done, and how can I get started helping right away?" (If it works for remote people with no prior context, it'll work for in-person attendees who are there for the whole weekend.)

Constraints: This must be one canonical, central location for the event so that work doesn't get scattered and it's easier to keep track of who's oing what. Because this is Fedora, it must use free and open source software. It is preferable, but not required, to use Fedora infrastructure for this (fedorahosted, etc.) because it will be easier for the Fedora community to set you up with resources beforehand that way.

Encourage autonomy; people can and will modify and spin off new tasks of their own, but make sure it all comes back here so you can keep track of it. The trick to running a large distributed event is to distribute the work and the management, but centralize the communication.

Another thing that is optional but extremely helpful: a way to mark tasks

by team ("this task is packaging, this task is development, etc")

by skillset needed

by level (mark tasks that are good for beginners, vs tasks that need experienced folks to do)

For instance, some sample QA tasks (Mel used to want to take these, but can't any more since she'll be in Cape Town):

Ticket tracker setup (move this to fedorahosted.org?)

Collect all existing bugs/enhancement requests and get them written and triaged properly

Test case/results system implementation

Write and execute first round of test cases, starting with a smoke test, then moving to focus on scaleability, cross-platform/browser testing

Colin Comments:
This is a great. Totally what we need before the FAD... but we were going to do planning on Oct 2nd with the Euro EPaders. We can come up with general tasks beforehand, but drilling down (particularly technical) will require help on the 2nd.

Help desk

I strongly recommend using the #fedora-fad IRC channel for this, as it's the means of communication the Fedora community is used to and therefore the one you'll have the easiest time getting experienced Fedora contributors (who, at this point, are the people you need more of) involved in your FAD with.

Desired result: At any given point in time, if anyone - remote or in-person, is lost and doesn't know what to do to contribute, there should be one place they can go to reach someone on call (make shifts, make sure people take them) who will get them back on the right track."

One way to do this is to assign shifts to a "help desk," a person whose job is to:

Sit in a given physical location at the FAD so in-person attendees can reach them, and guide them through finding something to do in the #Task list and going to get the mentorship/learning resources they need to be able to accomplish it.

Sit on #fedora-fad and do the same for remote attendees

Taking note of and marking attendee progress on the online task list, especially when you help someone start doing something

Walk around periodically and ask teams for updates on their progress, then upload them - a check-in / status-sync every hour, on the hour, may be a good time period to set.

This doesn't take any specific technical skills, just the ability to use IRC. It does take project management skills; these are people who can keep track of the activity going on and point people towards easy tasks and mentors. These people also need to rapidly become accustomed to and shameless about asking people in the Fedora community for help.

Mel Chua is willing to run a helpdesk shift training session in the week before the event. It will take 90 minutes and require someone onsite to help attendees set up IRC and get online at the beginning (because that's how I'm going to be teaching it - I am allotting 30 minutes for that setup, and 1 hour for the actual class).

It may help to make parallel shifts for experienced, remote Fedora contributors to be on IRC so they can help the on-site helpdesk person tap the resources of the Fedora community.

It may also be useful to ask satellite teams (such as the one in the UK) for instructions on how to reach them immediately at any given point in time. For instance, a team may give you something like this:

3pm-5pm - ping djones on IRC; webcam available if needed for calls

5pm-7pm - we'll be unreachable and out for dinner

7pm-9pm - ping msmith on IRC

9pm-11pm - ping blee on IRC; all our developers will have gone home by 10pm so we'll only be able to help with docs and odd jobs

past 11pm - not sure who'll be here, catch up with blee before 11 to find out the situation

Help Desk Hours

Friday

5:20-7pm - YOUR NAME HERE

7pm-9pm - Dinner!

9pm-10pm - YOUR NAME HERE

11pm-early - YOUR NAME HERE

This session is splitable

Saturday

11am-1:30pm - YOUR NAME HERE

1:30pm-3:30pm - Lunch!

3:30pm-7pm - YOUR NAME HERE

This session is splitable

7pm-9pm - Dinner!

11pm-early - YOUR NAME HERE

This session is splitable

Colin Comments:

Again awesome.
Re: training. Absolutely! Lets get people trained (I'd get trained). (Elena offered to help. Atkinson?)
Re: Outside associates. We should identify useful Fedora people to ping and list where and when to find them

Red Hat, Red Hat Enterprise Linux, the Shadowman logo, and JBoss are trademarks or registered trademarks of
Red Hat, Inc. or its subsidiaries in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community
maintained site. Red Hat is not responsible for content.