Package: ulatencyd
Version: 0.5.0-7
Severity: wishlist
Tags: patch

The package descriptions for ulatencyd/ulatency have a couple of typos
and minor language issues; my review has ended up giving it a thorough
rewrite.

Current version:

> Package: ulatencyd
[...]
> Description: Daemon to minimize latency on a linux system using cgroups

There are a couple of capitalisation issues here: on the one hand,
DevRef recommends against it on the first word of the synopsis, while
on the other hand, "linux" should be "Linux".  Except that of course
users seeing this "Architecture: linux-any" package in their list of
available software (unlike the random web-surfers reading the project
description in github) already know it works on Linux, so it's
redundant here.

I would suggest rewriting the synopsis for the suite as a whole as
"scriptable latency regulator using cgroups", and then differentiating
ulatencyd and ulatency by appending "server" and "clients".

>  Ulatency is a daemon that controls how the Linux kernel will spend it's

Surely the daemon's name is "ulatencyd", not "ulatency"?  Whereas the
expansion is "the userspace latency daemon"...

Typo: s/it's/its/.  I'd also get rid of the "will".

>  resources on the running processes. It uses dynamic cgroups to give the
>  kernel hints and limitations on processes.

This is just subtly awkward.  Does it mean "to give it hints, and to
give it limitations on processes" or "to give it hints-and-limitations
on processes"?  And either way, what exactly does it mean to give
something limitations on processes?

Stealing a few words and phrases from the man pages I would suggest
"to give the kernel hints on how to optimize process scheduling".

>  .
>  It strongly supports the lua scripting language for writing rules and the
>  scheduler code.

Canonical capitalisation: s/lua/Lua/.

"Strongly supports" would mean that it's an ideological supporter of
Lua.  For the technological sense of "support" you want something like
"fully"; but that doesn't really give the right emphasis.  Lua isn't
an optional extra that ulatencyd happens to provide some degree of
plug-in support for; being scriptable is more or less the whole point
of ulatencyd, and Lua is the one and only scripting mechanism it
accepts!  So turn it round and say "It is fully scriptable in Lua, to
support writing custom rules and scheduler code." 

(I'm not sure what distinction it is trying to make between rules and
code, but never mind that for now.)

>  .
>  The Linux scheduler does a pretty good job to give the available resources

Very slightly unidiomatic; say "does a pretty good job of sharing
available resources out..."

>  to all processes, but this may not be the best user experience in the
>  desktop case. ulatencyd monitors the system and categorizes the running
>  processes into cgroups. Processes that run wild to slow down the system

Again unidiomatic (by comparison with the previous couple of lines):
s/run wild to/run wild and/

>  by causing massive swaping will be isolated.

Typo: s/swaping/swapping/

> 
> Package: ulatency
> Architecture: linux-any
> Depends: ${misc:Depends}, ulatencyd (= ${binary:Version}), python, python-dbus
> Suggests: python-qt4
> Description: Client for the ulatencyd daemon
>  Ulatency is a daemon that controls how the Linux kernel will spend it's
>  resources on the running processes. It uses dynamic cgroups to give the
>  kernel hints and limitations on processes.

Comments as above.

>  .
>  This package provides a command-line/qt4 client for the ulatencyd daemon.

Canonical capitalisation: s/qt4/Qt4/.  But it's not one switchable
CLI/GUI client, it's one of each: "provides command-line and Qt4
clients".  And instead of referring to it somewhat redundantly as "the
ulatencyd daemon" (or indeed "the userspace ulatencyd daemon") just
call it "ulatencyd".

There's still a chunk of information missing here: given that you can
control the server with Lua scripts, what are the clients for?  I'll
bulk the description out with a bit from the man page.

Here's my suggested revised version:

| Package: ulatencyd
[...]
| Description: scriptable latency regulator using cgroups - server
|  The userspace latency daemon controls how the Linux kernel spends its
|  resources on the running processes. It uses dynamic cgroups to give the
|  kernel hints on how to optimize process scheduling.
|  .
|  It supports the Lua scripting language for writing rules and the
|  scheduler code.
|  .
|  The Linux scheduler does a pretty good job of sharing available resources
|  out to all processes, but this may not be the best user experience in the
|  desktop case. ulatencyd monitors the system and categorizes the running
|  processes into cgroups. Processes that run wild and slow down the system
|  by causing massive swapping will be isolated.
| 
| Package: ulatency
[...]
| Description: scriptable latency regulator using cgroups - clients
|  The userspace latency daemon controls how the Linux kernel spends its
|  resources on the running processes. It uses dynamic cgroups to give the
|  kernel hints on how to optimize process scheduling.
|  .
|  This package provides command-line and Qt4 clients which can be used to
|  tune and monitor ulatencyd.

-- 
JBR
Ankh kak! (Ancient Egyptian blessing)
diff -ru ulatencyd-0.5.0.pristine/debian/control ulatencyd-0.5.0/debian/control
--- ulatencyd-0.5.0.pristine/debian/control	2012-06-30 14:15:12.000000000 +0100
+++ ulatencyd-0.5.0/debian/control	2012-07-07 13:34:43.919392352 +0100
@@ -18,27 +18,28 @@
 Architecture: linux-any
 Pre-Depends: ${misc:Pre-Depends}
 Depends: ${shlibs:Depends}, ${misc:Depends}, dbus, lua5.1 | lua, lua-posix
-Description: Daemon to minimize latency on a linux system using cgroups
- Ulatency is a daemon that controls how the Linux kernel will spend it's
+Description: scriptable latency regulator using cgroups - server
+ The userspace latency daemon controls how the Linux kernel spends its
  resources on the running processes. It uses dynamic cgroups to give the
- kernel hints and limitations on processes.
+ kernel hints on how to optimize process scheduling.
  .
- It strongly supports the lua scripting language for writing rules and the
+ It is fully scriptable in Lua, to support writing custom rules and
  scheduler code.
  .
- The Linux scheduler does a pretty good job to give the available resources
- to all processes, but this may not be the best user experience in the
+ The Linux scheduler does a pretty good job of sharing available resources
+ out to all processes, but this may not be the best user experience in the
  desktop case. ulatencyd monitors the system and categorizes the running
- processes into cgroups. Processes that run wild to slow down the system
- by causing massive swaping will be isolated.
+ processes into cgroups. Processes that run wild and slow down the system
+ by causing massive swapping will be isolated.
 
 Package: ulatency
 Architecture: linux-any
 Depends: ${misc:Depends}, ulatencyd (= ${binary:Version}), python, python-dbus
 Suggests: python-qt4
-Description: Client for the ulatencyd daemon
- Ulatency is a daemon that controls how the Linux kernel will spend it's
+Description: scriptable latency regulator using cgroups - clients
+ The userspace latency daemon controls how the Linux kernel spends its
  resources on the running processes. It uses dynamic cgroups to give the
- kernel hints and limitations on processes.
+ kernel hints on how to optimize process scheduling.
  .
- This package provides a command-line/qt4 client for the ulatencyd daemon.
+ This package provides command-line and Qt4 clients which can be used to
+ tune and monitor ulatencyd.

Reply via email to