CINXE.COM
[ACCEPTED] PEP 602: Annual Release Cycle for Python - #79 by hroncok - PEPs - Discussions on Python.org
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>[ACCEPTED] PEP 602: Annual Release Cycle for Python - #79 by hroncok - PEPs - Discussions on Python.org</title> <meta name="description" content="I’ve been asked by the Steering Council to move parts of PEP 596 that discuss the release cycle changes to its separate PEP. Here it is. I’ve also incorporated feedback from previous discussion. Abstract This document&hellip;"> <meta name="generator" content="Discourse 3.4.0.beta3-dev - https://github.com/discourse/discourse version 1f538a81a833a804e609df624d56e92919bc62f3"> <link rel="icon" type="image/png" href="https://global.discourse-cdn.com/flex016/uploads/python1/optimized/1X/9997f0605d56c4bfecd63594f52f42cdafd6b06a_2_32x32.png"> <link rel="apple-touch-icon" type="image/png" href="https://global.discourse-cdn.com/flex016/uploads/python1/optimized/1X/4c06143de7870c35963b818b15b395092a434991_2_180x180.png"> <meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"> <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#111111"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=yes, viewport-fit=cover"> <link rel="canonical" href="https://discuss.python.org/t/accepted-pep-602-annual-release-cycle-for-python/2296?page=4" /> <link rel="search" type="application/opensearchdescription+xml" href="https://discuss.python.org/opensearch.xml" title="Discussions on Python.org Search"> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/color_definitions_base__2_25fa1ee92854c4156785d82f8e4b273a11fbebb8.css?__ws=discuss.python.org" media="all" rel="stylesheet" class="light-scheme"/><link href="https://sea2.discourse-cdn.com/flex016/stylesheets/color_definitions_dark_1_2_c3e06cc91a0b7fd3c21e7c678ac0ebd6a501c657.css?__ws=discuss.python.org" media="(prefers-color-scheme: dark)" rel="stylesheet" class="dark-scheme"/> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/desktop_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="desktop" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/checklist_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="checklist" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-adplugin_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-adplugin" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-akismet_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-akismet" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-cakeday_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-cakeday" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-chat-integration_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-chat-integration" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-details_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-details" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-lazy-videos_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-lazy-videos" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-local-dates_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-local-dates" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-math_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-math" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-narrative-bot_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-narrative-bot" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-policy_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-policy" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-presence_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-presence" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-solved_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-solved" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-templates_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-templates" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-topic-voting_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-topic-voting" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-user-notes_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-user-notes" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-yearly-review_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-yearly-review" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/footnote_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="footnote" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/hosted-site_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="hosted-site" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/poll_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="poll" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/spoiler-alert_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="spoiler-alert" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/discourse-topic-voting_desktop_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="discourse-topic-voting_desktop" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/poll_desktop_ba98439999d40b1cf90c6668baa0bb9a1bf3d3c7.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="poll_desktop" /> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/desktop_theme_4_03355c6ca7c9305adaaed722dba278b6ca0e3488.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="4" data-theme-name="unformatted code detector"/> <link href="https://sea2.discourse-cdn.com/flex016/stylesheets/desktop_theme_2_916f4a49a8bbba8cff9cf348e566f30de752b56b.css?__ws=discuss.python.org" media="all" rel="stylesheet" data-target="desktop_theme" data-theme-id="2" data-theme-name="light"/> <link rel="alternate nofollow" type="application/rss+xml" title="RSS feed of '[ACCEPTED] PEP 602: Annual Release Cycle for Python'" href="https://discuss.python.org/t/accepted-pep-602-annual-release-cycle-for-python/2296.rss" /> <meta property="og:site_name" content="Discussions on Python.org" /> <meta property="og:type" content="website" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:image" content="https://global.discourse-cdn.com/flex016/uploads/python1/original/1X/f93ff97c4f381b5e8add5a0c163b4ded29f20ed7.png" /> <meta property="og:image" content="https://global.discourse-cdn.com/flex016/uploads/python1/original/1X/f93ff97c4f381b5e8add5a0c163b4ded29f20ed7.png" /> <meta property="og:url" content="https://discuss.python.org/t/accepted-pep-602-annual-release-cycle-for-python/2296/79" /> <meta name="twitter:url" content="https://discuss.python.org/t/accepted-pep-602-annual-release-cycle-for-python/2296/79" /> <meta property="og:title" content="[ACCEPTED] PEP 602: Annual Release Cycle for Python" /> <meta name="twitter:title" content="[ACCEPTED] PEP 602: Annual Release Cycle for Python" /> <meta property="og:description" content="Looking at current proposal in PEP 596 and the expected Fedora 33 schedule. At 2020-08-25, Fedora 33 Beta Freeze starts. At that date, Python 3.9.0 is still at b4. Having it as rc1 would be much better. When Python slips, we would satisfy with b4. We want to avoid b3, because there are dangerous changes happening between betas, such as changing the bytecode magic number (and we need to rebuild the whole distro when this happens which is hard after beta freeze, but not impossible). At 2020-10-..." /> <meta name="twitter:description" content="Looking at current proposal in PEP 596 and the expected Fedora 33 schedule. At 2020-08-25, Fedora 33 Beta Freeze starts. At that date, Python 3.9.0 is still at b4. Having it as rc1 would be much better. When Python slips, we would satisfy with b4. We want to avoid b3, because there are dangerous changes happening between betas, such as changing the bytecode magic number (and we need to rebuild the whole distro when this happens which is hard after beta freeze, but not impossible). At 2020-10-..." /> <meta property="og:article:section" content="PEPs" /> <meta property="og:article:section:color" content="0088CC" /> <meta property="article:published_time" content="2019-10-25T15:28:39+00:00" /> <meta property="og:ignore_canonical" content="true" /> </head> <body class="crawler browser-update"> <header> <a href="/"> Discussions on Python.org </a> </header> <div id="main-outlet" class="wrap" role="main"> <div id="topic-title"> <h1> <a href="/t/accepted-pep-602-annual-release-cycle-for-python/2296">[ACCEPTED] PEP 602: Annual Release Cycle for Python</a> </h1> <div class="topic-category" itemscope itemtype="http://schema.org/BreadcrumbList"> <span itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"> <a href="/c/peps/19" class="badge-wrapper bullet" itemprop="item"> <span class='badge-category-bg' style='background-color: #0088CC'></span> <span class='badge-category clear-badge'> <span class='category-name' itemprop='name'>PEPs</span> </span> </a> <meta itemprop="position" content="1" /> </span> </div> </div> <div itemscope itemtype='http://schema.org/DiscussionForumPosting'> <meta itemprop='headline' content='[ACCEPTED] PEP 602: Annual Release Cycle for Python'> <link itemprop='url' href='https://discuss.python.org/t/accepted-pep-602-annual-release-cycle-for-python/2296'> <meta itemprop='datePublished' content='2019-09-10T09:36:33Z'> <meta itemprop='articleSection' content='PEPs'> <meta itemprop='keywords' content=''> <div itemprop='publisher' itemscope itemtype="http://schema.org/Organization"> <meta itemprop='name' content='Python Software Foundation'> <div itemprop='logo' itemscope itemtype="http://schema.org/ImageObject"> <meta itemprop='url' content='https://global.discourse-cdn.com/flex016/uploads/python1/original/1X/c7591c98caf3b31d4d9c6f322f41ed9d80a50800.png'> </div> </div> <span itemprop='author' itemscope itemtype="http://schema.org/Person"> <meta itemprop='name' content='ambv'> <link itemprop='url' href='https://discuss.python.org/u/ambv'> </span> <meta itemprop='text' content='I’ve been asked by the Steering Council to move parts of PEP 596 that discuss the release cycle changes to its separate PEP. Here it is. I’ve also incorporated feedback from previous discussion. Abstract This document&hellip;'> <div id='post_79' itemprop='comment' itemscope itemtype='http://schema.org/Comment' class='topic-body crawler-post'> <div class='crawler-post-meta'> <span class="creator" itemprop="author" itemscope itemtype="http://schema.org/Person"> <a itemprop="url" href='https://discuss.python.org/u/hroncok'><span itemprop='name'>hroncok</span></a> (Miro Hrončok) </span> <span class="crawler-post-infos"> <time itemprop='datePublished' datetime='2019-10-25T15:28:39Z' class='post-time'> October 25, 2019, 3:28pm </time> <meta itemprop='dateModified' content='2019-10-25T15:28:39Z'> <span itemprop='position'>79</span> </span> </div> <div class='post' itemprop='text'> <aside class="quote group-committers quote-modified" data-username="ambv" data-post="78" data-topic="2296"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.python.org/ambv/48/1791_2.png" class="avatar"> ambv:</div> <blockquote> <p>…can you specifically tell us <em>which</em> date you need to move and <em>by how much</em> for this to be helpful to you?</p> </blockquote> </aside> <p>Looking at current proposal in <a href="https://www.python.org/dev/peps/pep-0596/#schedule" rel="noopener nofollow ugc">PEP 596</a> and the expected <a href="https://fedorapeople.org/groups/schedule/f-33/f-33-key-tasks.html" rel="noopener nofollow ugc">Fedora 33 schedule</a>.</p> <p>At 2020-08-25, Fedora 33 <em>Beta Freeze</em> starts. At that date, Python 3.9.0 is still at b4. Having it as rc1 would be much better. When Python slips, we would satisfy with b4. We want to avoid b3, because there are dangerous changes happening between betas, such as changing the bytecode magic number (and we need to <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1748018" rel="noopener nofollow ugc">rebuild the whole distro when this happens</a> which is hard after beta freeze, but not impossible).</p> <p>At 2020-10-06, Fedora 33 <em>Final Freeze</em> starts. Python 3.9.0 final is scheduled 1 day before that. It is not very uncommon that such a release slips by a day or two and what’s worse is that Fedora freezes at 00:00 UTC and Python schedules deadlines as AoE, adding additional 36h difference. That’s why I’d like to aim for at least 1 week earlier. 3.9.0rc2 is currently scheduled at 2020-09-14 which is quite good, but moving it sooner would make me sleep better.</p> <p>So, technically, this boils down to:</p> <ul> <li>move by a week might work if Python doesn’t slip too much (it often does)</li> <li>move by 2 weeks would probably cover for the delays</li> <li>move by 3 weeks would be pretty awesome</li> <li>move by 4 weeks is probably paranoid</li> </ul> <aside class="quote group-committers" data-username="ambv" data-post="78" data-topic="2296"> <div class="title"> <div class="quote-controls"></div> <img loading="lazy" alt="" width="24" height="24" src="https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.python.org/ambv/48/1791_2.png" class="avatar"> ambv:</div> <blockquote> <p>For example, <a class="mention" href="/u/brettcannon">@brettcannon</a> suggests that maybe we could call “Beta 4” our “Release Candidate 1”. No dates would change but the stability expectation would be different. You’d have your RC1 in August. Would <strong>that</strong> help?</p> </blockquote> </aside> <p>It doesn’t really matter that much what is it <em>called</em>, but rather what are the guarantees behind that. (OTOH shipping a Fedora release with an RC version of Python definitively <em>sounds</em> better than shipping it with Beta.) Doing a real RC at the time of current Beta 4 would be indeed nice, however I’m not that sure that it would not require further adjustments of the rest of the milestones. IMHO shifting the schedule by 2-3 weeks instead would make it more likely that we don’t end up with major differences between rc1 and rc2.</p> </div> <div itemprop="interactionStatistic" itemscope itemtype="http://schema.org/InteractionCounter"> <meta itemprop="interactionType" content="http://schema.org/LikeAction"/> <meta itemprop="userInteractionCount" content="0" /> <span class='post-likes'></span> </div> </div> </div> <div role='navigation' itemscope itemtype='http://schema.org/SiteNavigationElement' class="topic-body crawler-post"> <span itemprop='name'> <a itemprop="url" href="/t/accepted-pep-602-annual-release-cycle-for-python/2296?page=4#post_79">show post in topic</a> </span> </div> </div> <footer class="container wrap"> <nav class='crawler-nav'> <ul> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/' itemprop="url">Home </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/categories' itemprop="url">Categories </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/guidelines' itemprop="url">Guidelines </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/tos' itemprop="url">Terms of Service </a> </span> </li> <li itemscope itemtype='http://schema.org/SiteNavigationElement'> <span itemprop='name'> <a href='/privacy' itemprop="url">Privacy Policy </a> </span> </li> </ul> </nav> <p class='powered-by-link'>Powered by <a href="https://www.discourse.org">Discourse</a>, best viewed with JavaScript enabled</p> </footer> <div class="buorg"><div>Unfortunately, <a href="https://www.discourse.org/faq/#browser">your browser is unsupported</a>. Please <a href="https://browsehappy.com">switch to a supported browser</a> to view rich content, log in and reply.</div></div> </body> </html>