Title: Clarify definition of "minor" vs "major" release · Issue #105844 · python/cpython · GitHub
Open Graph Title: Clarify definition of "minor" vs "major" release · Issue #105844 · python/cpython
X Title: Clarify definition of "minor" vs "major" release · Issue #105844 · python/cpython
Description: Documentation I noticed this in a discussion but it was off-topic there. Either I'm misreading things, but it seems like the definition of major and minor release is inconsistent in the documentation. See this page (bold mine): Python’s ...
Open Graph Description: Documentation I noticed this in a discussion but it was off-topic there. Either I'm misreading things, but it seems like the definition of major and minor release is inconsistent in the documentati...
X Description: Documentation I noticed this in a discussion but it was off-topic there. Either I'm misreading things, but it seems like the definition of major and minor release is inconsistent in the documen...
Opengraph URL: https://github.com/python/cpython/issues/105844
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Clarify definition of \"minor\" vs \"major\" release","articleBody":"# Documentation\r\n\r\nI noticed this in a discussion but it was off-topic there. Either I'm misreading things, but it seems like the definition of major and minor release is inconsistent in the documentation. See [this page](https://discuss.python.org/t/a-fast-free-threading-python/27903/10) (bold mine):\r\n\r\n\u003e Python’s C API is covered by the Backwards Compatibility Policy, [PEP 387](https://peps.python.org/pep-0387/). While the C API will change with every **minor release** (e.g. from 3.9 to 3.10), most changes will be source-compatible, typically by only adding new API. Changing existing API or removing API is only done after a deprecation period or to fix serious issues.\r\n\u003e\r\n\u003e CPython’s Application Binary Interface (ABI) is forward- and backwards-compatible across a **minor release** (if these are compiled the same way; see [Platform Considerations](https://docs.python.org/3/c-api/stable.html#stable-abi-platform) below). So, code compiled for Python 3.10.0 will work on 3.10.8 and vice versa, but will need to be compiled separately for 3.9.x and 3.10.x.\r\n\r\nHere, the `11` in `3.11` is referred to as a minor release: the API can change when that changes, but within such a release it should be stable.\r\n\r\nIn other parts of Python documentation, most notably [python.org](https://www.python.org/downloads/release/python-3114/), 3.11 (or 3.10, etc) is referred to as a \"major release\".\r\n\r\nThe [FAQ](https://docs.python.org/3/faq/general.html#how-does-the-python-version-numbering-scheme-work) is less than clear on this (again bold mine):\r\n\r\n\u003e [How does the Python version numbering scheme work?](https://docs.python.org/3/faq/general.html#id9)[¶](https://docs.python.org/3/faq/general.html#how-does-the-python-version-numbering-scheme-work)\r\n\u003e Python versions are numbered “A.B.C” or “A.B”:\r\n\u003e \r\n\u003e * A is the major version number – it is only incremented for really major changes in the language.\r\n\u003e * B is the **minor version** number – it is incremented for less earth-shattering changes.\r\n\u003e * C is the micro version number – it is incremented for each bugfix release.\r\n\u003e \r\n\u003e See [PEP 6](https://peps.python.org/pep-0006/) for more information about bugfix releases.\r\n\u003e \r\n\u003e Not all releases are bugfix releases. In the run-up to a new **major release**, a series of development releases are made, denoted as alpha, beta, or release candidate. Alphas are early releases in which interfaces aren’t yet finalized; it’s not unexpected to see an interface change between two alpha releases. Betas are more stable, preserving existing interfaces but possibly adding new modules, and release candidates are frozen, making no changes except as needed to fix critical bugs.\r\n\r\nMost of the time this is not a big concern but particularly for statements about long-term compatibility (like the C API page above) I think this is rather confusing.\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-105851\n* gh-105852\n* gh-105853\n* gh-105882\n* gh-105892\n* gh-105893\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/jamestwebber","@type":"Person","name":"jamestwebber"},"datePublished":"2023-06-16T00:43:49.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4},"url":"https://github.com/105844/cpython/issues/105844"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:3c63b117-9e85-85a9-1b7e-0023b722fc4c |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A654:3AA710:3F8FDF:57F648:696A0B93 |
| html-safe-nonce | f3eaf85af133527783d89d16779d799c78681a512d35ea2d54995e895218280b |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBNjU0OjNBQTcxMDozRjhGREY6NTdGNjQ4OjY5NkEwQjkzIiwidmlzaXRvcl9pZCI6IjEwMzc4ODAyMTQ2NDY1NTc1ODciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 8e746ae710938a7266d6276f30a59f5f5c0349b2490ed56fe0dc1582cb6e069f |
| hovercard-subject-tag | issue:1759719170 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/105844/issue_layout |
| twitter:image | https://opengraph.githubassets.com/4ef9fefe0100abcd3786f0b3356da87c8f8be6cae282d8359f8f8f2522c3f54a/python/cpython/issues/105844 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/4ef9fefe0100abcd3786f0b3356da87c8f8be6cae282d8359f8f8f2522c3f54a/python/cpython/issues/105844 |
| og:image:alt | Documentation I noticed this in a discussion but it was off-topic there. Either I'm misreading things, but it seems like the definition of major and minor release is inconsistent in the documentati... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jamestwebber |
| hostname | github.com |
| expected-hostname | github.com |
| None | 699227a00bbb7fe1eec276d2ae1c3a93068bc5ba483bd9dc4b2a27a8f4f2f595 |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7266b2d935baa1c6474b16dd9feaa5ca30607261 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width