[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RFR] templates://graphite-carbon/{graphite-carbon.templates}



Christian PERRIER wrote:
> (I had hard times understading what the package is exactly about as I
> was working offline. It often is a proof that more information is
> needed....What is "Graphite"? What is a "Twisted daemon"? etc.

There are several layers of baffling names here.  AIUI:
 * "Twisted" is a set of network server modules in Python that happen
	to have originated as part of the "Twisted Reality" MUD.
 * "Graphite" has nothing to do with libgraphite3; it is a Twisted web
	application providing real-time visualisation and storage of
	numeric time-series data.  I assume the name is some sort of
	reference to graphite being useful for writing.
 * "Carbon" is a Twisted daemon that takes data from Graphite and
	saves it as database files (presumably a reference to "carbon
	copies").
I could also mention that the database system used is called "Whisper"
and the graphics library is "Cairo" (two more meaningless names!), but
do end-users of Carbon need to know about those?  Why, come to that,
do they even need to know that the Python modules come from Twisted?

Why *is* the package called graphite-carbon?  It's a set of Python
modules called carbon, so doesn't Debian's Python Policy require it to
be named "python-carbon"?  Compare python-twisted, python-graphite,
and python-whisper...

The part that really mystifies me is this: does graphite-carbon
*require* python-graphite?  If so, shouldn't it express some sort of
dependency (if only a "Suggests:")?  If not, shouldn't the package
description explain the graphiteless use case?

Oh, and is there some connection to uwsgi-plugin-carbon?

> Still, several of my proposal do not depend on such information.  I
> still feel that the package description needs to be completed, though.

Apart from anything else the package description needs to be converted
into grammatical English. 

>  Template: graphite-carbon/postrm_remove_databases
>  Type: boolean
>  Default: false
> +_Description: Remove whisper database files when purging the package?

Perhaps name the package so people don't think we're talking about
purging python-whisper.  In fact, why mention whisper?  Does carbon
store any other sort of database?

   _Description: Remove database files when purging graphite-carbon?

> + The /var/lib/graphite/whisper directory contains the whisper database
>   files.
>   .
> + You may want to keep these database files even if you completely
> + remove the Carbon package, in case you plan to install another version
> + later on.

Calling it "Carbon" is a confusion of Python-package and
Debian-package names.  And when you say "another version later on",
that has to be "a later version", doesn't it?  Installing an *older*
version is liable to cause breakage.  Probably I should just avoid the
issue: 

    You may want to keep these database files even if you completely
    remove graphite-carbon, in case you plan to reinstall it later.

(I don't really understand why templates like this are required,
though.  Why not just have databases kept on "remove" and deleted on
"purge"?  Come to that, if users care so much about these databases,
shouldn't they be encouraged to keep backups?)

[...]
>  Description: backend data caching and persistence daemon for Graphite
> - Carbon is an Twisted daemon that process incoming time-series
> + Carbon is an daemon that processes incoming time-series
>   data and saves that data as Whisper database files on disc.

You caught the big grammar error, but there are also a couple of
smaller problems; for instance it's "on disk", but there's no point
mentioning that anyway (if it's being saved into database files, I
don't think the default place to put them is a ramfs).

    Carbon is a daemon that processes incoming time-series data and saves
    it as Whisper database files.

>   .
> - Carbon daemon is needed for an fully functional graphite-web app.
> + The Carbon daemon is mandatory for an fully functional Graphite
> + web application.

Another "s/an/a/".  But much more importantly: if the relationship
between graphite and carbon is so strong, why is this control file
only mentioning it here in the Description and not the Recommends or
Depends fields for both packages?

Maybe (just maybe - we badly need developer feedback!) it should be:

  Description: backend data caching and persistence daemon for Graphite
   Graphite is a web application using the Twisted framework to provide
   real-time visualization and storage of numeric time-series data.
   .
   The Carbon daemon processes the incoming time-series data and saves it
   as Whisper database files.

-- 
JBR	with qualifications in linguistics, experience as a Debian
	sysadmin, and probably no clue about this particular package
diff -ru graphite-carbon-0.9.9+debian.pristine/debian/control graphite-carbon-0.9.9+debian/debian/control
--- graphite-carbon-0.9.9+debian.pristine/debian/control	2012-04-07 21:25:05.000000000 +0100
+++ graphite-carbon-0.9.9+debian/debian/control	2012-04-18 10:07:26.547392684 +0100
@@ -15,7 +15,8 @@
          ${misc:Depends},
          ${python:Depends}
 Description: backend data caching and persistence daemon for Graphite
- Carbon is an Twisted daemon that process incoming time-series
- data and saves that data as Whisper database files on disc.
+ Graphite is a web application using the Twisted framework to provide
+ real-time visualization and storage of numeric time-series data.
  .
- Carbon daemon is needed for an fully functional graphite-web app.
+ The Carbon daemon processes the incoming time-series data and saves it
+ as Whisper database files.
diff -ru graphite-carbon-0.9.9+debian.pristine/debian/graphite-carbon.templates graphite-carbon-0.9.9+debian/debian/graphite-carbon.templates
--- graphite-carbon-0.9.9+debian.pristine/debian/graphite-carbon.templates	2012-04-07 21:25:05.000000000 +0100
+++ graphite-carbon-0.9.9+debian/debian/graphite-carbon.templates	2012-04-18 10:08:27.107392295 +0100
@@ -1,9 +1,9 @@
 Template: graphite-carbon/postrm_remove_databases
 Type: boolean
 Default: false
-_Description: Should whisper database files removed then package is purged?
- The directory /var/lib/graphite/whisper contains the whisper database
+_Description: Remove database files when purging graphite-carbon?
+ The /var/lib/graphite/whisper directory contains the whisper database
  files.
  .
- If you are removing Carbon package in order to later install a more
- recent version the data should be kept.
+ You may want to keep these database files even if you completely
+ remove graphite-carbon, in case you plan to reinstall it later.
Template: graphite-carbon/postrm_remove_databases
Type: boolean
Default: false
_Description: Remove database files when purging graphite-carbon?
 The /var/lib/graphite/whisper directory contains the whisper database
 files.
 .
 You may want to keep these database files even if you completely
 remove graphite-carbon, in case you plan to reinstall it later.
Source: graphite-carbon
Section: utils
Priority: optional
Maintainer: Jonas Genannt <jonas.genannt@capi2name.de>
Build-Depends: debhelper (>= 8), python-all (>= 2.6.6-3~)
Standards-Version: 3.9.3
DM-Upload-Allowed: yes
Homepage: https://launchpad.net/graphite

Package: graphite-carbon
Architecture: all
Depends: adduser,
         python-twisted-core,
         python-whisper,
         ${misc:Depends},
         ${python:Depends}
Description: backend data caching and persistence daemon for Graphite
 Graphite is a web application using the Twisted framework to provide
 real-time visualization and storage of numeric time-series data.
 .
 The Carbon daemon processes the incoming time-series data and saves it
 as Whisper database files.

Reply to: