Thursday 26 July 2012

Muddle v2.4.4

I've just pushed muddle v2.4.4. Changes below the cut.

This could, arguably, have been considered a big enough change to merit 2.5, but I'm saving that for the next big release, which has more internal code changes.


The main changes are:


Support for making releases. This is a new mechanism for handling customer releases, using a variant stamp file to document exactly what is being released, a new mechanism to specify what should be built for the release, and a method for generating the final release tarball.


The support includes:
  • new command "muddle stamp release " to produce a release spec.
  • new "special" build argument, "_release", which is defined in the build description as "the labels to build for a release"
  • new command "muddle release" to unstamp and build the release, and tar it up.
  • new function "release_from(builder, release_dir)" in the build description, which copies files into the release directory
See documentation at http://muddle.readthedocs.org/en/latest/release.html (and let me say again how wonderful the ReadTheDocs people are, for providing that service), and also:
  • muddle help stamp release
  • muddle help query release
  • muddle help release
New unstamp variant "muddle unstamp -update", can be used to update the current build tree to match the stamp file. See "muddle help unstamp".

New switch "muddle stamp save -before", can be used to select a date/time for the stamp. See "muddle help stamp save".

"muddle stamp diff" now allows stamp files or build tree as arguments, and changes its default comparison method. Also, output can always be directed to a file. See "muddle help stamp diff".

Rewritten help text for "muddle subst", and new test code for the same. Also better error reporting and a bug fix. See "muddle help subst"

New help "muddle help environment", which explains the environment variables muddle sets for muddle Makefiles (and elsewhere)

New "muddle query checkout-id", for finding the revision (as would go in a stamp file) for a checkout. See "muddle help query checkout-id"

New environment variable "MUDDLE_OBJ_BIN" (finally).

And a variety of technical changes, including:
  •  Stamp files are now documented, in the header comment for version_stamp.py. See "muddle doc version_stamp".
  • Stamp files can contain comment lines, which do not contribute to the hash for the file. The time stamps (for when the file was created) are now comments, so two identical stamp files created at different times will now have the same hash value.
  • The premature binding of the current "builder" into VersionControlHandler instances has finally been fixed, leading to saner code in various places.
  • Some improvements to the code for bazaar. In particular, choosing a particular revision now works.
  • Some minor git fixes, including fixing stamping of detached HEAD revisions.
  • The Builder method "checkout_path" no longer accepts None as an arguement (this was deprecated ages back).
  • The Builder method "deploy_path" now takes a label as its argument.
  • The muddle exceptions, GiveUp and friends, now contain a return code, which is used at the top level to set muddle's exit code.
  • New test script, tests/all_tests.py, automates running the available test scripts.
and various other bugfixes.

Also, muddle is now mirrored on github (https://github.com/tibs/muddle.mirror), although it will not necessarily always be up-to-date.

This release fixes the following issues:
  • Issue 94 - muddle stamp diff should be able to compare with current  repository, and with remote stamp file
  • Issue 164 - Add MUDDLE_OBJ_BIN
  • Issue 212 - Implement version 2 stamp files - document the format
  • Issue 221 - Provide a way to generate a version number for a build tree
  • Issue 226 - muddle stamp update
  • Issue 230 - Stamp files record bzr revno, but should record revision-id

No comments:

Post a Comment