Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
喜羊羊3508
Dak
提交
b46b317a
D
Dak
项目概览
喜羊羊3508
/
Dak
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Dak
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b46b317a
编写于
3月 02, 2008
作者:
J
Joerg Jaspert
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Added a transition check feature for the release team, together with an
example transition yaml file.
上级
0429d821
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
138 addition
and
0 deletion
+138
-0
ChangeLog
ChangeLog
+7
-0
config/debian/dak.conf
config/debian/dak.conf
+1
-0
dak/process_unchecked.py
dak/process_unchecked.py
+76
-0
docs/transitions.yaml.example
docs/transitions.yaml.example
+54
-0
未找到文件。
ChangeLog
浏览文件 @
b46b317a
2008
-
03
-
02
Joerg
Jaspert
<
joerg
@
debian
.
org
>
*
dak
/
process_unchecked
.
py
(
check_transition
):
Added
.
Checks
if
a
release
team
member
defined
a
transition
,
and
rejects
based
on
that
data
.
(
process_it
):
Use
it
.
2008
-
02
-
06
Joerg
Jaspert
<
joerg
@
debian
.
org
>
2008
-
02
-
06
Joerg
Jaspert
<
joerg
@
debian
.
org
>
*
daklib
/
utils
.
py
(
check_signature
):
Make
variable
key
available
,
*
daklib
/
utils
.
py
(
check_signature
):
Make
variable
key
available
,
...
...
config/debian/dak.conf
浏览文件 @
b46b317a
...
@@ -27,6 +27,7 @@ Dinstall
...
@@ -27,6 +27,7 @@ Dinstall
StableDislocationSupport
"false"
;
StableDislocationSupport
"false"
;
DefaultSuite
"unstable"
;
DefaultSuite
"unstable"
;
UserExtensions
"/srv/ftp.debian.org/dak/config/debian/extensions.py"
;
UserExtensions
"/srv/ftp.debian.org/dak/config/debian/extensions.py"
;
ReleaseTransitions
"/srv/ftp.debian.org/testing/hints/transitions.yaml"
;
QueueBuildSuites
QueueBuildSuites
{
{
unstable
;
unstable
;
...
...
dak/process_unchecked.py
浏览文件 @
b46b317a
...
@@ -36,6 +36,8 @@ import daklib.queue
...
@@ -36,6 +36,8 @@ import daklib.queue
import
daklib.utils
import
daklib.utils
from
types
import
*
from
types
import
*
from
syck
import
*
################################################################################
################################################################################
...
@@ -1139,6 +1141,79 @@ def upload_too_new():
...
@@ -1139,6 +1141,79 @@ def upload_too_new():
os
.
chdir
(
cwd
)
os
.
chdir
(
cwd
)
return
too_new
return
too_new
################################################################################
################################################################################
# We reject packages if the release team defined a transition for them
def
check_transition
():
to_dump
=
0
# Only check if there is a file defined with checks. It's a little bit
# specific to Debian, not much use for others, so return early there.
if
not
Cnf
.
has_key
(
"Dinstall::Reject::ReleaseTransitions"
):
return
# No need to do anything if this upload has no source included
if
not
changes
[
"architecture"
].
has_key
(
"source"
):
return
# We first load the current set of transitions, if any
if
not
os
.
path
.
exists
(
"%s"
%
(
Cnf
[
"Dinstall::Reject::ReleaseTransitions"
])):
# Nothing to do, no file exists
return
# Parse the yaml file
sourcefile
=
file
(
Cnf
[
"Dinstall::Reject::ReleaseTransitions"
],
'r'
)
transitions
=
load
(
sourcefile
)
# Now look through all defined transitions
for
trans
in
transition
:
t
=
transition
[
trans
]
# We check if the transition is still valid
# If not we remove the whole setting from the dictionary and later dump it,
# so we don't process it again.
source
=
t
[
"source"
]
new_vers
=
t
[
"new"
]
q
=
Upload
.
projectB
.
query
(
"""
SELECT s.version FROM source s, suite su, src_associations sa
WHERE sa.source=s.id
AND sa.suite=su.id
AND su.suite_name='testing'
AND s.source='%s'"""
%
(
source
))
ql
=
q
.
getresult
()
if
ql
:
current_vers
=
ql
[
0
][
0
]
if
apt_pkg
.
VersionCompare
(
new_vers
,
current_vers
)
==
1
:
# This is still valid, the current version in database is older than
# the new version we wait for
# Check if the source we look at is affected by this.
if
changes
[
"source"
]
in
t
[
'packages'
]:
# The source is affected, lets reject it.
reject
(
"""%s: part of the %s transition.
Your package is part of a testing transition to get %s migrated.
Transition reason: %s
This transition will finish when %s, version %s, reaches testing.
This transition is managed by the Release Team and %s
is the Release-Team member responsible for it.
Please contact them or debian-release@lists.debian.org if you
need further assistance.
"""
%
(
changes
[
"source"
],
trans
,
source
,
t
[
"reason"
],
source
,
new_vers
,
t
[
"rm"
]))
return
0
else
:
# We either have the wanted or a newer version in testing, or the package got
# removed completly. In that case we don't need to keep the transition blocker
del
transition
[
trans
]
to_dump
=
1
if
to_dump
:
destfile
=
file
(
Cnf
[
"Dinstall::Reject::ReleaseTransitions"
],
'w'
)
dump
(
transition
,
destfile
)
################################################################################
################################################################################
def
action
():
def
action
():
...
@@ -1522,6 +1597,7 @@ def process_it (changes_file):
...
@@ -1522,6 +1597,7 @@ def process_it (changes_file):
check_urgency
()
check_urgency
()
check_timestamps
()
check_timestamps
()
check_signed_by_key
()
check_signed_by_key
()
check_transition
()
Upload
.
update_subst
(
reject_message
)
Upload
.
update_subst
(
reject_message
)
action
()
action
()
except
SystemExit
:
except
SystemExit
:
...
...
docs/transitions.yaml.example
0 → 100644
浏览文件 @
b46b317a
# vim:syntax=yaml:
# Dont use tabs for indentation, use spaces.
# Or if you use tabs - use them throughout the file. One style of
# indentation pleae, not multiple.
#
# Strings should be within "", but normally work without.
# Exception: Version-numbers with an epoch really do want to be in ""
#
# keys:
#
# short_tag: A short tag for the transition, like apt_update
# reason: One-line reason what is intended with it
# source: Source package that needs to transition
# new: New version of the target package
# rm: Name of the Release Team member responsible for this transition
# packages: Array of package names that are affected by this transition
#
#
# The following example wants to update apt to version 0.7.12, the
# responsible Release Team member is Andreas Barth, and it affects some
# apt related packages.
apt_update
:
reason
:
"
Apt
needs
to
transition
to
testing
to
get
foo
and
bar
done"
source
:
apt
new
:
0.7.12
rm
:
Andreas Barth
packages
:
-
apt
-
synaptic
-
cron-apt
-
debtags
-
feta
-
apticron
-
aptitude
foo_broken
:
reason
:
"
Something
else
thats
broken"
source
:
foo
new
:
1.3-1
rm
:
Someone
packages
:
-
foo
-
baz
-
bar
bar_breaks_it
:
reason
:
We dont want bar to break it
source
:
bar
new
:
"
9:99"
rm
:
Ganneff
packages
:
-
kdelibs
-
qt4-x11
-
libqt-perl
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录