[publican-list] RFC: Revision History & package versioning changes

Jeffrey Fearn jfearn at redhat.com
Wed Dec 8 03:07:07 UTC 2010


Hi, due to translation packaging issues [1] and DocBook 5 removing 
pubsnumber [2] I am looking in to these two areas.

I have come up with an approach that couples the two changes together, 
to create a standard approach to revision histories and package versions 
across all languages and DocBook versions.

Please feel free to comment on this proposal.

1: Package versions.

Instead of using a combination of edition and pubsnumber for the package 
version and revision, we will use the first revnumber in the Revision 
History. Edition and pubsnumber would then be free to be used in the 
normal publishing way.

revnumber would be assumed to be two strings separated by a hyphen, with 
the left string being the version and the right string, including any 
other hyphens, being the revision.

e.g. <revnumber>1.0-14</revnumber> would be version 1.0, revision 14.

The current behavior of using cfg file parameters before using XML 
sources would continue. i.e. setting version in publican.cfg would 
supersede any settings in Revision_History.xml.


2: Translation Revision Histories

Currently there is no way for translation histories to be documented. 
This prevents tying translation packages to bugzilla or tracking when or 
by whom translations were supplied.

To allow translation histories to be maintained we will add an XML file 
in to the translated language directories. This file will be named 
Revision_History.xml and will be of the same structure as the source 
language file, however it will only contain revisions of that language.

It is suggested that translations revnumbers will be the same as the 
source it was based off, with the addition of a decimal place and an 
incrementing digit.

e.g. if the source revnumber was <revnumber>1.0-14</revnumber> then the 
translation revnumbers would start at <revnumber>1.0-14.1</revnumber> 
and increment from there.

We use a decimal point to ensure fedora packaging rules for change log 
entries are met.

It is proposed that when update_po is run each language affected would 
have a new revision added detailing this fact and setting the new 
revnumber as suggested above, current source language revnumber + '.1'.

When building translated documentation the source and translation 
revision histories will be merged and sorted to present a unified 
history for the translated document.

This change would remove the current requirement of using the 
<lang-loc>/Book_Info.po file to contain the translation revision number.


3: Tooling

To aid automation and general use we will add extra functionality to 
publican.

A: Add create_rev action to publican CLI

A new action, create_rev, will be added to publican to allow authors, 
and translators, to add a full revision from the command line.

Proposed parameters:
   --date        set a specific date, default to today if not set
   --revnumber   set a specific revnumber, will use latest + 1 in not set
		for translations it would be latest + .1
   --lang        the language to update
   --change      the change made (multiples of these may be specified)

The author details required for each revision will be fetched from a 
user configuration file. [see B]

B: Add create_user option to publican CLI

Entering author details on the command line will become laborious and 
error prone, it should be possible to enter these details once and then 
used when required.

A new new action, create_user, will be added to publican to allow author 
details to be entered and saved in to a configuration file for later use.

Proposed parameters:
   --firstname   users first name
   --surname     users surname
   --email       users email address


[1] https://bugzilla.redhat.com/show_bug.cgi?id=642127
[2] http://www.docbook.org/specs/docbook-5.0-spec-cs-01.html#s.remvlegacy


Cheers, Jeff.

-- 
Jeff Fearn <jfearn at redhat.com>
Software Engineer
Engineering Operations
Red Hat, Inc
Freedom ... courage ... Commitment ... ACCOUNTABILITY




More information about the publican-list mailing list