Debian-NYC invites you to to the first NYC-area Debian workshop. These workshops are designed to introduce Debian, Debian tools and techniques, and the Debian community as well as provide skills to attendees and helping Debian. This first workshop is targeted towards technically skilled people, who would like knowledge of basics of Debian packaging and how to contribute back to Debian.
Topics covered: Debian Developers Daniel Kahn Gillmor, Micah Anderson, and Mike O'Connor will present the basics of, getting Debian sources, rebuilding packages locally, locally modifying packages, creating local package archives, contributing fixes to the Debian Bug Tracking System(BTS), and many tools to help with this process. After a short presentation on packaging tools, the audience will search the Debian BTS for a bug or package they can contribute to, get the package, fix the bug or improve it, rebuild, and contribute the patch back to the Debian team maintaining the package. Attendees are encouraged to work on a package they use, in a language they know well. The knowledge of locally building and modifying packages should be useful in a variety of situations. This workshop will not cover building packages from scratch, but that is a tentative topic for future workshops.
Please bring: A Debian (or other Debian-based distribution such as Ubuntu) computer with your preferred development tools on it. Extra computers may be available for loan, please contact us.
Date/Time/Location: Thursday, October 15. 19:00--22:00(??). Location: drop.io, Dumbo, Brooklyn. Directions: TBA. Address: 68 Jay St. #413, 11201. (Email Richard for door code).
Registration: Spots are limited, RSVP to (rkd at zgib.net) (Note: one spot left)
Contact: IRC via #debian-nyc on irc.debian.org ; firstname.lastname@example.org ; Richard Darst (rkd at zgib.net)
Topic:: Configuring, rebuilding, and contributing to Debian packages.
Target audience: Existing programmers/computer types, who have skills with programming and unix, but don't quite have an "in" to give back to the community.
Plan: There will be (hopefully quick) presentation and demo on these tools, intermingled with hands-on sessions, ending in a big free-form worksession.
- How to download the source to a Debian package
- How to rebuild the package.
- How to edit the package, and get a nice diff.
- How to contribute the your changes to the Debian BTS, and get them incorporated upstream again
Work session, where we all fix a bug in a package. Everyone checks the BTS for a package that they use and a bug they think they can fix. We then work on our bugs, and contribute the result back to the maintainer.
- Discuss followups for future workshops going into more detail.
- We could get food during this, too.
- Learn how to make custom versions of packages, for local use.
- Learn how to contribute fixes back upstream to Debian. Learn that it's easy to become a co-maintainer or join a team to help do this.
- Learn how to use the BTS to help maintainers keep their packages in top shape.
- Learn the basics of packaging (but not necessarily how to make them from scratch)
- Learn how to get involved in the free software community.
- Organizer: Richard Darst
- Instructors/DDs doing teaching: dkg, micah, stew, jimmy
What we actually covered
- Introductions (so that we know each other and can build off of each other)
- Name, what you do, favorite piece of software, latest bug filed
- Suites, stable/testing/unstable main/contrib/non-free
- Version numbers, how to compare them
- Dependencies, recommends, suggests
- Find a bug, get source
- Units program, what it does
bug 520428: adding a unit to units
- apt-get source
- Apply patch, rebuild
- Get patch from BTS
- Apply with -p1
- debuild -us -uc
- Check the package
- debdiff (?)
- How to contribute
- Use the BTS
- Working with maintainers
- Becoming a maintainer
Planned technical program
Help construct a program outline below. List the different tools or topics that should be covered.
- Lecture portion (30 minutes only)
- Advanced packaging tools
- Workflow with debhelper, cdbs etc. Don't know how much detail is needed on this one.
- devscripts - Debian contributors' Swiss army knife
- Getting package source
- apt-get source
- Overview of the .deb format
- .orig.tar.gz, .dsc, .diff.gz
- Contents of debian/rules
- Rebuilding package source
- sbuild, and the differences between the buildds and the pbuilder environment
- Creating local versions of packages
- Use of the UNRELEASED distribution name
- Use of custom version numbers
- Simple local package archives
Sample steps in the Debian Reference: http://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_small_public_package_archive
List of tools in Debian Wiki: http://wiki.debian.org/HowToSetupADebianRepository
- The Debian BTS, contributing patches.
- Mail based system - brief description
The control bot, bug operations listed here: http://www.debian.org/Bugs/server-control (and bts tool in devscripts)
dch -i; hack, build, hack, build, ...;debdiff > fix.diff;Mail fix.diff to BTS, or use nmudiff.
- debdiff --exclude, nmudiff
- Introduction to Debian teams and getting involved
- Brief mention that teams tend to use Version Control Systems (SVN, Mercurial, Git etc.) to work collaboratively on Debian packages.
- Examples: By tools: Python, Perl, Java. By theme: Science, Games etc.
- Related resources/reading
- Debian Dev Reference
- NM guide
- Debian Policy
- Kumar Appaiah drafted the initial copy of most of the lecture portion
- Clint Adams for the idea behind this first workshop
- drop.io for hosting the space
- All the developers who created all of these tools
- Advanced packaging tools
- Hands-on (remainder of time. Individual work with help from the group)
- Search BTS for a package you use that has a bug you are interested in
- Get the source to the package and fix the bug
- Rebuild and test
- Contribute the bugfix back to the BTS or team in charge
- Local mirror and http server on laptop
- Fast compile host?
- Possible food plan
- Sign-in sheets
- Feedback survey (what did you like most, like least, suggestions for future workshops, would you like to be emailed to attend more/teach later, ideas for future things, how can you help debian)
Reminder email 1
If you are getting this message, then you have RSVPed to the first Debian Workshop. This contains the directions, reminders on what to bring, etc.
The wiki page for this conference is:
The workshop will be held at drop.io. The address is: 68 Jay Street, DUMBO, Brooklyn, NY, 11201 #413. It is a few blocks north of the York Street F train station. To get in the front door, use the code "REMOVED" to enter the front door, take an elevator up to the fourth floor, and navigate the maze to Suite 413. (Hint: it is at the northwest corner of the building)
You should aim to arrive 18:45 to 19:00 (Thursday, October 15th). Let's try to start promptly at 19:00, so please arrive at the early range if possible. If you cannot make it, please let me know so that your spot may be freed for other attendees.
You don't need any preparation, besides knowledge of a Debian system and your preferred programming tools. If you would like, you could browse through the Debian Developer's Reference or the Debian New Maintainer's Guide to see what is in there. You don't need to know everything in here, the workshop is a gentle introduction to them. 
The goal of this workshop is to teach you enough to fix/improve a package, use it locally, as well as send a patch back to the Debian Bug Tracking System. Thus, if you can think of a package with a bug  that affects you that you would like to fix, it would let you get started with the workshop portion much quicker. The goal of the workshop is for everyone to have fixed one bug and contributed the patch by the end of the workshop.
You should bring a Debian-based computer you can do development on (unless you have talked with us to make other arrangements). We will have power plugs, wifi, and some ethernet cables.
If you have any questions, please ask us via IRC in #debian-nyc on irc.oftc.net (=irc.debian.org). You should also use this channel after the workshop to keep in touch, get questions answered, learn more, and help contribute back to Debian further.
 http://www.debian.org/doc/devel-manuals  http://bugs.debian.org
Hello everyone who RSVPed for workshop #1 (and also debian-nyc),
I'd like to thank everyone who attended this workshop (and I'm sorry for me procreating sending this out). It was really great, and it seems like we all learned a lot and got many ideas for the future. I encourage you to stay involved in Debian. We put on these workshops so that we can get more local Debian contributors, and improve our community.
If you aren't on our mailing list, you should be! See:
You should consider dropping by our IRC channel. It's a great place to keep informed of what is going on, get help when you try your own hand at bugfixing or packaging, or get more involved in Debian. It's a great way to fill gaps in what you know. It is:
- #debian-nyc on OFTC (irc.oftc.net)
For further reading, you can look at:
In here, the Debian Developer's Reference lists standard procedures and tools used by Debian maintainers and developers, the New Maintainer guide lists steps to become more involved in Debian (it's slightly aged), and the Debian Policy tells all the nitty gritty details of what each package has to satisfy.
Any followups/outlines from the workshop may be posted here sometime:
Thanks for attending, and watch the mailing list for follow-ups. We plan on having a workshop2/bug-squashing party soon to use the skills from this workshop. In particular, see these two messages:
--> workshop followup
--> next social gathering
I really hope to see most of you all at a future event -- and more importantly, coming back to help teach an event sometime!
- DebianNYC people
If you would like to attend, please RSVP to Richard Darst (rkd at zgib.net). We are currently limited to 15 attendees due to space limitations, but future workshops are likely.