bodhi/admin.py | 11 + bodhi/config/app.cfg | 8 + bodhi/controllers.py | 14 ++ bodhi/masher.py | 9 + bodhi/model.py | 30 +++++ bodhi/templates/show.kid | 40 +++++-- bodhi/tests/test_controllers.py | 224 +++++++++++++++++++++++++++++++++++++++- 7 files changed, 321 insertions(+), 15 deletions(-)
New commits: commit 738f0b74947c96512034277ca0844d35200f66cd Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 13:57:49 2010 -0500
Reset the PackageUpdate.date_pushed when a testing update hits stable
diff --git a/bodhi/model.py b/bodhi/model.py index a05ca2d..6c93521 100644 --- a/bodhi/model.py +++ b/bodhi/model.py @@ -335,7 +335,6 @@ class PackageUpdate(SQLObject): time.localtime()[0],id) log.debug("Setting updateid for %s to %s" % (self.title, self.updateid)) - self.date_pushed = datetime.utcnow() hub.commit()
def set_request(self, action, pathcheck=True): @@ -434,6 +433,7 @@ class PackageUpdate(SQLObject): self.pushed = True self.status = 'testing' self.assign_id() + self.date_pushed = datetime.utcnow() elif self.request == 'obsolete': self.pushed = False self.status = 'obsolete' @@ -441,6 +441,7 @@ class PackageUpdate(SQLObject): self.pushed = True self.status = 'stable' self.assign_id() + self.date_pushed = datetime.utcnow() self.request = None hub.commit()
commit 06846118dd164e89ae747caaa6997a7718739cdb Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:22:48 2010 -0500
We want to move tags for *all* updates headed to stable for pending releases, not just critical path updates.
diff --git a/bodhi/masher.py b/bodhi/masher.py index e648692..6ae1ee6 100644 --- a/bodhi/masher.py +++ b/bodhi/masher.py @@ -387,7 +387,7 @@ class MashTask(Thread): self.tag = update.release.stable_tag # [No Frozen Rawhide] Move stable builds going to a pending # release to the Release.dist-tag - if update.release.locked and update.critpath: + if update.release.locked: self.tag = update.release.dist_tag elif update.request == 'testing': self.tag = update.release.testing_tag
commit 290ea5e58ef2a4ed5e7843e3d4aedc2ad69af067 Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:21:15 2010 -0500
Minor comment tweaks
diff --git a/bodhi/masher.py b/bodhi/masher.py index 1293e75..e648692 100644 --- a/bodhi/masher.py +++ b/bodhi/masher.py @@ -385,8 +385,8 @@ class MashTask(Thread): for update in self.updates: if update.request == 'stable': self.tag = update.release.stable_tag - # [No Frozen Rawhide] Move stable builds going to a locked - # release to the dist-tag + # [No Frozen Rawhide] Move stable builds going to a pending + # release to the Release.dist-tag if update.release.locked and update.critpath: self.tag = update.release.dist_tag elif update.request == 'testing':
commit ceecc97ecbe7ee44ff664235c913ffb2bdd64bbb Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:20:33 2010 -0500
Minor comment addition
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index b2b0c9e..7b134e5 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -838,6 +838,7 @@ class Root(controllers.RootController): note.append("You're pushing a critical path package directly to " "stable, which is strongly discouraged. Please " "consider pushing to testing first!") + # Discourage devs from pushing directly to stable for pending releases elif update.request == 'stable' and update.release.locked: note.append("This update is bypassing updates-testing for a " "pending release, which is strongly discouraged. "
commit bc06073d029f623ee73f90a38fb46491480fe39d Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:18:57 2010 -0500
Discourage developers from pushing critpath packages to stable, harder.
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index e7d9e7f..b2b0c9e 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -836,7 +836,8 @@ class Root(controllers.RootController): 'qa' not in identity.current.groups and 'releng' not in identity.current.groups): note.append("You're pushing a critical path package directly to " - "stable. Please consider pushing to testing first!") + "stable, which is strongly discouraged. Please " + "consider pushing to testing first!") elif update.request == 'stable' and update.release.locked: note.append("This update is bypassing updates-testing for a " "pending release, which is strongly discouraged. "
commit dfdf1f57e82de781f6d604947b39dc609cb52571 Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:17:11 2010 -0500
Strongly discourage devs from pushing directly to stable for pending releases
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index c3377b2..e7d9e7f 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -837,6 +837,11 @@ class Root(controllers.RootController): 'releng' not in identity.current.groups): note.append("You're pushing a critical path package directly to " "stable. Please consider pushing to testing first!") + elif update.request == 'stable' and update.release.locked: + note.append("This update is bypassing updates-testing for a " + "pending release, which is strongly discouraged. " + "Please ensure that it is properly tested, or " + "consider pushing it to testing first.")
flash_log('. '.join(note))
commit f31e885836bdab3fbe806e0a8b5f10bf35056b4e Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:06:16 2010 -0500
Add a bunch of unit tests for the No Frozen Rawhide policy
diff --git a/bodhi/tests/test_controllers.py b/bodhi/tests/test_controllers.py index 2228c0a..916d297 100644 --- a/bodhi/tests/test_controllers.py +++ b/bodhi/tests/test_controllers.py @@ -21,9 +21,9 @@ from bodhi.exceptions import DuplicateEntryError
cherrypy.root = Root()
-def create_release(num='7', dist='dist-fc'): +def create_release(num='7', dist='dist-fc', **kw): rel = Release(name='F'+num, long_name='Fedora '+num, id_prefix='FEDORA', - dist_tag=dist+num) + dist_tag=dist+num, **kw) assert rel assert Release.byName('F'+num) return rel @@ -1243,3 +1243,223 @@ class TestControllers(testutil.DBTest): assert False, "Old obsolete build still exists!!" except SQLObjectNotFound: pass + + def test_push_critpath_to_release(self): + session = login() + create_release() + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': 'stable', + 'unstable_karma' : -1, + } + testutil.capture_log(["bodhi.util", "bodhi.controllers", "bodhi.model"]) + self.save_update(params, session) + log = testutil.get_log() + assert "Update successfully created. You're pushing a critical path package directly to stable. Please consider pushing to testing first!" in log, log + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'stable' + + def test_push_critpath_to_frozen_release(self): + session = login() + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': 'stable', + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'testing' + + def test_push_critpath_to_frozen_release_and_request_stable(self): + session = login() + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': 'stable', + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'testing' + + # Ensure we can't create a stable request + testutil.capture_log(["bodhi.util", "bodhi.controllers", "bodhi.model"]) + testutil.create_request('/updates/request/stable/%s' % params['builds'], + method='POST', headers=session) + log = testutil.get_log() + assert "Forcing critical path update into testing" in log + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'testing' + + def test_push_critpath_to_frozen_release_and_request_stable_as_releng(self): + session = login(group='releng') + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': 'stable', + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'stable' + + def test_critpath_to_frozen_release_available_actions(self): + """ + Ensure devs can attempt to push critpath updates for pending releases + to stable, but make sure that it can only go to testing. + """ + session = login() + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': None, + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + testutil.create_request('/updates/%s' % params['builds'], + method='GET', headers=session) + + assert "Push to Testing" in cherrypy.response.body[0] + assert "Push to Stable" not in cherrypy.response.body[0] + + testutil.create_request('/updates/request/stable/%s' % params['builds'], + method='POST', headers=session) + update = PackageUpdate.byTitle(params['builds']) + assert update.request == 'testing' + + def test_critpath_to_frozen_release_available_actions_for_releng(self): + """ + Ensure releng/qa can push critpath updates to stable for pending releases + """ + session = login(group='releng') + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': None, + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + testutil.create_request('/updates/%s' % params['builds'], + method='GET', headers=session) + + assert "Push to Testing" in cherrypy.response.body[0] + assert "Push Critical Path update to Stable" in cherrypy.response.body[0] + + def test_critpath_to_frozen_release_testing(self): + """ + Ensure devs can *not* push critpath updates directly to stable + for pending releases + """ + session = login() + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': None, + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + + # Pretend it's pushed to testing + update.pushed = True + update.status = 'testing' + + testutil.create_request('/updates/%s' % params['builds'], + method='GET', headers=session) + + # Ensure the dev cannot push it to stable + assert "/updates/request/stable" not in cherrypy.response.body[0] + + def test_non_critpath_to_frozen_release_testing(self): + """ + Ensure non-critpath packages can still be pushed to stable as usual + """ + session = login() + create_release(locked=True) + params = { + 'builds' : 'nethack-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': None, + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + + # Pretend it's pushed to testing + update.pushed = True + update.status = 'testing' + + testutil.create_request('/updates/%s' % params['builds'], + method='GET', headers=session) + + assert "/updates/request/stable" in cherrypy.response.body[0] + + def test_critpath_to_frozen_release_testing_admin_actions(self): + """ + Ensure admins can submit critpath updates for pending releases to stable. + """ + session = login(group='qa') + create_release(locked=True) + params = { + 'builds' : 'kernel-2.6.31-1.fc7', + 'release' : 'Fedora 7', + 'type_' : 'bugfix', + 'bugs' : '', + 'notes' : 'foobar', + 'stable_karma' : 1, + 'request': None, + 'unstable_karma' : -1, + } + self.save_update(params, session) + update = PackageUpdate.byTitle(params['builds']) + + # Pretend it's pushed to testing + update.pushed = True + update.status = 'testing' + + testutil.create_request('/updates/%s' % params['builds'], + method='GET', headers=session) + + assert "Mark Critical Path update as Stable" in cherrypy.response.body[0]
commit 4008b9c7354b13c96d3e9be93bf09b285573fab6 Author: Luke Macken lmacken@redhat.com Date: Thu Jan 7 12:05:59 2010 -0500
Tweak our update action links for the No Frozen Rawhide policy
diff --git a/bodhi/templates/show.kid b/bodhi/templates/show.kid index ea01bef..8e7c8af 100644 --- a/bodhi/templates/show.kid +++ b/bodhi/templates/show.kid @@ -67,12 +67,24 @@ karma = "<img src="%s" align="top" /> <b>%d</b>" % (tg.url('/static/images/k Push to Testing </a> </td> + <span py:if="update.release.locked and update.critpath"> + <span py:if="'qa' in tg.identity.groups or 'releng' in tg.identity.groups"> + <td> + <a href="${util.url('/request/stable/%s' % update.title)}" class="list"> + <img src="${tg.url('/static/images/submit.png')}" border="0"/> + Push Critical Path update to Stable + </a> + </td> + </span> + <span py:if="not update.release.locked or not update.critpath"> <td> <a href="${util.url('/request/stable/%s' % update.title)}" class="list"> <img src="${tg.url('/static/images/submit.png')}" border="0"/> Push to Stable </a> </td> + </span> + </span> <td> <a href="${util.url('/confirm_delete?nvr=%s' % update.title)}" class="list"> <img src="${tg.url('/static/images/trash.png')}" border="0"/> @@ -95,14 +107,26 @@ karma = "<img src="%s" align="top" /> <b>%d</b>" % (tg.url('/static/images/k </a> </td> <span py:if="update.status == 'testing'"> - <span py:if="update.request == None"> - <td> - <a href="${util.url('/request/stable/%s' % update.title)}" class="list"> - <img src="${tg.url('/static/images/submit.png')}" border="0"/> - Mark as Stable - </a> - </td> - </span> + <span py:if="update.request == None"> + <span py:if="update.release.locked and update.critpath"> + <span py:if="'qa' in tg.identity.groups or 'releng' in tg.identity.groups"> + <td> + <a href="${util.url('/request/stable/%s' % update.title)}" class="list"> + <img src="${tg.url('/static/images/submit.png')}" border="0"/> + Mark Critical Path update as Stable + </a> + </td> + </span> + </span> + <span py:if="not update.release.locked or not update.critpath"> + <td> + <a href="${util.url('/request/stable/%s' % update.title)}" class="list"> + <img src="${tg.url('/static/images/submit.png')}" border="0"/> + Mark as Stable + </a> + </td> + </span> + </span> <td> <a href="${util.url('/edit/%s' % update.title)}" class="list"> <img src="${tg.url('/static/images/edit.png')}" border="0"/>
commit 835598ced5d3ba0112d8dbdd684af9d4d7de775a Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:05:45 2010 -0500
Add a PackageUpdate.critpath property
diff --git a/bodhi/model.py b/bodhi/model.py index 17c41e9..a05ca2d 100644 --- a/bodhi/model.py +++ b/bodhi/model.py @@ -825,6 +825,17 @@ class PackageUpdate(SQLObject): return None return int(self.updateid.split('-')[-1])
+ @property + def critpath(self): + """ Return whether or not this update is in the critical path """ + critical = False + critpath_pkgs = config.get('critpath').split() + for build in self.builds: + if build.package.name in critpath_pkgs: + critical = True + break + return critical +
class Comment(SQLObject): timestamp = DateTimeCol(default=datetime.utcnow)
commit 547ea42ba8c32ae261ce4c1b2cb231e284aafab8 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:05:28 2010 -0500
[No Frozen Rawhide] Disable pushing critical path updates for pending releases directly to stable.
diff --git a/bodhi/model.py b/bodhi/model.py index f55ff3b..17c41e9 100644 --- a/bodhi/model.py +++ b/bodhi/model.py @@ -407,6 +407,17 @@ class PackageUpdate(SQLObject): flash_log('%s does not have a request to revoke' % self.title) return
+ # [No Frozen Rawhide] Disable pushing critical path updates for + # pending releases directly to stable. + if action == 'stable' and self.release.locked and self.critpath: + if ('releng' in identity.current.groups or + 'qa' in identity.current.groups): + self.comment('Critical path update approved by %s' % + identity.current.user_name, author='bodhi') + else: + log.info('Forcing critical path update into testing') + action = 'testing' + self.request = action self.pushed = False #self.date_pushed = None
commit 41c407e5a73dfcaa9077eb2babd8301911d10a78 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:05:17 2010 -0500
[No Frozen Rawhide] We're going to re-use this column to flag 'pending' releases, since we'll no longer need to lock releases in this case.
diff --git a/bodhi/model.py b/bodhi/model.py index 819b571..f55ff3b 100644 --- a/bodhi/model.py +++ b/bodhi/model.py @@ -50,9 +50,12 @@ class Release(SQLObject): updates = MultipleJoin('PackageUpdate', joinColumn='release_id') id_prefix = UnicodeCol(notNone=True) dist_tag = UnicodeCol(notNone=True) # ie dist-fc7 - locked = BoolCol(default=False) metrics = PickleCol(default=None) # {metric: {data}}
+ # [No Frozen Rawhide] We're going to re-use this column to flag 'pending' + # releases, since we'll no longer need to lock releases in this case. + locked = BoolCol(default=False) + def get_version(self): regex = re.compile('\D+(\d+)$') return int(regex.match(self.name).groups()[0])
commit 63b8f7dc67e08da4c539a0a2bf36e3ae2526bf5b Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:05:04 2010 -0500
[No Frozen Rawhide] Move stable builds going to a locked release to the dist-tag
diff --git a/bodhi/masher.py b/bodhi/masher.py index 6464d73..1293e75 100644 --- a/bodhi/masher.py +++ b/bodhi/masher.py @@ -385,6 +385,10 @@ class MashTask(Thread): for update in self.updates: if update.request == 'stable': self.tag = update.release.stable_tag + # [No Frozen Rawhide] Move stable builds going to a locked + # release to the dist-tag + if update.release.locked and update.critpath: + self.tag = update.release.dist_tag elif update.request == 'testing': self.tag = update.release.testing_tag elif update.request == 'obsolete':
commit 5fd95a684f0a7dd8a271b7a7df198356bf804069 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:04:55 2010 -0500
[No Frozen Rawhide] Don't mash stable repos for pending releases
diff --git a/bodhi/masher.py b/bodhi/masher.py index c890d92..6464d73 100644 --- a/bodhi/masher.py +++ b/bodhi/masher.py @@ -351,6 +351,11 @@ class MashTask(Thread): """ for update in self.updates: release = update.release + + # [No Frozen Rawhide] Don't mash stable repos for pending releases + if update.request == 'stable' and release.locked: + continue + if self.resume: self.repos.add(release.stable_repo) self.repos.add(release.testing_repo)
commit 54b18e535a19a5cf9b11d0a2dd49ffd0cc934a09 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:04:44 2010 -0500
Politely discourage devs from pushing critpath straight to stable
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index fa2e7e1..c3377b2 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -831,6 +831,13 @@ class Root(controllers.RootController): flash_log(str(e)) raise InvalidUpdateException(params)
+ # Politely discourage devs from pushing critpath straight to stable + if (update.request == 'stable' and update.critpath and + 'qa' not in identity.current.groups and + 'releng' not in identity.current.groups): + note.append("You're pushing a critical path package directly to " + "stable. Please consider pushing to testing first!") + flash_log('. '.join(note))
if request_format() == 'json':
commit 1e486d8d35495d46523e1f1ec805ecbad0b57764 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:04:28 2010 -0500
Hardcode the critpath package list until we can query the pkgdb for it
diff --git a/bodhi/config/app.cfg b/bodhi/config/app.cfg index 0cf1843..2c94f87 100644 --- a/bodhi/config/app.cfg +++ b/bodhi/config/app.cfg @@ -148,6 +148,14 @@ tgcaptcha.jpeg_generator = 'mcdermott' tgcaptcha.key = 'Y`h`f&s}TZz' #tgcaptcha.controller = '/updates/captcha'
+## +## Critical Path Packages +## +## Hardcoded, until we can query the pkgdb for it. +## http://kojipkgs.fedoraproject.org/mash/rawhide-20100107/logs/critpath.txt +critpath = "ConsoleKit ConsoleKit-libs ConsoleKit-x11 DeviceKit-power GConf2 GConf2-gtk MAKEDEV ModemManager NetworkManager NetworkManager-glib ORBit2 acl alsa-lib anaconda anaconda-yum-plugins at-spi atk attr audit audit-libs authconfig authconfig-gtk avahi avahi-autoipd avahi-glib basesystem bash binutils bluecurve-cursor-theme bzip2 bzip2-libs c-ares ca-certificates cairo checkpolicy chkconfig cloog-ppl compat-db47 comps-extras constantine-backgrounds constantine-backgrounds-single control-center control-center-filesystem coreutils coreutils-libs cpio cpp cracklib cracklib-dicts cracklib-python createrepo cronie cronie-anacron crontabs cryptsetup-luks cryptsetup-luks-libs cups-libs curl cyrus-sasl cyrus-sasl-lib dash db4 db4-utils dbus dbus-glib dbus-libs dbus-python dbus-x11 deltarpm desktop-backgrounds-basic desktop-file-utils device-mapper device-mapper-event device-mapper-event-libs device-mapper-libs dhclient diffutils dmidecode dmraid dmraid-events dnsmasq dosfstools dracut e2fsprogs e2fsprogs-libs efibootmgr eggdbus elfutils elfutils-libelf elfutils-libs ethtool evolution-data-server expat fedora-gnome-theme fedora-icon-theme fedora-logos fedora-release fedora-setup-keyboard file file-libs filesystem findutils fipscheck fipscheck-lib firstboot flac fontconfig freetype gamin gawk gcc gcc-c++ gdbm gdm genisoimage glib2 glibc glibc-common glibc-devel glibc-headers gmp gnome-desktop gnome-icon-theme gnome-keyring gnome-keyring-pam gnome-menus gnome-panel-libs gnome-python2 gnome-python2-canvas gnome-python2-gnome gnome-python2-gnomevfs gnome-session gnome-settings-daemon gnome-themes gnome-vfs2 gnupg2 gnutls gpgme grep grub grubby gstreamer gstreamer-tools gtk2 gtk2-engines gzip hal hal-info hal-libs hdparm hesiod hicolor-icon-theme hostname hwdata info initscripts iptables iptables-ipv6 iputils iscsi-initiator-utils iso-codes isomd5sum jasper-libs kbd kernel kernel-headers keyutils-libs koji kpartx krb5-libs less libICE libIDL libSM libX11 libX11-common libXScrnSaver libXau libXcomposite libXcursor libXdamage libXdmcp libXext libXfixes libXfont libXft libXi libXinerama libXmu libXrandr libXrender libXres libXt libXtst libXv libXvMC libXxf86misc libXxf86vm libacl libart_lgpl libasyncns libattr libblkid libbonobo libbonoboui libcanberra libcanberra-gtk2 libcap libcap-ng libcom_err libcroco libcurl libdaemon libdrm libedit libffi libfontenc libgail-gnome libgcc libgcrypt libglade2 libgnome libgnomecanvas libgnomekbd libgnomeui libgomp libgpg-error libgsf libgudev1 libgweather libical libidn libjpeg libmcpp libnl libnotify libogg libpcap libpciaccess libpng libproxy libproxy-bin libproxy-python librsvg2 libselinux libselinux-python libselinux-utils libsemanage libsepol libsndfile libsoup libss libssh2 libstdc++ libstdc++-devel libtasn1 libtdb libthai libtiff libtool-ltdl libudev libusb libuser libuser-python libutempter libuuid libvorbis libwnck libx86 libxcb libxkbfile libxklavier libxml2 libxml2-python libxslt linux-firmware livecd-tools logrotate lua lvm2 lvm2-libs lzma lzma-libs m4 makebootfat mash mcpp mdadm metacity mingetty mobile-broadband-provider-info module-init-tools mpfr mtools mysql-libs nash ncurses ncurses-base ncurses-libs net-tools newt newt-python notification-daemon notification-daemon-engine-slider nspr nss nss-softokn nss-softokn-freebl nss-sysinit nss-util ntp ntpdate openldap openssh openssh-clients openssh-server openssl pam pango parted passwd patch pciutils-libs pcre perl perl-Crypt-PasswdMD5 perl-Digest-SHA1 perl-Module-Pluggable perl-Pod-Escapes perl-Pod-Simple perl-libs perl-version pinentry pixman pkgconfig plymouth plymouth-gdm-hooks plymouth-libs plymouth-scripts plymouth-utils pm-utils policycoreutils polkit polkit-desktop-policy polkit-gnome popt postfix ppl ppp procmail procps psmisc pth pulseaudio-gdm-hooks pulseaudio-libs pulseaudio-libs-glib2 pungi pyOpenSSL pycairo pygobject2 pygpgme pygtk2 pygtk2-libglade pykickstart pyparted python python-bugzilla python-cryptsetup python-decorator python-deltarpm python-ethtool python-imgcreate python-iniparse python-kid python-krbV python-libs python-meh python-nss python-pyblock python-pycurl python-slip python-urlgrabber pyxf86config radeontool rarian rarian-compat readline redhat-menus redhat-rpm-config repoview rootfiles rpm rpm-build rpm-libs rpm-python rsyslog sed selinux-policy selinux-policy-targeted sendmail setserial setup setuptool sgml-common sgpio shadow-utils shared-mime-info slang sound-theme-freedesktop sqlite squashfs-tools startup-notification sudo sysklogd syslinux system-config-date system-config-firewall-base system-config-keyboard system-config-users sysvinit-tools tar tcp_wrappers-libs tzdata udev unique unzip upstart usermode usermode-gtk ustr util-linux-ng vbetool vim-minimal which wpa_supplicant xcb-util xdg-utils xkeyboard-config xml-common xorg-x11-drivers xorg-x11-drv-acecad xorg-x11-drv-aiptek xorg-x11-drv-apm xorg-x11-drv-ast xorg-x11-drv-ati xorg-x11-drv-cirrus xorg-x11-drv-dummy xorg-x11-drv-elographics xorg-x11-drv-evdev xorg-x11-drv-fbdev xorg-x11-drv-fpit xorg-x11-drv-geode xorg-x11-drv-glint xorg-x11-drv-hyperpen xorg-x11-drv-i128 xorg-x11-drv-i740 xorg-x11-drv-intel xorg-x11-drv-keyboard xorg-x11-drv-mach64 xorg-x11-drv-mga xorg-x11-drv-mouse xorg-x11-drv-mutouch xorg-x11-drv-neomagic xorg-x11-drv-nouveau xorg-x11-drv-nv xorg-x11-drv-openchrome xorg-x11-drv-penmount xorg-x11-drv-r128 xorg-x11-drv-rendition xorg-x11-drv-s3virge xorg-x11-drv-savage xorg-x11-drv-siliconmotion xorg-x11-drv-sis xorg-x11-drv-sisusb xorg-x11-drv-synaptics xorg-x11-drv-tdfx xorg-x11-drv-trident xorg-x11-drv-v4l xorg-x11-drv-vesa xorg-x11-drv-vmmouse xorg-x11-drv-vmware xorg-x11-drv-void xorg-x11-drv-voodoo xorg-x11-drv-wacom xorg-x11-server-Xorg xorg-x11-server-common xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit xorg-x11-xkb-utils xz xz-libs yum yum-metadata-parser yum-utils zenity zlib" + + # The commented out values below are the defaults
# VIEW
commit dbb609c91b1f35cf07eaebd22aa795596c2b95e0 Author: Luke Macken <lmacken@redhat.com> Date: Thu Jan 7 12:04:12 2010 -0500
Don't hide locked releases anymore
diff --git a/bodhi/admin.py b/bodhi/admin.py index db096dd..7d80d25 100644 --- a/bodhi/admin.py +++ b/bodhi/admin.py @@ -110,9 +110,14 @@ class AdminController(Controller, SecureResource): else: # Get a list of all updates with a request that aren't # unapproved security updates, or for a locked release - requests = filter(lambda update: not update.release.locked, - PackageUpdate.select( - PackageUpdate.q.request != None)) + requests = PackageUpdate.select(PackageUpdate.q.request != None) + + # Come F13+, bodhi will not have locked releases. It will + # implement the 'No Frozen Rawhide' proposal, and treat 'locked' + # releases as pending. + #requests = filter(lambda update: not update.release.locked, + # PackageUpdate.select( + # PackageUpdate.q.request != None)) for update in requests: if update.type == 'security' and not update.approved: continue