Wednesday 13 February 2013

Muddle v2.5 released


Upgrade to the latest version of muddle in the normal manner:

    $ cd
    $ git pull

I believe that it all works, but if you have problems with v2.5 (which has had some substantial code rewrites in various areas), consider reverting to Just-before-2.5, which was the last checkin on the old "master" branch::

    $ cd
    $ git checkout Just-before-2.5

Changes in v2.5 since v2.4.4 are listed after the break:


First, changes you'll already have if you've been keeping up-to-date with the current version of muddle:

  • New squashfs and romfs deployments. Also, the underlying code for the "muddled.deployments" modules has been rewritten, and CPIO deployments can now be made to a package (specifically, to a package install directory), removing one of the causes of packages depending on deployments.
  • Minor tweaks in the release mechanism, based on experience of using it. These include adding a "-test" switch to "muddle release", and allowing "muddle stamp release" to "guess" the next version number to use for a release stamp.
    See "muddle help release" and "muddle help stamp release".
  • A new "quickstart" section at the beginning of the documentation, for those who've just been given a build using muddle for the first time.
    See http://muddle.readthedocs.org/en/latest/quickstart.html ("Quick start: so you’ve been asked to work on a project using muddle")
  • The Invocation class is no more, it has been folded into Builder. Thus builder.invocation.XXX is now identical to builder.XXX in all cases. This basically makes build descriptions a bit simpler, and removes the problem of how to remember whether a particular method had .invocation in front of its name or not.
  • There has been an internal rewrite of the version control handler support and much of the "memory" of how checkouts work has been moved from there to the Database class and db.py. This was a prerequisite of the lifecycle work, below.
  • There have been various minor fixes in license support, including not propagating GPL licenses to/through GPL licenses.

Secondly, changes that have just been introduced by merging a long development
branch back into "master":

  • Lifecycle support. I've been working on this for a while. Basically, it allows branching a whole build tree for maintenance support.

    New commands are:
        muddle init -branch
        muddle branch-tree
        muddle query checkout-branches
        muddle query checkout-id
        muddle sync

    and muddle stamp version behaves slightly differently with a branched build tree.

    Stamping and unstamping of checkouts on other branches or revisions is now more robust and consistent as well.

    See the new lifecycle documentation (a new chapter in the normal muddle documentation, http://muddle.readthedocs.org/en/latest/lifecycle.html), and also "muddle help" for each of the new commands above.
  • Repository specifications no longer treat a revision argument of the form "a:b" as meaning :. This was a legacy from early repository support. and clashes with such things as specifying Bazaar revision ids of the form "branch:" or "revno:".
  • The "no_follow" VCS option has been added for Subversion and Bazaar, and
        builder.db.set_checkout_vcs_option(co_label, name, value)may now be used as another way to set options.
  • A rewritten and more powerful muddle doc command. See muddle help doc, and try:
        muddle doc Label
        muddle doc Label -pydoc
        muddle doc -contains Directory
  • A variety of other tidyings and bugfixes.

No comments:

Post a Comment