Return-Path: X-Original-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4211EDEA6 for ; Thu, 10 Jan 2013 20:26:33 +0000 (UTC) Received: (qmail 12275 invoked by uid 500); 10 Jan 2013 20:26:32 -0000 Delivered-To: apmail-incubator-cloudstack-dev-archive@incubator.apache.org Received: (qmail 12224 invoked by uid 500); 10 Jan 2013 20:26:32 -0000 Mailing-List: contact cloudstack-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-dev@incubator.apache.org Received: (qmail 12216 invoked by uid 99); 10 Jan 2013 20:26:32 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Jan 2013 20:26:32 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of noa@spotify.com designates 209.85.217.176 as permitted sender) Received: from [209.85.217.176] (HELO mail-lb0-f176.google.com) (209.85.217.176) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Jan 2013 20:26:26 +0000 Received: by mail-lb0-f176.google.com with SMTP id k6so801345lbo.35 for ; Thu, 10 Jan 2013 12:26:04 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :x-gm-message-state; bh=h6xo8jwTRxEg4/6KoLdvkw7mSn8klbryTQj/eA/ahGc=; b=oOPPpM7CmkX+iaFDSnor8eL98phs99T5wjI/+jGzMiG7rbDWl2OUe11G6iMY/jH8kB dgTpjz04cqvp5UVQNz7E8M56UmtQLJbCTBOxo+hub6zjqW6x3Ai6zvPyYzaZEmt92HfZ rXqaTftEBzHtroyjxuatJXRuXSuHGdKZ4eofkuyIvONkMwZu7YTAYuecL5HSzg0Y3XJe 99QlGv1gboN+bqnRyFjlfR73wH/GsBPXzF+AxFmvXHiZw2MAOdnvHyPAAYhbeJ1Mx5x7 wztE15rNGsf1G3twud+oPyCR8BPLJGxXqBiBdvECoKRtGH5tkvc67ha7o4do/mARg9fJ Rhjg== MIME-Version: 1.0 Received: by 10.112.36.161 with SMTP id r1mr11980356lbj.39.1357849564620; Thu, 10 Jan 2013 12:26:04 -0800 (PST) Received: by 10.114.78.42 with HTTP; Thu, 10 Jan 2013 12:26:04 -0800 (PST) Date: Thu, 10 Jan 2013 21:26:04 +0100 Message-ID: Subject: [DISCUSS] adopt semantic versioning for cloudstack? From: Noa Resare To: cloudstack-dev@incubator.apache.org Content-Type: multipart/alternative; boundary=e0cb4efe3178f5267e04d2f4fc63 X-Gm-Message-State: ALoCoQn0ddzBHChVDJ44sg+FFWvLTkPDqJZTpPJ3kDzXvG0o3x+PcjLmnr7E9rnT3nkcZCspQpyx X-Virus-Checked: Checked by ClamAV on apache.org --e0cb4efe3178f5267e04d2f4fc63 Content-Type: text/plain; charset=ISO-8859-1 I think it is very useful to be able to have some expectations on the semantics of the releases that software projects releases. I like the Semantic Versioning Specification(1), and I think it would be useful for us to adopt it to the extent possible. I don't know if you are familiar with that specification, but basically it asserts that conforming software gets released with versions of format MAJOR.MINOR.PATCHLEVEL and one can have certain expectations from those releases based on which value has been incremented. In short, no additional functionality or API changes in PATCHLEVEL increment releases, only backwards compatible changes in MINOR releases and MAJOR releases for backwards incompatible changes. So, my proposal would be to adopt the standard. The only thing I have noticed so far that we would need to change it the system where there is voting several different software versions with the same (final name). I think it would be much more convenient (and also semver compliant) to release those as x.y.z-rcN and once the voting is concluded create an x.y.z version that is identical to the last x.y.z-rcN release. Having the same release with multiple version designators is much better than having mulitple releases with the same version. While we're at it I would like to propose another constraint on prerelease naming that is not part of semver, and that is that pre-releases have names that sort in lexical order. That way it gets much simpler to work with packaging. Example: 5.4.3 to 5.5.0-alpha1 (first WIP release of the 5.5.0 release cycle) 5.5.0-alpha1 to 5.5.0-alpha2 5.5.0-alpha2 to 5.5.0-beta1 (okay, because b is sorted after a) 5.5.0-beta1 to 5.5.0-rc1 (first release candiate, also okay) 5.5.0-rc1 to 5.5.0-rc2 5.5.0-rc2 to 5.5.0 (this is the actual release) These versions can be transposed into a package version in both rpm and deb universe using the pattern x.y.z-aN -> x.y.x-0.aN. This strategy will break if someone decides that 'almost_there' comes after 'rc', so please let's not do that. /n 1) http://semver.org -- Engineering Experience, Infrastructure tribe, Spotify --e0cb4efe3178f5267e04d2f4fc63--