From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0C7D6A0A02; Tue, 18 May 2021 13:57:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 843F84068E; Tue, 18 May 2021 13:57:24 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 5C73B40041 for ; Tue, 18 May 2021 13:57:22 +0200 (CEST) IronPort-SDR: RngtmxhluDijbGbkrhLcB2hVIEXYgu7vAqjwnjUBVjAMkXCMKqQulakoGCiQJoiz4jqvUGj89i ILbXhrad0kzg== X-IronPort-AV: E=McAfee;i="6200,9189,9987"; a="197605621" X-IronPort-AV: E=Sophos;i="5.82,310,1613462400"; d="scan'208";a="197605621" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2021 04:57:21 -0700 IronPort-SDR: dkMaQdYF+S5rhjdb1MAz884EbRwbItL9dbB/aAADWTsHOkW1TAkctoeOb2xJBYQaURkcK3Mzjz rC8sEowBDuOg== X-IronPort-AV: E=Sophos;i="5.82,310,1613462400"; d="scan'208";a="439406458" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.224.73]) ([10.213.224.73]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 May 2021 04:57:19 -0700 To: Thomas Monjalon , dev@dpdk.org Cc: david.marchand@redhat.com, Asaf Penso , John McNamara References: <1610304247-11455-1-git-send-email-asafp@nvidia.com> <20210328190005.4185594-1-thomas@monjalon.net> From: Ferruh Yigit X-User: ferruhy Message-ID: <45ecbd36-089c-a8a6-740f-3660310dee9d@intel.com> Date: Tue, 18 May 2021 12:57:15 +0100 MIME-Version: 1.0 In-Reply-To: <20210328190005.4185594-1-thomas@monjalon.net> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v6] doc: add release milestones definition X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 3/28/2021 8:00 PM, Thomas Monjalon wrote: > From: Asaf Penso > > Adding more information about the release milestones. > This includes the scope of change, expectations, etc. > > Signed-off-by: Asaf Penso > Signed-off-by: Thomas Monjalon > Acked-by: John McNamara > --- > v2: fix styling format and add content in the commit message > v3: change punctuation and avoid plural form when unneeded > v4: avoid abbreviations, "Priority" in -rc, and reword as John suggests > v5: note that release candidates may vary > v6: merge RFC and proposal deadline, add roadmap link and reduce duplication > --- > doc/guides/contributing/patches.rst | 69 +++++++++++++++++++++++++++++ > 1 file changed, 69 insertions(+) > > diff --git a/doc/guides/contributing/patches.rst b/doc/guides/contributing/patches.rst > index 6dbbd5f8d1..1277443620 100644 > --- a/doc/guides/contributing/patches.rst > +++ b/doc/guides/contributing/patches.rst > @@ -177,6 +177,8 @@ Make your planned changes in the cloned ``dpdk`` repo. Here are some guidelines > * Add documentation, if relevant, in the form of Doxygen comments or a User Guide in RST format. > See the :ref:`Documentation Guidelines `. > > +* Code and related documentation must be updated atomically in the same patch. > + > Once the changes have been made you should commit them to your local repo. > > For small changes, that do not require specific explanations, it is better to keep things together in the > @@ -660,3 +662,70 @@ patch accepted. The general cycle for patch review and acceptance is: > than rework of the original. > * Trivial patches may be merged sooner than described above at the tree committer's > discretion. > + > + > +Milestones definition > +--------------------- > + > +Each DPDK release has milestones that help everyone to converge to the release date. > +The following is a list of these milestones > +together with concrete definitions and expectations, > +for a typical release cycle (3 months ending after 4 release candidates). > +The number and expectations of release candidates might vary slightly. > +The schedule is updated in the `roadmap `_. > + > +Roadmap > +~~~~~~~ > + > +* Announce new features in libraries, drivers, applications, and examples. > +* To be published before the first day of the release cycle. > + > +Proposal Deadline > +~~~~~~~~~~~~~~~~~ > + > +* Must send an RFC or a complete v1 patch. > +* Early RFC gives time for design review before complete implementation. > +* Should include at least the API changes in libraries and applications. > +* Library code should be quite complete at the deadline. > +* Nice to have: driver implementation (full or draft), example code, and documentation. > + > +rc1 > +~~~ > + > +* Priority: new or updated API. Can we just say API or libraries? Overall what is the intention for the 'priority' information? Should we really split release candidates for libraries, driver and applications? We merge all as much as possible before -rc1. Can we say this other-way around, API/library features can't be merged after -rc1. And similarly driver features shouldn't be merged after -rc2, application changes shouldn't merge after -rc3. Fixes can be merged anytime before -rc4. After -rc4 only critical fixes and documentation changes. Just I want to highlight that for example we merge documentation updates anytime, it doesn't have to wait -rc4, but below listing looks like different part only allocated for different -rc, which is wrong as far as I know. > +* New API should be defined and implemented in libraries.> +* The API should include Doxygen documentation s/should/must > + and be part of the relevant .rst files (library-specific and release notes). > +* API should be used in a test application (``/app``). > +* At least one PMD should implement the API. > + It can be a draft but must be sent as a separate series. I am not sure if "must be sent as a separate series" needs to be highlighted, having all in the same series has a benefit to see bigger picture. If the driver patches acked/reviewed by its maintainers, I think it can be merged in single series. > +* The above should be sent to the mailing list at least 2 weeks before -rc1. > +* Nice to have: example code (``/examples``) > + > +rc2 > +~~~ > + > +* Priority: drivers. > +* New features should be implemented in drivers. I already mentioned above, but this can cause misunderstanding. We want all driver implementation to be ready for proposal deadline, same as other patches. But because of its reduced scope (they don't affect all project but only specific vendor), we are flexible to get driver features for -rc2 and -rc3 too. Please check number of driver patches merged for a release, it is impossible to manage them within period between -rc1 & -rc2. Also some driver features are complex and big, they should be sent before proposal deadline so that they can be reviewed for the release. > +* A driver change should include documentation s/should/must > + in the relevant .rst files (driver-specific and release notes). > +* The above should be sent to the mailing list at least 2 weeks before -rc2. > + > +rc3 > +~~~ > + > +* Priority: applications. > +* New functionality that does not depend on libraries update > + can be integrated as part of -rc3. Again for same issue, let me share my understanding, the -rc1 has been tested widely, after that each -rc gets less and less tests. So the -rc1 should have API/library changes, so that they will be tested more and will have more time to fix any issues, since library changes has biggest impact for the project. Next biggest impact is drivers. Applications and unit tests are internal to DPDK, they have no user impact, that is why we can get more risk with them and they can be merged even as late as rc3. And documentation doesn't have anything related to testing, or they don't introduce any risk for specific release, so they are merged until last stage of the release. > +* The application should include documentation in the relevant .rst files > + (application-specific and release notes if significant). s/should/must > +* It may be the last opportunity for miscellaneous changes. This is very vague, what does misch changes mean? > +* Libraries and drivers cleanup are allowed. > +* Small driver reworks. > +* Critical and minor bug fixes. > + > +rc4 > +~~~ > + > +* Documentation updates. > +* Critical bug fixes. >