HackSoyuz

Revision 8 as of 2009-09-04 20:19:52

Clear message

Dev Week -- Hacking Soyuz to get your builds done -- noodles775, cprov and wgrant -- Fri Sep 4th, 2009

UTC

(04:00:53 PM) noodles775: My name's Michael Nelson and I've been working on Launchpad and Soyuz for around 9 months now.
(04:01:17 PM) noodles775: Here's an overview of what's coming up over the next 40mins or so:
(04:01:26 PM) noodles775: 1. Grill a new soyuz hacker with questions.
(04:01:34 PM) noodles775: 2. A guided tour through the Soyuz code-base
(04:01:47 PM) noodles775: 3. Setting up a Soyuz test scenari
(04:01:57 PM) noodles775: o
(04:02:17 PM) noodles775: So - up first is our chance to grill the latest Soyuz hacker: wgrant! Since the open-sourcing of Soyuz with Launchpad, wgrant has - in his own time - pushed 20 (!) launchpad branches.
(04:02:34 PM) noodles775: 7 of these are soyuz-related branches (afaics).
(04:02:45 PM) noodles775: wgrant: wanna introduce yourself?
(04:02:53 PM) wgrant: I didn't think I'd done quite that many, but OK!
(04:03:12 PM) wgrant: So, I've been an Ubuntu developer for a few years now.
(04:03:16 PM) noodles775: (that's how many I'd counted that have been pushed - not necessarily merged :) ).
(04:03:29 PM) wgrant: And at some point became interested in the infrastructure behind it all.
(04:03:45 PM) noodles775: Cool!
(04:03:48 PM) noodles775: So this is our chance to find out how William got started working on Launchpad and Soyuz, what the issues were, and what he'd recommend to others who want to hack on Soyuz.
(04:03:55 PM) wgrant: So when it was sneakily open-sourced a month ago, I jumped straight in.
(04:04:31 PM) wgrant: There are lots of bits and pieces I'd like to see fixed or improved, so it was really great to see the source releaed.
(04:04:54 PM) wgrant: Hacking Soyuz (and Launchpad in general) is probably going to be a little intimidating at first.
(04:05:14 PM) wgrant: But Launchpad developers are very helpful to new contributors, so they can give you a lot of guidance if you get lost.
(04:05:30 PM) noodles775: BTW everyone: please have think up some good questions that will help you get started and post them in #ubuntu-classroom-chat
(04:05:48 PM) wgrant: To get oriented for development, I'd start off by setting up a local development environment (https://dev.launchpad.net/Getting).
(04:06:14 PM) wgrant: Then have a look at how the codebase is organised. Maybe poke around in the model a bit with 'make harness'.
(04:06:28 PM) wgrant: See how things work using the SoyuzTestPublisher, which I believe noodles775 will explain later.
(04:06:49 PM) wgrant: Once you've found your way around a bit, identify a little bug or feature on which you want to work.
(04:07:32 PM) wgrant: The next step is to ask a Launchpad developer (in #launchpad-dev) about it. They'll advise you whether you're attempting the impossible, or otherwise tell you where to start.
(04:08:17 PM) wgrant: That bit is quite important, as it can stop you from hitting dead-ends or attempting something that's just too difficult for a first-time hacker (as quite a few things are).
(04:10:52 PM) noodles775: cprov: have you (or anyone else) ever tried to explain what soyuz does by analogy?
(04:10:56 PM) wgrant: An analogy... a good question. It's a pretty complex creature, so I'm not sure where to start.
(04:11:59 PM) noodles775: I've sometimes tried to think of what soyuz does as a blogging engine... something familiar, with some similarities...
(04:12:20 PM) noodles775: But there are quite a few differences too.
(04:12:30 PM) noodles775: OK, any other questions for wgrant ?
(04:12:44 PM) cprov: well, Soyuz encompasses a lot of subcomponents that takes debian source packages as input and produces debian repositories, but there is a lot of details in the middle.
(04:13:16 PM) noodles775: Which is a great lead-in to 2. A guided tour through the Soyuz code-base - take it away cprov :)
(04:14:18 PM) cprov: Hi, my name is Celso Providelo and I've been working on Soyuz for the last 5 years (!)
(04:15:08 PM) cprov: so, I would like to point you to some piece of documentation I've created to guide users to the Soyuz code base.
(04:15:17 PM) cprov: https://wiki.ubuntu.com/CelsoProvidelo/SoyuzInfrastructureOverview
(04:16:07 PM) cprov: it has a descent (but not pretty) diagram, it illustrate what I mean by 'lots of details in the middle' before.
(04:17:15 PM) cprov: Soyuz is in reality a set of integrated tools/components for 'controlling' software packages.
(04:18:25 PM) cprov: It starts with the 'upload server', an FTP daemon that receives source packages uploaded by users using `dput/dupload`.
...

Outline

Here's an outline of what we can expect during the Hacking Soyuz session - but like most UDW sessions it will be flexible and might stray with the right questions Smile :)

Grill a new soyuz hacker

OK, so William isn't exactly new to Soyuz - but he has been Soyuz's biggest community contributor since the open-sourcing. Being a relatively new soyuz hacker myself (noodles), I was keen to hear William's thoughts and responses to the following questions: (if you've got questions for William too, ask them in #ubuntu-classroom-chat too!)

Question 1

How did you originally get involved with Soyuz - and why do you stay involved?

Question 2

If you wanted to describe Soyuz to an Ubuntu/Debian user, what analogy would you use and why? (It could even be worth seeing if any participants have analogies too - exploring where each is good and where each fails? Just a thought).

Question 3

If a person came to you who was competent in Python, had some packaging experience with their Launchpad PPA and was really keen to hack on Soyuz, how would you recommend they get started?

Perhaps leading into a topic/segment that wgrant would like to lead?

A tour of the Soyuz code-base

Celso's guided tour of code, documentation, API's and concepts.

Setting up a Soyuz test scenario

For this section, you'll need a working Launchpad development environment. We'll be using:

  • make run - to view our soyuz publications
  • make harness - to publish new packages and simulate builds completing so that we can view them in our browser.

See Testing launchpad soyuz features for the screencast and code snippets.

How can I get involved / General questions

What are the plans for PPA/Desktop integration, different strategies people have adopted, pros/cons.

What are the plans for the soyuz-upload handling.