openSUSE:How to contribute to Factory

跳转至: 导航, 搜索


本文会从贡献者的角度来讨论 openSUSE 工厂版,如概念,执行的命令,该和谁互动,等等。这意味着这是个最笼统教学,不会替代更高深的专门文档如编程语言,编译器,打包 或者 开放构建服务。我们假设你已经知道那些东西了。本文会告诉你为工厂版做贡献是简单和受欢迎的。

如何提交针对某个包的修复

最简单便利的为 工厂版 做贡献的方法就是提交修复。你如果知道为什么一个包 不能编译 或者 运行不正确,为什么不修复它呢? 如果一个包的版本 过时了, 为什么不更新它呢? openSUSE 开发者们通过 开放构建服务 的协作功能使 每个人 都能参与进来,为 工厂版 做贡献。这意味着每个人都可以从 openSUSE:Factory 开某个包的分支,修改后提交回来,就像检查作业一样简单。

首先你需要用 osc 捡出这个包

osc branch -m '修复 XY' openSUSE:Factory aaa_base


你可以看到服务器从正确的 开发源 里复制了该包到你的私人车库。撷取到你的本地计算机来进行修改

osc checkout home:yourname:branches:Base:System/aaa_base


当你修复了你想修复的,这个包能编译通过并正常运行之后,你可以把修改提交到你的分支

osc checkin -m '添加了针对问题 Z 的修复 XY'


然后把它们提交给该包的开发者进行复核

osc submitrequest -m '添加了针对问题 Z 的修复 XY'


该包的开发者稍后会得到通知说你提交了修复,并且会复核它。我们管这叫做 BURP 过程。

  • Branch, 分支
  • Update, 更新
  • Request, 请求
  • 某个 Package

如何向工厂版提交新包

首先,你的包得有一个 开发源。 开发项目得是一个一级源,还不能是你的私人车库。找找和你的包相似的包都用的什么一级源(通常都是 devel 开头的),你要是觉得这个源合适,就联系它的维护者,并且告诉他们你想要在那儿维护一个包。最简单的方法是提交你的包到那个源。

osc submitrequest -m '我想要在工厂版里维护 python-cerealizer,并以 devel:languages:python 源作为开发源' home:yourname/python-cerealizer devel:languages:python


目前的开发源列表可以从 这个页面 上边的下拉菜单里找到。你也可以从 所有公开源 的列表里找. 要是你找不到符合你的软件包的开发源你也可以用我们的通用开发源 devel:openSUSE:Factory。如果你有一系列新包觉得可以开设一个自己的开发源,你需要向 工厂版邮件列表 提交申请。开放构建服务 维护者会告诉你接下去要做什么。

你在找到了一个开发源之后就可以提交你的包到 openSUSE:Factory 了。提交申请必须包含一条附注说明该包。你最好在工厂版邮件列表里介绍下你的包,然后在附注里引用它。一个好的介绍包含该项目上游的状态(可用/测试),它是否可维护,以及有了它之后会给本发行版带来什么好处。

osc submitrequest -m '新包请见 http://lists.opensuse.org/opensuse-factory/2011-05/msg00018.html ' devel:languages:python/python-cerealizer openSUSE:Factory


如何成为工厂版中某个包的维护者

如果你想要帮忙或者参与管理,请与现在的维护者联系。注意 工厂版维护者的职责和权利

osc maintainer openSUSE:Factory aaa_base


如何在开发源里合并针对一个包的修复

开放构建服务在有新的请求时会通过电子邮件通知你。你也可以查询所有的新请求

osc request -s new


合并修改可以简单的通过接受请求来实现。最好先看一下请求的内容。

osc request show -d 12345


如果你觉得合适你就可以接受它

osc request accept 12345


如何向 openSUSE:Factory 里提交包

一旦你对你开发源里的包满意了,你可以提交它到 openSUSE:Factory。

osc submitrequest devel:languages:python/python-cerealizer openSUSE:Factory


如何向已发布的版本里面提交包

如果你想要修复一个已发布的版本里面的包,如 openSUSE 11.4,你需要多走几步。具体的流程在 包维护 指南。

如何抛弃一个包

Template:警告

在你抛弃任何包之前请阅读针对 openSUSE:Factory 的 包抛弃策略。先行谢过

假设我们想要抛弃从工厂版里抛弃 oldstuff,它的开发源是 devel:openSUSE:Factory。你需要先确定下工厂版里没有其他包依赖本包

osc whatdependson openSUSE:Factory/vim standard i586


如果有些包依赖它,你有如下选择:

  1. 保留它
  2. 把那些包先抛弃掉
  3. 让那些包不再依赖本包

如果你能解决上述问题你提交一个对该包的抛弃申请到工厂版,解释说明你为什么想要抛弃这个包。

osc deleterequest -m "抛弃旧包因为XXX" openSUSE:Factory oldstuff


When a package is removed from Factory, it is not automatically removed from the devel project. 一个包被从工厂版里抛弃后,它是不会自动从开发源里移除的。因为在工厂版外可能有其他包还依赖着它。所以取决于你的需要,你可能也要去请求从开发源里移除它。

osc deleterequest -m "抛弃旧包因为 XXX" devel:openSUSE:Factory oldstuff


一旦该包从工厂版里被移除,该包最近的版本会被复制到 openSUSE:Dropped,以备未来他人需要。

如何拯救一个被抛弃的包

你只需要从 openSUSE:Dropped 源里面找出它们。然后按照提交新包到工厂版的方法做就可以了。