The upcoming openSUSE 12.1 release is being developed in Factory. According to the release schedule the Toolchain and several other critical components are frozen, but there is still time to get most package updates in! It’s not hard to do that, especially if you build packages on the Open Build Service anyway and you get your software to be part of openSUSE! Read on to learn more.
Factory is ‘just’ another repository on openSUSE’s Open Build Service. The 4745 packages make it the largest OBS project. Factory is maintained by the openSUSE Release team, members of which currently are Stephan ‘Coolo’ Kulow and Marcus ‘darix’ Rueckert.
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.
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 commandline steps.
Getting new packages in
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!
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 submitrequest. 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.
So getting updates or completely new packages in openSUSE 12.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!