[darcs-devel] darcs patch: add make_changelog, a tool to auto-gener... (and 2 more)

Tomasz Zielonka tomasz.zielonka at gmail.com
Wed May 11 04:42:19 PDT 2005


Hello!

These patches aim to improve the situation with the ChangeLog.
Maintaining ChangeLog by hand was causing problems to me, Ian and David.
Reordering the ChangeLog entries to match the release history led to
many conflicts. It was difficult to resolve those conflicts in a way
that would not result in either introducing new conflicts or making the
ChangeLog inaccurate.

I think one of the best solutions for this problem is to generate the
ChangeLog from a database of ChangeLog entries. For each entry we can
specify which patches are needed for the feature/bugfix to be considered
included.

The steps I've made:
- Created changelog.in directory
- Moved old ChangeLog to changelog.in/ChangeLog.old, the part from
  the bottom up to tag 1.0.2 will be used verbatim as a base for
  the generated ChangeLog
- Created changelog.in/entries directory - here we put files with
  ChangeLog entries in a special format. Those who contribute ChangeLog
  entries can create their own files to decrease the likelihood of
  conflicts. But be prepared that someone else can edit your entries.
- Wrote make_changelog script (a Haskell program actually) which reads
  ChangeLog entries, then traverses repo history, emits entries as soon
  as all their associated matchers are satisfied and also emits darcs
  stable tags.
- Converted ChangeLog entries since 1.0.2 (changelog.in/entries/converted,
  there two unidentified, commented-out entries at the top)
- Modified GNUmakefile accordingly

IMPORTANT: Patches adding new ChangeLog entries should not depend on anything
outside changelog.in - this way we can pull all changelog entries to stable.
I propose to place the word "ChangeLog" in names of such patches so they
can be pulled easily by 'darcs pull --patches ChangeLog'.

Random thoughts:
- make_changelog is not complete, for example:
    - it doesn't print tag dates in rfc-2822, and uses ugly (Show Clocktime)
    - it could contain more features for debugging ChangeLog entries.
    - it could be less hard-coded
    - it uses Text.PrettyPrint instead of our own Printer
    - it's not pretty
- The current ChangeLog entry format is only a proposition. I am waiting
  for comments and suggestions
- There is an idea to add simple paragraph formatting to "make_changelog"
  (BTW, we can probably use Text.PrettyPrint.fsep for this)

So what do you think?

If anything is unclear I will happily answer your questions. 

Patches:

Wed May 11 12:05:12 CEST 2005  Tomasz Zielonka <tomasz.zielonka at gmail.com>
  * add make_changelog, a tool to auto-generate ChangeLog

Wed May 11 12:40:06 CEST 2005  Tomasz Zielonka <tomasz.zielonka at gmail.com>
  * auto-generate ChangeLog
  ChangeLog is generated from a database of ChangeLog entries and current
  repo history. Each ChangeLog entry consists of a description and a set
  of PatchMatch matchers. The entry goes into the ChangeLog as soon as all
  the matchers are satisfied.

Wed May 11 12:40:44 CEST 2005  Tomasz Zielonka <tomasz.zielonka at gmail.com>
  * convert ChangeLog entries since 1.0.2 to a ChangeLog entry database format

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/x-darcs-patch
Size: 17567 bytes
Desc: A darcs patch for your repository!
Url : http://lists.osuosl.org/pipermail/darcs-devel/attachments/20050511/528424d5/attachment.bin


More information about the darcs-devel mailing list