From patchwork Tue Aug 6 20:44:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Michelson X-Patchwork-Id: 1143052 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 46367r08brz9sBF for ; Wed, 7 Aug 2019 06:44:38 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id C5290DA7; Tue, 6 Aug 2019 20:44:34 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id A0A48D7F for ; Tue, 6 Aug 2019 20:44:33 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id CA87A4C3 for ; Tue, 6 Aug 2019 20:44:32 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3F92730C0613 for ; Tue, 6 Aug 2019 20:44:32 +0000 (UTC) Received: from monae.redhat.com (ovpn-122-92.rdu2.redhat.com [10.10.122.92]) by smtp.corp.redhat.com (Postfix) with ESMTP id C24D35D9E1 for ; Tue, 6 Aug 2019 20:44:31 +0000 (UTC) From: Mark Michelson To: dev@openvswitch.org Date: Tue, 6 Aug 2019 16:44:27 -0400 Message-Id: <20190806204427.19075-1-mmichels@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Tue, 06 Aug 2019 20:44:32 +0000 (UTC) X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: [ovs-dev] [RFC ovn] Modify release document for OVN. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org This is an RFC to discuss the modified release cycle of OVN compared to OVS. The document is mostly unchanged, with two exceptions: * The release cycle for OVN is modified to be 3 months instead of 6. * The version numbering for OVN is modified to use the year and month of the release instead of other numbers. Signed-off-by: Mark Michelson --- All changes in this document are negotiable :) OVN features are consumed more directly by CMSes than OVS changes, so OVN has a case for releasing more frequently than OVS. I came up with a three month cycle, but we could alter this if desired. The version numbering change is based on trying not to cause confusion about compatibility between OVS and OVN versions. If we continue with the 2.X scheme, then users may assume that matching version numbers of OVS and OVN are required when they aren't. They may also assume compatibility between like version numbers when that may not be true. Using the . version scheme makes it clear that the version numbers are completely separate from OVS's versioning. It encourages users to look up version compatibility instead of assuming something. It also makes it clear when a painfully out of date version is being used. One thing I did not touch in this document was the LTS section. I'll be honest, I had no idea that OVS even had LTSes until I modified the document just now. If we want to shorten the time period between LTSes (or not have LTSes at all), then we can discuss that. --- Documentation/internals/release-process.rst | 70 ++++++++++++++--------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/Documentation/internals/release-process.rst b/Documentation/internals/release-process.rst index 89c117724..4009da555 100644 --- a/Documentation/internals/release-process.rst +++ b/Documentation/internals/release-process.rst @@ -21,23 +21,23 @@ Avoid deeper levels because they do not render well. -============================ -Open vSwitch Release Process -============================ +=================== +OVN Release Process +=================== -This document describes the process ordinarily used for Open vSwitch -development and release. Exceptions are sometimes necessary, so all of the -statements here should be taken as subject to change through rough consensus of -Open vSwitch contributors, obtained through public discussion on, e.g., ovs-dev -or the #openvswitch IRC channel. +This document describes the process ordinarily used for OVN development and +release. Exceptions are sometimes necessary, so all of the statements here +should be taken as subject to change through rough consensus of OVN +contributors, obtained through public discussion on, e.g., ovs-dev or the +#openvswitch IRC channel. Release Strategy ---------------- -Open vSwitch feature development takes place on the "master" branch. -Ordinarily, new features are rebased against master and applied directly. For -features that take significant development, sometimes it is more appropriate to -merge a separate branch into master; please discuss this on ovs-dev in advance. +OVN feature development takes place on the "master" branch. Ordinarily, new +features are rebased against master and applied directly. For features that +take significant development, sometimes it is more appropriate to merge a +separate branch into master; please discuss this on ovs-dev in advance. The process of making a release has the following stages. See `Release Scheduling`_ for the timing of each stage: @@ -50,7 +50,7 @@ Scheduling`_ for the timing of each stage: Please propose and discuss exceptions on ovs-dev. 2. Fork a release branch from master, named for the expected release number, - e.g. "branch-2.3" for the branch that will yield Open vSwitch 2.3.x. + e.g. "branch-2019.10" for the branch that will yield OVN 2019.10.x. Release branches are intended for testing and stabilization. At this stage and in later stages, they should receive only bug fixes, not new features. @@ -65,19 +65,19 @@ Scheduling`_ for the timing of each stage: and risk and discussed on ovs-dev before creating the branch. 3. When committers come to rough consensus that the release is ready, they - release the .0 release on its branch, e.g. 2.3.0 for branch-2.3. To make - the actual release, a committer pushes a signed tag named, e.g. v2.3.0, to - the Open vSwitch repository, makes a release tarball available on + release the .0 release on its branch, e.g. 2019.10.0 for branch-2019.10. To + make the actual release, a committer pushes a signed tag named, e.g. + v2019.10.0, to the OVN repository, makes a release tarball available on openvswitch.org, and posts a release announcement to ovs-announce. 4. As bug fixes accumulate, or after important bugs or vulnerabilities are - fixed, committers may make additional releases from a branch: 2.3.1, 2.3.2, - and so on. The process is the same for these additional release as for a .0 - release. + fixed, committers may make additional releases from a branch: 2019.10.1, + 2019.10.2, and so on. The process is the same for these additional release + as for a .0 release. At most two release branches are formally maintained at any given time: the latest release and the latest release designed as LTS. An LTS release is one -that the OVS project has designated as being maintained for a longer period of +that the OVN project has designated as being maintained for a longer period of time. Currently, an LTS release is maintained until the next LTS is chosen. There is not currently a strict guideline on how often a new LTS release is chosen, but so far it has been about every 2 years. That could change based on @@ -90,40 +90,40 @@ Release Numbering ----------------- The version number on master should normally end in .90. This indicates that -the Open vSwitch version is "almost" the next version to branch. +the OVN version is "almost" the next version to branch. Forking master into branch-x.y requires two commits to master. The first is titled "Prepare for x.y.0" and increments the version number to x.y. This is the initial commit on branch-x.y. The second is titled "Prepare for post-x.y.0 (x.y.90)" and increments the version number to x.y.90. -The version number on a release branch is x.y.z, where z is initially 0. -Making a release requires two commits. The first is titled *Set release dates -for x.y.z.* and updates NEWS and debian/changelog to specify the release date -of the new release. This commit is the one made into a tarball and tagged. -The second is titled *Prepare for x.y.(z+1).* and increments the version number -and adds a blank item to NEWS with an unspecified date. +The version number on a release branch is x.y.z, where x is the current year, y +is the month of the release, and z is initially 0. Making a release requires two +commits. The first is titled *Set release dates for x.y.z.* and updates NEWS +and debian/changelog to specify the release date of the new release. This +commit is the one made into a tarball and tagged. The second is titled *Prepare +for x.y.(z+1).* and increments the version number and adds a blank item to NEWS +with an unspecified date. Release Scheduling ------------------ -Open vSwitch makes releases at the following six-month cadence. All dates are +OVN makes releases at the following three-month cadence. All dates are approximate: +---------------+----------------+--------------------------------------+ -| Time (months) | Dates | Stage | +| Time (months) | Date | Stage | +---------------+----------------+--------------------------------------+ -| T | Mar 1, Sep 1 | Begin x.y release cycle | +| T | Jan 1, Apr 1 | Begin x.y release cycle | +---------------+----------------+--------------------------------------+ -| T + 4 | Jul 1, Jan 1 | "Soft freeze" master for x.y release | +| T + 2 | Feb 1, May 1 | "Soft freeze" master for x.y release | +---------------+----------------+--------------------------------------+ -| T + 4.5 | Jul 15, Jan 15 | Fork branch-x.y from master | +| T + 2.5 | Feb 8, May 8 | Fork branch-x.y from master | +---------------+----------------+--------------------------------------+ -| T + 5.5 | Aug 15, Feb 15 | Release version x.y.0 | +| T + 2.75 | Feb 22, May 22 | Release version x.y.0 | +---------------+----------------+--------------------------------------+ Contact ------- -Use dev@openvswitch.org to discuss the Open vSwitch development and release -process. +Use dev@openvswitch.org to discuss the OVN development and release process.