Merge lp:~albertomilone/jockey/pkg-version into lp:jockey

Proposed by Alberto Milone
Status: Needs review
Proposed branch: lp:~albertomilone/jockey/pkg-version
Merge into: lp:jockey
Diff against target: 93 lines (+18/-1)
5 files modified
jockey/backend.py (+1/-0)
jockey/handlers.py (+9/-0)
jockey/ui.py (+4/-1)
tests/backend.py (+2/-0)
tests/handlers.py (+2/-0)
To merge this branch: bzr merge lp:~albertomilone/jockey/pkg-version
Reviewer Review Type Date Requested Status
Martin Pitt (community) Disapprove
Review via email: mp+23189@code.launchpad.net

Description of the change

This branch adds initial support for retrieving the package version which, together with the code in pkg-version-ubuntu, allows us to fix LP: #543176

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :

Looks fine, please merge.

review: Approve
Revision history for this message
Martin Pitt (pitti) wrote :

Erm, wait a minute. A handler already has a "version" field. When I saw that patch, I thought we just forgot to export it, but we do. Why doesn't the nvidia driver just set this?

review: Needs Information
Revision history for this message
Martin Pitt (pitti) wrote :

Discussed on IRC. IMHO this will introduce duplicate structures into the core code which we won't ever get rid of again, and only for a corner case. Remember that you explicitly wanted to name the package "current", not "195"; so we should actually call it "current". Otherwise it'll create more confusion than it solves, since the package names in Jockey do not (always) reflect the package names in software-center etc.

If i18n is a concern, we have the ability to translate package descriptions, so maybe we should use that?

review: Disapprove
Revision history for this message
Alberto Milone (albertomilone) wrote :

A few things depend on the version field (in which we can find the driver flavour) already: the kernel module name, the package name and the recommended() method.

The package version doesn't necessarily match the driver flavour.

Unmerged revisions

627. By Alberto Milone

Add pkg_version() method which determines the value
of handler_info['pkg_version'].

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'jockey/backend.py'
--- jockey/backend.py 2010-03-11 16:11:53 +0000
+++ jockey/backend.py 2010-04-11 19:09:16 +0000
@@ -237,6 +237,7 @@
237 'changed': str(h.changed()),237 'changed': str(h.changed()),
238 'recommended': str(h.recommended()),238 'recommended': str(h.recommended()),
239 'announce': str(h.announce),239 'announce': str(h.announce),
240 'pkg_version': str(h.pkg_version()),
240 }241 }
241 for f in ['description', 'rationale', 'can_change']:242 for f in ['description', 'rationale', 'can_change']:
242 v = getattr(h, f)()243 v = getattr(h, f)()
243244
=== modified file 'jockey/handlers.py'
--- jockey/handlers.py 2010-02-01 23:56:33 +0000
+++ jockey/handlers.py 2010-04-11 19:09:16 +0000
@@ -77,6 +77,7 @@
77 self.version = None77 self.version = None
78 self.repository = None78 self.repository = None
79 self._recommended = False79 self._recommended = False
80 self._pkg_version = None
8081
81 def _package_defaults(self):82 def _package_defaults(self):
82 '''Set fallback name/description/freeness from package.'''83 '''Set fallback name/description/freeness from package.'''
@@ -190,6 +191,14 @@
190 version of a driver is provided, then it should return False.191 version of a driver is provided, then it should return False.
191 '''192 '''
192 return self._recommended193 return self._recommended
194
195 def pkg_version(self):
196 '''Return the package version of a certain driver.
197
198 This method should return the package version retrieved by the package
199 manager.
200 '''
201 return self._pkg_version
193 202
194 def available(self):203 def available(self):
195 '''Return if the conditions to use this handler on the system are met.204 '''Return if the conditions to use this handler on the system are met.
196205
=== modified file 'jockey/ui.py'
--- jockey/ui.py 2010-04-08 07:41:46 +0000
+++ jockey/ui.py 2010-04-11 19:09:16 +0000
@@ -243,7 +243,10 @@
243 result = handler_info['name']243 result = handler_info['name']
244 result = self._(result)244 result = self._(result)
245 if 'version' in handler_info:245 if 'version' in handler_info:
246 result += ' (%s)' % (self._('version %s') % handler_info['version'])246 if 'pkg_version' in handler_info:
247 result += ' (%s)' % (self._('version %s') % handler_info['pkg_version'])
248 else:
249 result += ' (%s)' % (self._('version %s') % handler_info['version'])
247 if bool(handler_info['recommended']):250 if bool(handler_info['recommended']):
248 result += ' [%s]' % self.string_recommended251 result += ' [%s]' % self.string_recommended
249 return result252 return result
250253
=== modified file 'tests/backend.py'
--- tests/backend.py 2009-09-21 11:21:44 +0000
+++ tests/backend.py 2010-04-11 19:09:16 +0000
@@ -122,6 +122,7 @@
122 'changed': 'False',122 'changed': 'False',
123 'recommended': 'False',123 'recommended': 'False',
124 'announce': 'True',124 'announce': 'True',
125 'pkg_version': 'None',
125 })126 })
126127
127 def test_set_enabled(self):128 def test_set_enabled(self):
@@ -333,6 +334,7 @@
333 'package': 'mesa-vanilla',334 'package': 'mesa-vanilla',
334 'recommended': 'False',335 'recommended': 'False',
335 'announce': 'True',336 'announce': 'True',
337 'pkg_version': 'None',
336 })338 })
337339
338 def test_handler_files(self):340 def test_handler_files(self):
339341
=== modified file 'tests/handlers.py'
--- tests/handlers.py 2009-04-01 08:24:07 +0000
+++ tests/handlers.py 2010-04-11 19:09:16 +0000
@@ -132,6 +132,7 @@
132 self.assert_(h.free())132 self.assert_(h.free())
133 self.assert_(h.enabled())133 self.assert_(h.enabled())
134 self.assertEqual(h.recommended(), False)134 self.assertEqual(h.recommended(), False)
135 self.assertEqual(h.pkg_version(), None)
135 self.assert_(h.used())136 self.assert_(h.used())
136 self.assertEqual(h.available(), None)137 self.assertEqual(h.available(), None)
137 138
@@ -166,6 +167,7 @@
166 self.failIf(h.free())167 self.failIf(h.free())
167 self.assert_(h.enabled())168 self.assert_(h.enabled())
168 self.assertEqual(h.recommended(), False)169 self.assertEqual(h.recommended(), False)
170 self.assertEqual(h.pkg_version(), None)
169 self.failIf(h.used())171 self.failIf(h.used())
170 self.assertEqual(h.available(), None)172 self.assertEqual(h.available(), None)
171173

Subscribers

People subscribed via source and target branches

to status/vote changes: