cloud (1:4.0.0-1) unstable; urgency=low

  * Bumping the version to 4.0.0

 -- Chip Childers <chipchilders@apache.org>  Fri, 5 Oct 2012 16:00:00 -0500

cloud (1:4.0.0-beta6) unstable; urgency=low

  * Bumping the version to 4.0 Beta 6

 -- Wido den Hollander <wido@widodh.nl>  Fri, 5 Oct 2012 11:41:17 +0200

cloud (1:4.0.0-beta1) unstable; urgency=low

  * Bumping the version to 4.0 Beta 1

 -- Wido den Hollander <wido@widodh.nl>  Wed, 26 Sep 2012 21:14:48 +0200

cloud (4.0.0-rc2) unstable; urgency=low

  * Bumping the version to 4.0 RC2

 -- Wido den Hollander <wido@widodh.nl>  Mon, 24 Sep 2012 11:30:29 +0200
 
cloud (4.0.0-rc1) unstable; urgency=low

  * Bumping the version to 4.0 RC1

 -- Wido den Hollander <wido@widodh.nl>  Fri, 17 Aug 2012 11:10:41 +0200

cloud (3.0.2) unstable; urgency=low

  * Bumping the package version to the latest release.

 -- Wido den Hollander <wido@widodh.nl>  Wed, 25 Jul 2012 14:53:31 +0200

cloud (2.2.2) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Engineering <info@cloud.com>  Mon, 7 Mar 2011 11:19:34 -0700

cloud (2.1.97) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Rudd-O <manuel@cloud.com>  Sat, 31 Jul 2010 19:09:54 -0700

cloud (2.0.97) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Rudd-O <manuel@cloud.com>  Mon, 12 Jul 2010 14:01:41 -0700

cloud (2.0.2) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Rudd-O <manuel@cloud.com>  Fri, 2 Jul 2010 19:55:41 -0700

cloud (2.0.0) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Rudd-O <manuel@cloud.com>  Tue, 15 Jun 2010 12:10:05 -0700

cloud (1.9.14) unstable; urgency=low

  * Bumping version number for next CloudStack release

 -- Rudd-O <manuel@cloud.com>  Tue, 11 May 2010 14:46:14 -0700

cloud (1.9.12) unstable; urgency=low

  * Bumping version number for CloudStack RC4 release

 -- Rudd-O <manuel@cloud.com>  Mon, 3 May 2010 14:46:14 -0700

cloud (1.9.11) unstable; urgency=low

  * Bumping version number for CloudStack release

 -- Rudd-O <manuel@cloud.com>  Fri, 30 Apr 2010 15:08:38 -0700

cloud (1.9.10) unstable; urgency=low

  * Bumping version number for FOSS release

 -- Rudd-O <manuel@vmops.com>  Wed, 28 Apr 2010 22:09:48 -0700

cloud (1.9.9) unstable; urgency=low

  * Bumping version number for new build prereleases

 -- Rudd-O <manuel@vmops.com>  Mon, 12 Apr 2010 17:39:44 -0700

cloud (1.9.8) unstable; urgency=low

  * Branching RC3

 -- Rudd-O <manuel@vmops.com>  Mon, 05 Apr 2010 12:46:06 -0700

cloud (1.9.7) unstable; urgency=low

  * Initial Release.

 -- Rudd-O <manuel@vmops.com>  Thu, 25 Mar 2010 15:12:06 -0700
