Winter is Coming, Get Your Code Inside!

5. Sep 2013 | Jos Poortvliet | No License

WinterIsComingFinal

It is already September! Haven’t you noticed? Bad weather is coming, it will be freezing soon!

According to the roadmap, Full Feature Freeze will be upon openSUSE Factory on September the 19th. On that day, openSUSE 13.1 Beta will see the harsh light of day.

But already, the Toolchain and Base System are deeply frozen and only leaf packages have time left to scurry in. Two weeks, to be exact, 14 days and it will be Winter in Factory. Time to get your package updates in before they freeze in the cold! Read on to learn how to make it happen.

About Factory

Factory is a repository on openSUSE’s Open Build Service. The almost 6K packages make it the largest OBS project and core to what we do. Factory is maintained by the openSUSE Release team. Packages flow into Factory from developers via the Devel Projects. The openSUSE Factory Development Process gnome project page

Devel projects

The Factory Development Model describes package development happening in the devel projects. A devel project, as the name suggests, is a project where development happens for a specific group of packages, like multimedia, GNOME, KDE or Kernel.

Each devel project has its own set of processes, rules and communication channels that fits them best. Usually you can find information about that on the project home page. Otherwise, asking on IRC or the Factory mailinglist will do fine. The current devel projects feeding into factory can be found in the drop-down menu on top of this page. A list of all public projects in the Open Build Service can be found here.

The openSUSE team has recently finished documenting the entire development process in more detail, if you’re interested you can start on this page but keep in mind: the rabbit hole goes deep!

BURPing!

Say a package in a devel project feeding into Factory is outdated or broken. You might need this package and want to fix it. Now you easily can branch them in OBS and get yourself a fixed package. But why not contribute the fix back to Factory? That way - you don’t have to maintain it. Merging changes is very easy thanks to the collaborative feature of OBS. Once you branched and fixed the package, create a submit request and you’re done. The maintainer from the devel project will pick it up and merge the change. This process is called Branching, Updating and Requesting a Package (BURPing). See the image below or read more on this page for command line steps.

Getting new packages in

What do you need? Not much. You don’t need to be ‘approved’ or have any special skills, other than of course the ability to build a package. And that’s not too hard, especially with so many developers around who are happy to help you! A tip: copy an existing package and rework it into what you need.

As said, packages for Factory have to go through Devel projects. The reasons for that are quite simple: together, a team of maintainers can do a better job than alone. A devel project provides you with some feedback on your work and helping hands where needed. And of course it gets your software in the hands of tens, if not hundreds, of thousands of users! You can try to find the appropriate devel project in the drop-down on this page or, if that doesn’t enlighten much, ask on the factory mailing list.

So once you have found the appropriate devel project (see the drop-down on this page) it’s time to contact the team and tell them you want to have a package in. The easiest way of doing that is simply submitting it! Create a submit request, enter the devel project details (see the BURP picture above for an example) and send it in. If you can’t find a decent devel project, you can either use the catchall project devel:openSUSE:Factory or even start a new devel project. Starting a new devel project means asking on the factory mailing list, you’ll get some input on your package(s) and the need for a separate devel project there.

After you have found a devel project you can submit-request your package to openSUSE:Factory. The submit-request must contain a note with information about the package. Preferably you introduce the package to the opensuse-factory list and point to that introduction in your Submit Request. A good introduction contains information on the state of the upstream project and how maintainable it is and what the purpose of having it in the distribution will be.

All the above can be done either from the nice web interface of OBS or following the command line instructions on this page.

Conclusion

So getting updates or completely new packages in openSUSE 13.1 is not hard. Being a Factory maintainer might sound like a heavy responsibility and to some extent it is. But it’s more than likely being a maintainer in a Devel project actually doesn’t involve more work than what you currently do to keep your own packages building in your own home project. You will even get some help now and then. And you’ll get the satisfaction of making a difference and being part of an awesome team!

Have fun hacking!

Share this post: