With the opening of the openSUSE distribution so that everybody can contribute to packaging, we introduced the concept of devel projects and I’d like to explain a bit more what they are and why they are important.
What are devel projects?
Development of the openSUSE Distribution is done using a development project that we call “openSUSE Factory” or factory for short. At one point during the development of a distribution, the new release is branched from factory and then development of factory is done for the next release.
Factory in the openSUSE Build Service has its own project called “openSUSE:Factory” which is a huge repository of packages.
Development of packages does not happen directly in openSUSE:Factory but in development projects (short form “devel projects”), so we have basically split factory development into devel projects and organized these many by topic areas, such as KDE, GNOME, Education, Java, and so on.
Devel projects are responsible for sets of packages and will be able to organize themselves rather than following a top-down model of management.
The idea is to allow teams to be self-organizing and for all contributors to have equal footing in terms of being able to contribute to openSUSE Factory.
The devel project allows people to develop in their own home projects on the package, submit the changes to the devel project, review it and then submit the package to openSUSE Factory where it gets reviewed by the owner of factory for some general packaging guidelines.
What are the advantages of devel projects?
- It allows development of related packages together.
- Breakage caused by one package can be seen already in the devel project.
- Since submission goes through the devel project, the maintainer of the devel project does an additional review of the package and knows about changes in his package before checkin to openSUSE:Factory.
- The split into several devel projects allows development to scale better since development work can happen independently in smaller teams.
- It’s easy to make the same package available for older distributions since the devel project contains related packages.
- The devel project information is also kind of a trust information, it points to projects which have been evaluated once as good enough for openSUSE distro contributions.
Some more information is available at the openSUSE Wiki.
Let’s compare contribution with Open Source code developments:
In open source packages anybody can send in a patch – for openSUSE we prefer the patch in form of a package submission to the devel project.
Once you gain trust in an open source project, you get write access to a certain area of the project – with openSUSE you can get package ownership in the devel project or even made responsible for the whole devel project.
Devel projects are setup to enable collaboration on packages, therefore communication with others and means of communication are vital.
So, a good practice is to have for each devel project a mailing list, IRC channel etc where people can discuss the project and to point in the description of the project in the Build Service to this mailing list, IRC channel etc. If you need an openSUSE mailing list for your project, please talk to email@example.com.
Both comments and pings are currently closed.