Tailor 1.0

What will be tagged as Tailor version 1.0 is shaping up at http://darcs.arstecnica.it/tailor. There is also a Trac instance dedicated to tailor issues.

What happened since...

... version 0.8

Version 0.9.1, under development, witnessed the following changes:

... version 0.9.1

Version 0.9.2, tagged on Aug 5, early in the morning, was tormented with the following changes:

... version 0.9.2

Version 0.9.3, tagged on Aug 9, early in the morning, was tattooed with the following changes:

... version 0.9.3

Version 0.9.4, tagged on Aug 13, was heaved by the following changes:

... version 0.9.4

Version 0.9.5, tagged on Aug 16, was cured by the following changes:

... version 0.9.5

Version 0.9.6, tagged on Aug 17, learned these new concepts and gained a promotion to beta:

... version 0.9.6

Version 0.9.7, tagged on Aug 19, gained some other knowledge:

... version 0.9.7

Version 0.9.8, tagged on Aug 20, discovered new things:

... version 0.9.8

Version 0.9.9, tagged on Aug 25, explored new countries:

... version 0.9.9

Version 0.9.10, tagged on Aug 29, acquired new capabilities:

... version 0.9.10

Version 0.9.11, tagged on Aug 31, expanded its knowledge:

... version 0.9.11

Version 0.9.12, tagged on Sep 2, learnt from his own errors:

... version 0.9.12

Version 0.9.13, tagged on Sep 5, went backward to improve:

... version 0.9.13

Version 0.9.14, tagged on Sep 12, exposed some new features:

... version 0.9.14

Version 0.9.15, tagged on Sep 13, fixed some serious bugs:

... version 0.9.15

Version 0.9.16, tagged on Sep 21, fixed some minor bugs:

... version 0.9.16

Version 0.9.17, tagged on Oct 3 by a sad lelit:

... version 0.9.17

Version 0.9.18, tagged on Oct 17 by a lone lelit:

... version 0.9.18

Version 0.9.19, tagged on Nov 10 by a crashed lelit:

Recent news

Latest news are available on the trac site.

What else?

Tailor may be a nice tool, but it's user interface is somewhat cryptic. Version 0.8 has three different ways of storing the state information, and tried to be flexible introducing several command line options as well as an interactive session. This is crazy.

So, I'll spend some time to get rid of two or three of them, introducing yet another scheme, probably using a common .ini file mixed with plain Python code.

This is what I wanna achieve:

New configuration proposals

Please, do not hesitate to comment and extend this section!

ConfigParser based configuration

The idea is to use a standard Python script, writing the configuration in its documentation string, eventually followed by functions used to massage in some way the changesets.

   1 #!/usr/bin/env tailor
   2 
   3 """
   4 [DEFAULT]
   5 verbose = Yes
   6 
   7 [project1]
   8 source = svn:projec1repo
   9 target = darcs:project1repo
  10 refill-changelogs = Yes
  11 state-file = project1.state
  12 before-commit = (maybe_skip, refill, p1_remap_authors)
  13 after-commit = checkpoint
  14 
  15 [svn:project1repo]
  16 repository = svn://some.server/svn
  17 module = project1
  18 use-propset = Yes
  19 
  20 [darcs:project1repo]
  21 repository = ~/darcs/project1
  22 """
  23 
  24 def maybe_skip(context, changeset):
  25     for e in changeset.entries:
  26         if not context.darcs.isBoringFile(e):
  27             return True
  28     # What a bunch of boring entries! Skip the patch
  29     return False
  30 
  31 def refill(context, changeset):
  32     changeset.refillChangelog()
  33     return True
  34 
  35 p1_authors_map = {
  36     'lele': 'Lele Gaifax <lele@example.com>',
  37     'x123': 'A man ... with a name to come',
  38 }
  39 
  40 def p1_remap_authors(context, changeset):
  41     if p1_authors_map.has_key(changeset.author):
  42         changeset.author = p1_authors_map[changeset.author]
  43     return True
  44 
  45 def checkpoint(context, changeset):
  46     if changeset.log.startswith('Release '):
  47         context.target.tagWithCheckpoint(changeset.log)
  48     return True
  • 1 Only for SVN, Monotone deserves the same treatment...

DarcsWiki: Tailor/VersionOne (last edited 2008-06-02 12:10:56 by LeleGaifax)