ubuntu-core-upgrader (0.7.12) wily; urgency=low

  * ubuntucoreupgrader/apply.py:
    - always send json progress on stdout to have progress for
      snapyp with s-i 3.0 that does not store the progress information
      in its global config

 -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 17 Jun 2015 15:44:49 +0200

ubuntu-core-upgrader (0.7.11) wily; urgency=medium

  * ubuntucoreupgrader/upgrader.py: Call os.sync() at end of sync_partitions()
    and after each unpack to minimise unflushed data and thus minimise the
    risk of corruption issues (such as LP: #1435774).

 -- James Hunt <james.hunt@ubuntu.com>  Wed, 22 Apr 2015 10:36:19 +0100

ubuntu-core-upgrader (0.7.10) vivid; urgency=medium

  * ubuntucoreupgrader/upgrader.py: _cmd_mount(): Don't sync partitions
    for a full (non-delta) update (LP: #1444500).
  * ubuntucoreupgrader/tests/test_upgrader.py:
    - touch_file(): Fix to make file of size 0, not 1.
    - test_marker_file(): Removed.
    - test_other_considered_empty(): New test.
  * ubuntucoreupgrader/tests/utils.py:
    - append_file(): Create zero-length file if contents are None.
  * ubuntucoreupgrader/upgrader.py:
    - Replaced marker file logic by tighter scoped strategy where the s-i
      config file is pre-created with zero size prior to performing an s-i
      update operation. This strategy allows a failed update to be identified
      from either a missing s-i config file, or a zero-length one.

 -- James Hunt <james.hunt@ubuntu.com>  Mon, 13 Apr 2015 20:28:33 +0100

ubuntu-core-upgrader (0.7.9) vivid; urgency=medium

  * mkfs(): Fixed mkfs command line (missing comma). 

 -- James Hunt <james.hunt@ubuntu.com>  Fri, 10 Apr 2015 15:04:33 +0100

ubuntu-core-upgrader (0.7.8) vivid; urgency=medium

  * Implement s-i format command to handle full-image (non-delta) updates
    correctly.
  * ubuntucoreupgrader/upgrader.py: Tolerate an invalid 'removed' file
    to avoid the upgrade failing attempting to remove '/writable/cache'
    (see LP: #1437225).
  * functional/test_upgrader.py: Add tests for an invalid removed file.

 -- James Hunt <james.hunt@ubuntu.com>  Tue, 07 Apr 2015 14:29:29 +0100

ubuntu-core-upgrader (0.7.7) vivid; urgency=low

  * fix entry point for s-i 3.0

 -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 13 Mar 2015 09:03:35 +0100

ubuntu-core-upgrader (0.7.6) vivid; urgency=low

  [ James Hunt] 
  * ubuntucoreupgrader/upgrader.py:
    - get_file_contents(): Fix to avoid leaking the fd.
  * functional/test_upgrader.py: Basic set of functional tests.

  [ Michael Vogt ]
  * cleanup and removal of unused code

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 10 Mar 2015 14:13:10 +0100

ubuntu-core-upgrader (0.7.5) vivid; urgency=low

  [ Michael Vogt ]
  * ubuntucoreupgrader/apply.py:
    - fix missing timeout in select() call
    - write spinner progress unbuffered
    - remove dbus progress

  [ James Hunt ]
  * ubuntucoreupgrader/tests/test_upgrader.py:
    - More tar_generator() tests.
    - Added first Upgrader() object test.
  * ubuntucoreupgrader/upgrader.py:
    - parse_args():
      - Moved from bin/ubuntu-core-upgrade to simplify testing.
      - Now takes an args parameter.
    - tar_generator():
       - Simplified logic to determine if an unpack should occur.
       - Fix to allow '--root-dir' to work again.
       - Fix bug where path not set (only affecting tests).
    - Upgrader:__init__():
      - Assert root_dir option set.
      - Moved some logic to prepare() and restart_associated_services() to
        simplify testing.

 -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 04 Mar 2015 12:33:49 +0100

ubuntu-core-upgrader (0.7.4) vivid; urgency=low

  * ubuntucoreupgrader/tests/test_upgrader.py:
    - add regression test for unpacking of assets/
  * ubuntucoreupgrader/upgrader.py:
    - unpack "assets/" and "hardware.yaml" to ensure that snappy
      can install new kernels/initrd/dtb files

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 03 Mar 2015 15:34:37 +0100

ubuntu-core-upgrader (0.7.3) vivid; urgency=low

  * fix config.machine_readable to be real json

 -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 25 Feb 2015 20:18:42 +0100

ubuntu-core-upgrader (0.7.2) vivid; urgency=low

  * pep8 fix

 -- Michael Vogt <michael.vogt@ubuntu.com>  Wed, 25 Feb 2015 13:53:30 +0100

ubuntu-core-upgrader (0.7.1) vivid; urgency=low

  * improve logging if ubuntu-core-upgrader fails and provide
    stdout/stderr in the exception

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 24 Feb 2015 08:58:52 +0100

ubuntu-core-upgrader (0.7) vivid; urgency=medium

  * Move this from the ppa to the main archive.
  * Add Vcs-Bzr.

  [ James Hunt ]
  * ubuntucoreupgrader/upgrader.py:
    - tar_generator(): Permit unpack of assets/ directory to allow snappy to
      install them (and clean up).

 -- Steve Langasek <steve.langasek@ubuntu.com>  Fri, 20 Feb 2015 17:00:34 -0800

ubuntu-core-upgrader (0.6~ppa24) vivid; urgency=low

  * support new "config.machine_readable" option

 -- Michael Vogt <michael.vogt@ubuntu.com>  Fri, 20 Feb 2015 10:00:25 +0100

ubuntu-core-upgrader (0.6~ppa23) vivid; urgency=low

  * fix ApplyUpgrades.UPGRADER type

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 17 Feb 2015 16:16:47 +0100

ubuntu-core-upgrader (0.6~ppa22) vivid; urgency=low

  * add missing ubuntucoreupgrader/__init__.py
  * add build-depends on system-image-dbus for the tests

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 17 Feb 2015 15:45:09 +0100

ubuntu-core-upgrader (0.6~ppa21) vivid; urgency=low

  * pep8

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 17 Feb 2015 14:49:54 +0100

ubuntu-core-upgrader (0.6~ppa20) vivid; urgency=low

  * ubuntucoreupgrader/apply.py, ubuntucoreupgrader/tests/test_apply.py:
    - raise ApplyUpgradeError exception if the upgrader fails to apply
      to apply the upgrade and add test

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 17 Feb 2015 14:42:21 +0100

ubuntu-core-upgrader (0.6~ppa19) vivid; urgency=medium

  * ubuntucoreupgrader/upgrader.py:
    - fsck(): exit on failure rather than relying on the caller to be
      consistent with other critical operations.
    - __init__(): Add mountpoint stat that used to be called by
      mount_rootfs().
    - prepare(): Do not make mount private for dual partition systems: it
      isn't necessary and results in EBUSY when trying to fsck "other".
    - _cmd_mount(), _cmd_unmount(): Toggle "other" mount options rather
      than mounting and unmounting since other is now permanantly mounted
      read-only by default.
    - show_other_partition(): Remove now-redundant mount calls.

 -- James Hunt <james.hunt@ubuntu.com>  Thu, 29 Jan 2015 17:49:21 +0000

ubuntu-core-upgrader (0.6~ppa18) vivid; urgency=medium

  [ James Hunt ]
  * Preliminary A/B partition support.
  * Use /writable rather than /userdata, and new FS labels.
  * fsck fixes.
  * Don't automatically reboot after an A/B update.
  * Update apply.py to use /writable.
  * Removed all in-place debug.
  * Sync current rootfs to other if the latter is empty.
  * Fix initialisation error.
  * Rename parser to upgrader.
  * Ignore broken sym-links when checking for required in-place upgrade
    reboot.

  [ Michael Vogt ]
  * send pulse progress over dbus while applying the update
  * remove target file before unpacking to workaround python tarfile
    bug #23228

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 13 Jan 2015 10:13:24 +0100

ubuntu-core-upgrader (0.5) vivid; urgency=low

  * do not fail hard on umount --lazy error
  * support output of systemctrl status for both systemd 209 and 215

 -- Michael Vogt <michael.vogt@ubuntu.com>  Tue, 18 Nov 2014 13:37:17 +0100

ubuntu-core-upgrader (0.4) vivid; urgency=medium

  * bin/ubuntu-core-upgrade:
    - Internal restructure to make testing easier.
    - Added '--root-dir' and '--clean-only' options.
  * man/ubuntu-core-upgrade.1: Added '--root-dir' and '--clean-only'.
  * ubuntucoreupgrader/parser.py:
    - get_userdata_mounts(): Reverse sort to handle child mounts first.
    - get_affected_pids(): Discard stderr to ignore harmless warnings
      which disrupt parsing.
    - Honour '--tmpdir' now.
    - Handle '--root-dir'.
    - Made output more consistent.

 -- James Hunt <james.hunt@ubuntu.com>  Mon, 17 Nov 2014 09:08:49 +0000

ubuntu-core-upgrader (0.3) vivid; urgency=medium

  * Added '--no-reboot' and '--reboot-delay' options.
  * ubuntucoreupgrader/parser.py:
    - tar_generator():
      - Reworked to make logic clearer.
      - Only ignore devices if they already exist.
    - _update():
      - Strip expected file prefix rather than just blindly removing first
        element.
      - Ignore relative paths.

 -- James Hunt <james.hunt@ubuntu.com>  Mon, 03 Nov 2014 14:03:29 +0000

ubuntu-core-upgrader (0.2) vivid; urgency=medium

  * Handle busy inodes by restarting services where possible and
    triggering a reboot as a last resort.
  * debian/control:
    - Added Depends: on lsof and e2fsprogs (for mklost+found).
  * README.rst: Outline of design and upgrade process.
  * Add --dry-run option.
  * Removed man pages for now non-existent commands.
  * man/ubuntu-core-upgrade.1: New man page.
  * bin/ubuntu-core-upgrade:
    - Added --check-reboot option.
    - Added uid check for privileged operations.
  * ubuntucoreupgrader/parser.py:
    - get_affected_pids():
      - Don't restrict the check to the rootfs only
        since the upgrader can apply files to writable areas in some
        circumstances.
      - Improve checks on open files for consideration.
    - Parser(): Added REBOOT_OPEN_FILE reason.
  * Use python logging module.
  * Log details to stderr and syslog for destructive upgrade.

 -- James Hunt <james.hunt@ubuntu.com>  Mon, 27 Oct 2014 16:03:42 +0000

ubuntu-core-upgrader (0.1) utopic; urgency=medium

  * Initial release (LP: #1380674).

 -- James Hunt <james.hunt@ubuntu.com>  Wed, 15 Oct 2014 09:05:18 +0100
