From patchwork Wed May 16 13:43:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Finucane X-Patchwork-Id: 914650 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40mGNS2kfBz9s19 for ; Thu, 17 May 2018 00:02:48 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="VfUtr330"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 40mGNR6MppzF1NW for ; Thu, 17 May 2018 00:02:47 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: lists.ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="VfUtr330"; dkim-atps=neutral X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=that.guru (client-ip=23.83.209.71; helo=glow.birch.relay.mailchannels.net; envelope-from=stephen@that.guru; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: lists.ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="VfUtr330"; dkim-atps=neutral Received: from glow.birch.relay.mailchannels.net (glow.birch.relay.mailchannels.net [23.83.209.71]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 40mFy46zLRzF15M for ; Wed, 16 May 2018 23:43:23 +1000 (AEST) X-Sender-Id: 5xi41l16bi|x-authuser|stephen@that.guru Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 0C51F5E1580; Wed, 16 May 2018 13:43:20 +0000 (UTC) Received: from one.mxroute.com (unknown [100.96.13.58]) (Authenticated sender: 5xi41l16bi) by relay.mailchannels.net (Postfix) with ESMTPA id 7F1335E1961; Wed, 16 May 2018 13:43:19 +0000 (UTC) X-Sender-Id: 5xi41l16bi|x-authuser|stephen@that.guru Received: from one.mxroute.com (one-outgoing.mxroute.com [172.19.38.121]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.15.2); Wed, 16 May 2018 13:43:20 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: 5xi41l16bi|x-authuser|stephen@that.guru X-MailChannels-Auth-Id: 5xi41l16bi X-Irritate-White: 171c804762d989ec_1526478199857_1141349936 X-MC-Loop-Signature: 1526478199856:178974404 X-MC-Ingress-Time: 1526478199855 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=that.guru; s=default; h=Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:MIME-Version :Content-Type:Content-Transfer-Encoding:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=2KzVNLbGlZd+gi8q0zlCdA0rK8lucvXJ3WpcPm52+ns=; b=VfUtr330b2yYWTLEzl035AVZcC mB/wCa5GoheBmIb2wZUM87FvWkvStdHgvpTe1XxY0vzEDNBWu3GIDqyZ+2jgzkMuer1hzDw1cU/28 Q3BC2ntr+xeAzUxTgpGke9siPxNZXrhTSpV5PckI5AUjfqJvx9CMjwTGs8lP2S03nS5h9diNHnqFq Bj4i2qPYyJ6blPws+wo1VYgwuSLB4CQtjv64LrsCMfdY37EKcw9plY0kMCjfxoQ1SnDf6xMAYvNQO 0QV3f3IPWCpHCQNWtO/RUo/xXkJaQz97JlNGybAJfXLRvZm9WKlnkFDldkCAu3oYr5FmfAI2Ueaph 5njS+QkA==; From: Stephen Finucane To: patchwork@lists.ozlabs.org Subject: [PATCH 1/2] docs: Update release, contributing guides Date: Wed, 16 May 2018 14:43:09 +0100 Message-Id: <20180516134310.10703-1-stephen@that.guru> X-Mailer: git-send-email 2.17.0 X-AuthUser: stephen@that.guru X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" Document the requirement to send an email to the list upon a release and to always send patches via email. Signed-off-by: Stephen Finucane --- docs/development/contributing.rst | 55 +++++++++++++++++++++++-------- docs/development/installation.rst | 3 ++ docs/development/releasing.rst | 24 ++++++++++---- 3 files changed, 63 insertions(+), 19 deletions(-) diff --git a/docs/development/contributing.rst b/docs/development/contributing.rst index c311cfe0..e591bd3a 100644 --- a/docs/development/contributing.rst +++ b/docs/development/contributing.rst @@ -19,24 +19,26 @@ Testing ------- Patchwork includes a `tox`_ script to automate testing. This requires a -functional database and some Python requirements like `tox`. Refer to +functional database and some Python requirements like *tox*. Refer to :doc:`installation` for information on how to configure these. -You may also need to install `tox`. If so, do this now: +You may also need to install *tox*. If so, do this now: .. code-block:: shell - $ sudo pip install tox + $ pip install --user tox .. tip:: - If you're using Docker, you may not need to install `tox` + If you're using Docker, you may not need to install *tox* locally. Instead, it will already be installed inside the - container. For Docker, you can run `tox` like so: + container. For Docker, you can run *tox* like so: .. code-block:: shell - $ docker-compose run web tox [ARGS...] + $ docker-compose run --rm web tox [ARGS...] + + For more information, refer to :ref:`installation-docker`. Assuming these requirements are met, actually testing Patchwork is quite easy to do. To start, you can show the default targets like so: @@ -70,17 +72,18 @@ this: $ tox + .. _release-notes: Release Notes ------------- -Patchwork uses `reno`_ for release note management. To use `reno`, you must +Patchwork uses `reno`_ for release note management. To use *reno*, you must first install it: .. code-block:: shell - $ sudo pip install reno + $ pip install --user reno Once installed, a new release note can be created using the ``reno new`` command: @@ -92,6 +95,7 @@ command: Modify the created file, removing any irrelevant sections, and include the modified file in your change. + API --- @@ -106,13 +110,21 @@ for more information. All API changes should be called out in :ref:`release notes ` using the ``api`` section. + +Reporting Issues +---------------- + +You can report issues to the :ref:`mailing list ` or the `GitHub +issue tracker`_. + + Submitting Changes ------------------ -All patches should be sent to the `mailing list`_. When doing so, please abide -by the `QEMU guidelines`_ on contributing or submitting patches. This covers -both the initial submission and any follow up to the patches. In particular, -ensure: +All patches should be sent to the :ref:`mailing list `. You must +be subscribed to the list in order to submit patches. Please abide by the `QEMU +guidelines`_ on contributing or submitting patches. This covers both the +initial submission and any follow up to the patches. In particular, ensure: * :ref:`All tests pass ` @@ -120,8 +132,25 @@ ensure: * :ref:`A release note is included ` +Patches should ideally be submitted using the *git send-email* tool. + + +.. mailing-lists: + +Mailing Lists +------------- + +Patchwork uses a single mailing list for development, questions and +announcements. + + patchwork@lists.ozlabs.org + +Further information about the Patchwork mailing list is available can be found on +`lists.ozlabs.org`_. + .. _tox: https://tox.readthedocs.io/en/latest/ .. _reno: https://docs.openstack.org/developer/reno/ -.. _mailing list: https://ozlabs.org/mailman/listinfo/patchwork .. _QEMU guidelines: http://wiki.qemu.org/Contribute/SubmitAPatch .. _Django REST Framework documentation: http://www.django-rest-framework.org/api-guide/versioning/ +.. _GitHub issue tracker: https://github.com/getpatchwork/patchwork +.. _list.ozlabs.org: https://lists.ozlabs.org/listinfo/patchwork diff --git a/docs/development/installation.rst b/docs/development/installation.rst index f857ff6f..1a97b6de 100644 --- a/docs/development/installation.rst +++ b/docs/development/installation.rst @@ -12,6 +12,9 @@ To begin, you should clone Patchwork: $ git clone git://github.com/getpatchwork/patchwork.git + +.. _installation-docker: + Docker-Based Installation ------------------------- diff --git a/docs/development/releasing.rst b/docs/development/releasing.rst index eb33bbf7..86cacb3a 100644 --- a/docs/development/releasing.rst +++ b/docs/development/releasing.rst @@ -43,21 +43,26 @@ These version numbers are exposed via the API and it's possible to request a specific version in the URL. Refer to the `API Guide <../api/rest>` for more information. + Release Cycle ------------- There is no cadence for releases: they are made available as necessary. + Supported Versions ------------------ -Typically all development should occur on `master`. While we will backport +Typically all development should occur on ``master``. While we will backport bugfixes and security updates, we will not backport any new features. This is to ensure stability for users of these versions of Patchwork. + Release Checklist ----------------- +The follow steps apply to all releases: + * Documentation has been updated with latest release version * Documentation references latest supported version of Django @@ -73,22 +78,29 @@ Release Checklist * A `GitHub Release`__, with text corresponding to an abbreviated form of the release notes for that cycle, has been created -The following only apply to full releases, or those where the `MAJOR` or -`MINOR` number is incremented: +* An email describing the release and top-level overview of the changes has + been sent to the mailing list. Refer to the emails for `Patchwork v2.0.0`__ + and `Patchwork v2.0.1`__ for examples. + +The following only apply to full releases, or those where the **MAJOR** or +**MINOR** number is incremented: -* A new branch called `stable/MAJOR.MINOR` has been created from the tagged +* A new branch called ``stable/MAJOR.MINOR`` has been created from the tagged commit Once released, bump the version found in ``patchwork/__init__.py`` once again. __ https://git-scm.com/book/en/v2/Git-Basics-Tagging __ https://github.com/getpatchwork/patchwork/releases/new +__ https://lists.ozlabs.org/pipermail/patchwork/2017-August/004549.html +__ https://lists.ozlabs.org/pipermail/patchwork/2017-December/004683.html + Backporting ----------- We will occasionally backport bugfixes and security updates. When backporting a -patch, said patch should first be merged into `master`. Once merged, you can +patch, said patch should first be merged into ``master``. Once merged, you can backport by cherry-picking commits, using the ``-x`` flag for posterity: .. code-block:: shell @@ -101,5 +113,5 @@ when committing:: Conflicts patchwork/bin/pwclient -When enough patches have been backported, you should release a new `PATCH` +When enough patches have been backported, you should release a new **PATCH** release. From patchwork Wed May 16 13:43:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stephen Finucane X-Patchwork-Id: 914648 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40mGN06dDLz9s19 for ; Thu, 17 May 2018 00:02:24 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="uOYNxiFA"; dkim-atps=neutral Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 40mGN058xVzDqwW for ; Thu, 17 May 2018 00:02:24 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: lists.ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="uOYNxiFA"; dkim-atps=neutral X-Original-To: patchwork@lists.ozlabs.org Delivered-To: patchwork@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=that.guru (client-ip=23.83.214.19; helo=black.maple.relay.mailchannels.net; envelope-from=stephen@that.guru; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=that.guru Authentication-Results: lists.ozlabs.org; dkim=fail reason="key not found in DNS" (0-bit key; unprotected) header.d=that.guru header.i=@that.guru header.b="uOYNxiFA"; dkim-atps=neutral Received: from black.maple.relay.mailchannels.net (black.maple.relay.mailchannels.net [23.83.214.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 40mFy46xjxzF15J for ; Wed, 16 May 2018 23:43:23 +1000 (AEST) X-Sender-Id: 5xi41l16bi|x-authuser|stephen@that.guru Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id D5FB240CBF; Wed, 16 May 2018 13:43:20 +0000 (UTC) Received: from one.mxroute.com (unknown [100.96.15.45]) (Authenticated sender: 5xi41l16bi) by relay.mailchannels.net (Postfix) with ESMTPA id 5976A40C28; Wed, 16 May 2018 13:43:20 +0000 (UTC) X-Sender-Id: 5xi41l16bi|x-authuser|stephen@that.guru Received: from one.mxroute.com (one-outgoing.mxroute.com [172.19.61.140]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384) by 0.0.0.0:2500 (trex/5.15.2); Wed, 16 May 2018 13:43:20 +0000 X-MC-Relay: Neutral X-MailChannels-SenderId: 5xi41l16bi|x-authuser|stephen@that.guru X-MailChannels-Auth-Id: 5xi41l16bi X-Cold-Chief: 76f6b40013239599_1526478200624_1413782764 X-MC-Loop-Signature: 1526478200624:1793884790 X-MC-Ingress-Time: 1526478200623 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=that.guru; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Sender:Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=7ZcSMq9LEIBofHOcDxrLirQchhhWJk/CLcVeqnfuSQY=; b=uOYNxiFAwdKA6pcZW4UUXMYPGg j6zEljhEFPND4n+3KHxIwkv4GxIKw9jYCtLb68AuAV6vxgEonBAw0HHaFoLfmmsPuNmKRs8YaGXyA 84eOz5DKZJn2x94F/10B0P8euUNqfAOICRURw+9mb7+KsGGzuBJ5TSr41EJDXhFcq8TwJtef4qr+t 1C6eJZ3tDaWV0VZbX6C847/eqoIAr7luK4jRYI5IG0cpoBs9mUCX68eUkB4Jv+t5fvlcnRM/SEFOt CZHj5HKgSSc/VuH4TDsBxXdqPLpEFg1wYqpFLoNXlyOhOJchiXSV72pw7BwLHREy2lEUhT7ZgcTwY lQkJguyA==; From: Stephen Finucane To: patchwork@lists.ozlabs.org Subject: [PATCH 2/2] Patchwork v2.1.0-rc2 Date: Wed, 16 May 2018 14:43:10 +0100 Message-Id: <20180516134310.10703-2-stephen@that.guru> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180516134310.10703-1-stephen@that.guru> References: <20180516134310.10703-1-stephen@that.guru> X-AuthUser: stephen@that.guru X-BeenThere: patchwork@lists.ozlabs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: Patchwork development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: patchwork-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Patchwork" Signed-off-by: Stephen Finucane Acked-by: Daniel Axtens --- patchwork/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/patchwork/__init__.py b/patchwork/__init__.py index d145a4db..4f10b4c1 100644 --- a/patchwork/__init__.py +++ b/patchwork/__init__.py @@ -19,7 +19,7 @@ from patchwork.version import get_latest_version -VERSION = (2, 1, 0, 'rc', 1) +VERSION = (2, 1, 0, 'rc', 2) __version__ = get_latest_version(VERSION)