From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 2E02C158094 for ; Sun, 31 Jul 2022 21:26:24 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DAD8F2BC05D; Sun, 31 Jul 2022 21:26:19 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 44590E0FA7 for ; Sun, 31 Jul 2022 21:26:19 +0000 (UTC) From: Ulrich Mueller To: gentoo-dev@lists.gentoo.org Subject: [gentoo-dev] GLEP 83 [v3]: EAPI deprecation In-Reply-To: (Ulrich Mueller's message of "Sun, 31 Jul 2022 19:27:13 +0200") References: Date: Sun, 31 Jul 2022 23:26:13 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Archives-Salt: 62f1e708-5f5f-4e7c-98bb-e2f91434799c X-Archives-Hash: 422a87aaafcf99d4e914fbc93edd9641 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Update v3, thanks to Thomas Bracht Laumann Jespersen for grammatical corrections. =2D-- GLEP: 83 Title: EAPI deprecation Author: Ulrich M=C3=BCller Type: Informational Status: Draft Version: 1 Created: 2022-06-30 Last-Modified: 2022-07-31 Post-History: 2022-07-11, 2022-07-31 Content-Type: text/x-rst =2D-- Abstract =3D=3D=3D=3D=3D=3D=3D=3D Introduce standardized criteria for deprecation and banning of EAPIs. Motivation =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D So far, old EAPIs were deprecated by the Gentoo Council in an ad-hoc manner. No fixed criteria were used, resulting in unpredictable deprecation times after approval of newer EAPIs. Standardized criteria for deprecation and banning will make the life cycle of EAPIs more predictable. Specification =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D A *deprecated EAPI* is no longer required for the upgrade path of users' systems. Its use is discouraged, and tools like pkgcheck will warn about this [#COUNCIL-20130409]_. A *banned EAPI* must no longer be used, neither for new ebuilds, nor for updating of existing ebuilds [#COUNCIL-20140311]_. The Gentoo Council will deprecate an EAPI when * two newer Council-approved EAPIs are supported by the stable version of Portage, and * one of them has been supported for 24 months. The Gentoo Council will ban a deprecated EAPI when * 24 months have passed since its deprecation, and * it is used by fewer than 5 % of ebuilds in the Gentoo repository. EAPIs used in profiles are outside the scope of this GLEP. Rationale =3D=3D=3D=3D=3D=3D=3D=3D=3D Timing of EAPI deprecation is a trade-off between different factors. On the one hand, the total number of EAPIs in active use should be limited; this will prevent the learning curve for new developers and contributors from becoming too steep and will help to reduce code complexity, e.g. in eclasses. On the other hand, an upgrade path to a stable system is guaranteed for one year, plus limited support for systems that are outdated more than a year [#COUNCIL-20091109]_. Therefore, previous EAPIs are still required during that time. A period of 24 months before deprecation has been chosen, which is more than the required minimum and will allow projects to support a longer upgrade path. Requiring two newer EAPIs before deprecation will allow ebuilds that are otherwise seldom updated to be bumped to the next but one EAPI immediately. A delay of 24 months between deprecation and ban will give ebuild authors enough time to update. This is especially relevant for overlays and downstream distributions. An additional requirement for banning an EAPI is that fewer than 5 % of ebuilds are using the EAPI in question. This requirement is defined to help keep the number of ebuild updates (and bug reports requesting them) managable, as a banned EAPI is sufficient reason for updating an ebuild. Backwards Compatibility =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The following table compares the actual dates of deprecations and bans [#PMS-PROJECT]_ with the dates that would have resulted from the criteria proposed in this GLEP ("new date"). =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D EAPI Portage Gentoo repo deprecated diff. banned = diff. =2D--- ---------- ----------- ----------------------- ------ ---------= -------------- ------ \ stable usage < 5 % actual date new date months actual date= new date months =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D 0 2005-12-26 2017-02-28 2014-02-25 2009-12-11 -50 2016-01-10 = 2017-02-28 +14 1 2007-12-11 2009-10-25 2013-04-09 2011-01-08 -27 2014-03-11 = 2013-01-08 -14 2 2009-01-08 2015-03-27 2013-04-09 2012-03-08 -13 2014-03-11 = 2015-03-27 +12 3 2010-03-08 2015-01-16 2014-02-25 2013-03-17 -11 2016-01-10 = 2015-03-17 -10 4 2011-03-17 2018-01-11 2015-10-11 2016-01-17 +3 2018-04-08 = 2018-01-17 -3 5 2012-12-11 2021-06-15 2018-05-13 2018-06-27 +1 2021-08-08 = 2021-06-15 -2 6 2016-01-17 2022-11-06 2021-07-11 2021-07-05 0 = 2023-07-05 [*]_ 7 2018-06-27 8 2021-07-05 =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D =3D=3D=3D=3D=3D=3D .. [*] Extrapolated date, obtained by fitting data between 2021-01-01 and 2022-07-31 with an exponential function. References =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .. [#COUNCIL-20130409] "EAPI deprecation", Gentoo Council meeting summary 2013-04-09 (https://projects.gentoo.org/council/meeting-logs/20130409-summary.txt). Note: The original quote says "Repoman" instead of "pkgcheck". .. [#COUNCIL-20140311] "Ban on EAPI 1 and 2 should extend to updating EAPI in existing ebuilds", Gentoo Council meeting summary 2014-03-11 (https://projects.gentoo.org/council/meeting-logs/20140311-summary.txt) .. [#COUNCIL-20091109] "Upgrade path for old systems", Gentoo Council meeting summary 2009-11-09 (https://projects.gentoo.org/council/meeting-logs/20091109-summary.txt) .. [#PMS-PROJECT] Gentoo Package Manager Specification project (https://wiki.gentoo.org/wiki/Project:Package_Manager_Specification#EAPI= _life_cycle) Copyright =3D=3D=3D=3D=3D=3D=3D=3D=3D This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by-sa/4.0/. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQFDBAEBCAAtFiEEtDnZ1O9xIP68rzDbUYgzUIhBXi4FAmLm83UPHHVsbUBnZW50 b28ub3JnAAoJEFGIM1CIQV4u3YgH/RJtTFreYCo0joxb/BvHf0bSEg6pcFkB3WA4 KM8RM/7l0EIMAukfJHpHU6sGsALOU3KN0EVOd3nZqNorIWPzmhWlo6iuk12tap20 ZOT+4R0JyMBm7dFP1V6hTe8CCuzErhcQwtqV+Y17eVyrNniGZCfHzCyeKMO8l7xh ugDPwcmIS+lTZHk02d0s3vFPtoxPJuPSyV5Z8YyZZebQLSa9Y0w4P43BI3gyZy4T phzxSVqJ3u6HmNk4OoXZKssyD6plTRWtm1DYuYe65sv7s+bdJi8OTkrsFX7PMz1e rnDpvrliV1/8Q32VHEwjsPq4bGy5swZ5i3BZjWLsPL15MftfGhk= =ROu0 -----END PGP SIGNATURE----- --=-=-=--