openSUSE:Как внести вклад в Factory
|Эта статья содержит фрагменты на иностранном языке. Вы можете помочь переведя её до конца. (cм. руководство по переводу)|
- 1 How Factory development is organized
- 2 Workflow
- 2.1 Modifications
- 2.2 Devel Projects
- 2.3 Factory
How Factory development is organized
Factory development is being split into devel projects organized by topic areas, such as KDE, GNOME, Education, Java, and so on. Devel projects are responsible for sets of packages and organize themselves rather than following a top-down model of management. Bug fixes and new features have to be first commmitted to the devel project and from there submit requests will forward them to the main openSUSE:Factory project.
An easy way to start contributing is to submit patches for failing package builds, those are summarized on this Factory Status page. Submissions happen following the Build Service Collaboration process. The two blog entries Fixing Packages and Package Review in the Build Service detail it further.
Factory is built in the openSUSE Build Service. It has its own project openSUSE:Factory. As you can see it's just a huge repository of packages. Development does not happen directly in openSUSE:Factory but in the so called devel projects. Devel projects are, as the name might suggest, projects where development happens for a specific topic. Like multimedia or GNOME or Kernel. The relation of packages in the openSUSE:Factory project to packages in the devel projects is expressed in the meta data of the packages inside openSUSE:Factory. So a package you see in Factory has always gone this way:
Modification => Devel Project => Factory
As you can imagine the first part is open for everybody. Everyone can checkout packages from the devel projects and do local modifications. And everyone can submit his change back to the devel project as submitrequest via the Build Service command line client osc. How to do this in general is described on the Build Service collaboration page.
Permissions and processes come into play once you want to be responsible for a package in the distribution. As explained above, openSUSE package maintainers work together in devel projects. Each devel project has its own set of processes, rules and communication channels that fits them best. The reference point for this information is the project description of their Build Service project. So if you want to become part of a devel project you should head over to the openSUSE Build Service project you are interested in and see how to do that. If you want to find out which devel project a package belongs to, use the command
Devel projects are subjects to change because the world of FOSS software is not standing still. Software evolves, becomes obsolete or standards/defaults change and so on. So devel projects can change names, get dropped, be newly created, or change content and direction, as can packages in devel projects.
Getting a Devel Project for a new package
Before you can submit a new package to the Factory, your package needs to have a devel project. This project can't be your home project or its subprojects. The easiest way to get one is to take a look at list of projects and choose the topic your package belongs to. If you have found a good project, try to contact its maintainers (sending your package via submitrequest seems like a good way to start communication), figure out how this project works and try to join this project. If you can't find a corresponding topic, you may need to create a new devel project.
Creating a new Devel Project
First you need to propose a new devel project on email@example.com mailinglist. There are also people on that mailinglist that can create top level projects in the build service. Once there is agreement about this new devel project, there are a couple of things you should take care of.
First of all, you should establish some line of communication with the other maintainers. I suggest you either use the firstname.lastname@example.org mailing list with some specific subject like
Subject: [YOUR DEVEL PROJECT] Update to FOO 2.0
or tell email@example.com and he creates your own list like
Devel Project Rules
After you are able to talk to each other, you should think of your rules to maintain the project. You are free to do this in any way you like. You can just use a maintainer<->package relation or you can have this less strict and work as a group.
It's advisable to use osc linkpac to link your packages from openSUSE:Factory into your devel project. This way a couple of features like osc branch or osc submitrequest work best. You can of course also use osc copypack to copy packages from other projects.
Document your project
Once you have done those things, you have to document them in your project's description in the build service. You can use this template:
<title>YOUR DEVEL PROJECT</title> <description> This is the FOOBAR project. Its main purpose is to serve as development project for packages around the topic of FOOBAR in the openSUSE:Factory distribution. If you want to participate you can contact us individually or use our mailinglist firstname.lastname@example.org. Please report bugs to the respective bugowners as set. </description>
openSUSE:Factory служит основным проектом для всех разрабатываемых проектов. Данные в openSUSE:Factory авторитетны. Поскольку Вы не можете ничего изменить в openSUSE:Factory, все работает по запросам в osc.
Добавление пакета в Factory репозитории
После того, как Ваш новый пакет был добавлен в разрабатываемый проект, как описано выше, Вы можете создать запрос на включение этого пакета в репозитории openSUSE:Factory. Запрос должен содержать примечание с информацией о пакете. Предпочтительнее предоставить эту информацию в рассылке opensuse-factory и укажите на это в своем запросе.
Примечание должно включать в себя следующую информацию:
- имя и предназначение программы
- как долго существует эта программа?
- как хорошо программа протестирована?
- what is the upstream project?
- does it have a track record of security issues?
- почему эта программа должна быть включена в состав дистрибутива?
- кто пользуется этой программой?
- на основе какой лицензии распространяется?
Change the source of a package
To change the source of a package you have to make the changes in the devel project and then submit them from there with the osc submitreq command.
Delete a package
If you want to delete a package from the openSUSE:Factory distribution you need to send a delete request with osc.
If you want to rename a package you would first send a delete request and then a submitreq with the new package
Change the devel project of a package
If you want to move a single package or a group of packages to another devel project you can issue a change devel request.
Factory is maintained by the openSUSE Distribution Project Manager. Currently this is Stephan Kulow. The Project Manager has the last say about the technical changes to the openSUSE distribution.
The requests to change things in Factory, like changing the source of a package or dropping a package, are handled by the Factory Cabal. This group currently consists solely of Markus Rueckert.