23

I'm working fast and furiously on a new Haskell package for compiler writers. I'm going through many minor version numbers daily, and the Haskell packaging system, Cabal, doesn't seem to offer any tools for updating version numbers or for maintaining a change log. (Logs are going into git but that's not visible to anyone using the package.) I would kill for something equivalent to Debian's uupdate or dch/debchange tools.

Does anyone know of general-purpose tools that could be used to increment version numbers automatically and add an entry to a change log?

Norman Ramsey
  • 198,648
  • 61
  • 360
  • 533
  • This now has 14 votes and zero answers. I'm not sure exactly what you want. Extracting the change log into a file to include with the distribution sounds like a 1-line script. A few more lines of script should be able to get the file versions from a nominated tag and build a package with a version number based on the tag. So if its not that, what exactly do you need? – Paul Johnson Apr 11 '10 at 09:19
  • @Paul: There is no change log to extract. The git log is certainly not appropriate for distribution, although it would be useful information for a developer creating a change log. As for what I am looking for, I want a tool like `uupdate` that will manage things like version numbers and changelog edits. I agree it's probably a script but probably 100 lines not 10 lines. I'll probably tackle one this summer. – Norman Ramsey Apr 11 '10 at 18:29

2 Answers2

2

I use a very simple scheme to generate my CHANGELOG. I just ask darcs for it and include it in the extra-files section of my package's .cabal file. Though, this seems too simplistic for what you are asking. =)

That said, you can go quite a bit farther and use a custom cabal Setup.(hs|lhs) that builds the CHANGELOG during cabal sdist out of your darcs or git repository's commit info (or out of whatever system you decide to use to track it)

The Setup.lhs used by darcs does something very similar to include information on version numbers and number of applied patches since the last version. Look at the sdistHook and generateVersionModule machinery in Setup.lhs to get an idea of how this can be done.

Edward Kmett
  • 29,632
  • 7
  • 85
  • 107
0

To non-answer your question, I'm not aware of anything. This sounds like a good match for posting in the Haskell Proposals subreddit, since it seems like a pretty useful idea.

dwc
  • 24,196
  • 7
  • 44
  • 55