transitions.txt 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. Contents:
  2. 1. Little "Howto Use it"
  3. 2. Explanation of how it works
  4. 1. Little "Howto Use it"
  5. ------------------------
  6. The input file is in YAML format. Do not bother with comments, they
  7. will be removed.
  8. The format: Don't use tabs for indentation, use spaces.
  9. Strings should be within "", but normally work without.
  10. Exception: Version-numbers with an epoch really do want to be in
  11. "". YES, THEY WANT TO (or they get interpreted in a way you don't expect
  12. it).
  13. Keys (The order of them does not matter, only the indentation):
  14. short_tag: A short tag for the transition, like apt_update
  15. reason: One-line reason what is intended with it
  16. source: Source package that needs to transition
  17. new: New version of the target package
  18. rm: Name of the Release Team member responsible for this transition
  19. packages: Array of package names that are affected by this transition
  20. The following example wants to
  21. a.) update apt to version 0.7.12, the responsible Release Team member
  22. is Andreas Barth, and it affects some apt related packages and
  23. b.) wants to do something similar for lintian.
  24. apt_update:
  25. packages:
  26. - apt
  27. - synaptic
  28. - cron-apt
  29. - debtags
  30. - feta
  31. - apticron
  32. - aptitude
  33. reason: "Apt needs to transition to testing to get foo and bar done"
  34. source: apt
  35. new: 0.7.12
  36. rm: Andreas Barth
  37. lintian_breakage:
  38. reason: "Testing a new feature"
  39. source: lintian
  40. new: 1.23.45~bpo40+1
  41. rm: Ganneff
  42. packages:
  43. - lintian
  44. - python-syck
  45. ########################################################################
  46. ########################################################################
  47. 2. Explanation of how it works
  48. ------------------------------
  49. Assume the following transition is defined:
  50. lintian_funtest:
  51. reason: "Testing a new feature"
  52. source: lintian
  53. new: 1.23.45~bpo40+1
  54. rm: Ganneff
  55. packages:
  56. - lintian
  57. - python-syck
  58. Also assume the lintian situation on this archive looks like this:
  59. lintian | 1.23.28~bpo.1 | sarge-backports | source, all
  60. lintian | 1.23.45~bpo40+1 | etch-backports | source, all
  61. ------------------------------------------------------------------------
  62. Now, I try to upload a (NEW, but that makes no difference) version of
  63. python-syck:
  64. $ dak process-unchecked -n python-syck_0.61.2-1~bpo40+1_i386.changes
  65. python-syck_0.61.2-1~bpo40+1_i386.changes
  66. REJECT
  67. Rejected: python-syck: part of the lintian_funtest transition.
  68. Your package is part of a testing transition designed to get lintian migrated
  69. (it currently is at version 1.23.28~bpo.1, we need version 1.23.45~bpo40+1)
  70. Transition description: Testing a new feature
  71. This transition is managed by the Release Team, and Ganneff
  72. is the Release-Team member responsible for it.
  73. Please contact Ganneff or debian-release@lists.debian.org if you
  74. need further assistance.
  75. ------------------------------------------------------------------------
  76. Lets change the definition of the transition, assume it is now:
  77. lintian_funtest:
  78. reason: "Testing a new feature"
  79. source: lintian
  80. new: 1.22.28~bpo.1
  81. rm: Ganneff
  82. packages:
  83. - lintian
  84. - python-syck
  85. Which checks for a version older than the version actually available. Result:
  86. dak process-unchecked -n python-syck_0.61.2-1~bpo40+1_i386.changes
  87. python-syck_0.61.2-1~bpo40+1_i386.changes
  88. NEW for etch-backports
  89. (new) python-syck_0.61.2-1~bpo40+1.diff.gz extra python
  90. (new) python-syck_0.61.2-1~bpo40+1.dsc extra python
  91. (new) python-syck_0.61.2-1~bpo40+1_i386.deb extra python
  92. PySyck python bindings to the Syck YAML parser kit
  93. Syck is a simple YAML parser kit.
  94. .
  95. [...] the whole stuff about a new package.
  96. ------------------------------------------------------------------------
  97. For completeness, change the transition to (exact existing version):
  98. lintian_funtest:
  99. reason: "Testing a new feature"
  100. source: lintian
  101. new: 1.23.28~bpo.1
  102. rm: Ganneff
  103. packages:
  104. - lintian
  105. and the result is:
  106. dak process-unchecked -n python-syck_0.61.2-1~bpo40+1_i386.changes
  107. python-syck_0.61.2-1~bpo40+1_i386.changes
  108. NEW for etch-backports
  109. [... we know this ...]
  110. ------------------------------------------------------------------------
  111. The second part is the check_transitions script.
  112. For that we take the following transitions as example:
  113. apt_update:
  114. reason: "Apt needs to transition to testing to get foo and bar done"
  115. source: apt
  116. new: 0.2.12-1+b1.3
  117. rm: Andreas Barth
  118. packages:
  119. - apt
  120. - synaptic
  121. - cron-apt
  122. - debtags
  123. - feta
  124. - apticron
  125. - aptitude
  126. lintian_funtest:
  127. reason: "Testing a new feature"
  128. source: lintian
  129. new: 1.23.45~bpo40+1
  130. rm: Ganneff
  131. packages:
  132. - lintian
  133. - python-syck
  134. bar_breaks_it:
  135. reason: We don't want bar to break it
  136. source: bar
  137. new: "9:99"
  138. rm: Ganneff
  139. packages:
  140. - kdelibs
  141. - qt4-x11
  142. - libqt-perl
  143. Running check-transitions ends up with the following output:
  144. Looking at transition: lintian_funtest
  145. Source: lintian
  146. New Version: 1.23.45~bpo40+1
  147. Responsible: Ganneff
  148. Description: Testing a new feature
  149. Blocked Packages (total: 2): lintian, python-syck
  150. Apt compare says: -2
  151. This transition is still ongoing, we currently have version 1.23.28~bpo.1
  152. -------------------------------------------------------------------------
  153. Looking at transition: apt_update
  154. Source: apt
  155. New Version: 0.2.12-1+b1.3
  156. Responsible: Andreas Barth
  157. Description: Apt needs to transition to testing to get foo and bar done
  158. Blocked Packages (total: 7): apt, synaptic, cron-apt, debtags, feta, apticron, aptitude
  159. Apt compare says: 4
  160. This transition is over, the target package reached testing, removing
  161. apt wanted version: 0.2.12-1+b1.3, has 0.6.46.4-0.1~bpo.1
  162. -------------------------------------------------------------------------
  163. Looking at transition: bar_breaks_it
  164. Source: bar
  165. New Version: 9:99
  166. Responsible: Ganneff
  167. Description: We don't want bar to break it
  168. Blocked Packages (total: 3): kdelibs, qt4-x11, libqt-perl
  169. Transition source bar not in testing, transition still ongoing.
  170. -------------------------------------------------------------------------
  171. I: I would remove the apt_update transition
  172. Changing our transition definitions for lintian (keeping the rest as
  173. above) to
  174. lintian_funtest:
  175. reason: "Testing a new feature"
  176. source: lintian
  177. new: 1.22.28~bpo.1
  178. rm: Ganneff
  179. packages:
  180. - lintian
  181. - python-syck
  182. now we get
  183. Looking at transition: lintian_funtest
  184. Source: lintian
  185. New Version: 1.22.28~bpo.1
  186. Responsible: Ganneff
  187. Description: Testing a new feature
  188. Blocked Packages (total: 2): lintian, python-syck
  189. Apt compare says: 1
  190. This transition is over, the target package reached testing, removing
  191. lintian wanted version: 1.22.28~bpo.1, has 1.23.28~bpo.1
  192. -------------------------------------------------------------------------
  193. Looking at transition: apt_update
  194. Source: apt
  195. New Version: 0.2.12-1+b1.3
  196. Responsible: Andreas Barth
  197. Description: Apt needs to transition to testing to get foo and bar done
  198. Blocked Packages (total: 7): apt, synaptic, cron-apt, debtags, feta, apticron, aptitude
  199. Apt compare says: 4
  200. This transition is over, the target package reached testing, removing
  201. apt wanted version: 0.2.12-1+b1.3, has 0.6.46.4-0.1~bpo.1
  202. -------------------------------------------------------------------------
  203. Looking at transition: bar_breaks_it
  204. Source: bar
  205. New Version: 9:99
  206. Responsible: Ganneff
  207. Description: We don't want bar to break it
  208. Blocked Packages (total: 3): kdelibs, qt4-x11, libqt-perl
  209. Transition source bar not in testing, transition still ongoing.
  210. -------------------------------------------------------------------------
  211. I: I would remove the lintian_funtest transition
  212. I: I would remove the apt_update transition
  213. Not using the -n switch would turn the I: in actual removals :)
  214. The check-transition command is meant for the release team to always run
  215. it when they change a transition definition. It checks if the yaml is
  216. valid and can be loaded (but if not the archive simply does no reject)
  217. and also shows a nice overview.