GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Clarify definition of "minor" vs "major" release · Issue #105844 · python/cpython

Clarify definition of "minor" vs "major" release #105844

New issue
Copy link
New issue
Copy link
Closed
Closed
Clarify definition of "minor" vs "major" release#105844
Copy link
Labels
docsDocumentation in the Doc dirDocumentation in the Doc dir

Description

@jamestwebber
jamestwebber
opened on Jun 16, 2023
Issue body actions

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 C API is covered by the Backwards Compatibility Policy, PEP 387. 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.

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 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.

Here, 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.

In other parts of Python documentation, most notably python.org, 3.11 (or 3.10, etc) is referred to as a "major release".

The FAQ is less than clear on this (again bold mine):

How does the Python version numbering scheme work?¶
Python versions are numbered “A.B.C” or “A.B”:

  • A is the major version number – it is only incremented for really major changes in the language.
  • B is the minor version number – it is incremented for less earth-shattering changes.
  • C is the micro version number – it is incremented for each bugfix release.

See PEP 6 for more information about bugfix releases.

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.

Most 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.

Linked PRs

  • gh-105844: Consistently use 'minor version' for X.Y versions #105851
  • [3.11] gh-105844: Consistently use 'minor version' for X.Y versions (GH-105851) #105852
  • [3.12] gh-105844: Consistently use 'minor version' for X.Y versions (GH-105851) #105853
  • gh-105844: Use devguide terminology to denote versions #105882
  • [3.12] gh-105844: Use devguide terminology to denote versions (GH-105882) #105892
  • [3.11] gh-105844: Use devguide terminology to denote versions (GH-105882) #105893

Activity

  1. jamestwebber
    added
    docsDocumentation in the Doc dirDocumentation in the Doc dir
    on Jun 16, 2023
  2. erlend-aasland commented on Jun 16, 2023

    @erlend-aasland
    erlend-aasland
    on Jun 16, 2023
    Contributor
    More actions

    Most 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.

    I don't follow; I cannot not find any version inconsistencies on https://docs.python.org/3/c-api/stable.html. As far as I can see, minor version is used consistently there.

    The FAQ is slightly inconsistent, though. Perhaps PEP-602 also needs an update1.

    Footnotes

    1. PEP issues must be reported to https://github.com/python/peps; python.org inconsistencies at https://github.com/python/pythondotorg) ↩

  3. erlend-aasland
    added 2 commits that reference this issue on Jun 16, 2023

    pythongh-105844: Consistently use 'minor version' for X.Y versions

    b3845ec

    gh-105844: Consistently use 'minor version' for X.Y versions (#105851)

    0bffe1a
  4. miss-islington
    added 2 commits that reference this issue on Jun 16, 2023

    pythongh-105844: Consistently use 'minor version' for X.Y versions (p…

    916e485

    pythongh-105844: Consistently use 'minor version' for X.Y versions (p…

    4bc8ff2
  5. erlend-aasland commented on Jun 16, 2023

    @erlend-aasland
    erlend-aasland
    on Jun 16, 2023
    Contributor
    More actions

    Resolved with:

    • gh-105844: Consistently use 'minor version' for X.Y versions #105851
    • [3.11] gh-105844: Consistently use 'minor version' for X.Y versions (GH-105851) #105852
    • [3.12] gh-105844: Consistently use 'minor version' for X.Y versions (GH-105851) #105853

    (Backports are approved, pending merge)

    Reacted by James Webber
  6. erlend-aasland
    closed this as completedon Jun 16, 2023
  7. erlend-aasland
    added 2 commits that reference this issue on Jun 16, 2023

    [3.12] gh-105844: Consistently use 'minor version' for X.Y versions (G…

    1eeb2e6

    [3.11] gh-105844: Consistently use 'minor version' for X.Y versions (G…

    bb72d77
  8. jamestwebber commented on Jun 16, 2023

    @jamestwebber
    jamestwebber
    on Jun 16, 2023
    ContributorAuthor
    More actions

    I don't follow; I cannot not find any version inconsistencies on https://docs.python.org/3/c-api/stable.html. As far as I can see, minor version is used consistently there.

    The FAQ is slightly inconsistent, though. Perhaps PEP-602 also needs an update.

    Yeah I just meant it was confusing to me when looking across multiple places. In particular the announcement of new releases got me used to thinking of them as "major". Thanks for the updates!

  9. carljm
    added a commit that references this issue on Jun 16, 2023

    Merge branch 'main' into modulelocals

    b096651
  10. erlend-aasland
    reopened this on Jun 17, 2023
  11. erlend-aasland commented on Jun 17, 2023

    @erlend-aasland
    erlend-aasland
    on Jun 17, 2023
    Contributor
    More actions

    See @CAM-Gerlach's review of python/peps#3174 (python/peps#3174 (review)). I see now that my docs update could be made even clearer, by using the established release naming convention used in the devguide. 3.11 and 3.12 are feature releases, not minor releases.

    Reacted by James Webber and C.A.M. Gerlach
  12. erlend-aasland
    added a commit that references this issue on Jun 17, 2023

    pythongh-105844: Use devguide terminology to denote versions

    8828e0c
  13. gvanrossum
    added a commit that references this issue on Jun 18, 2023

    pythongh-105844: Consistently use 'minor version' for X.Y versions (p…

    df346bc
  14. erlend-aasland
    added a commit that references this issue on Jun 18, 2023

    gh-105844: Use devguide terminology to denote versions (#105882)

    dba7217
  15. miss-islington
    added 2 commits that reference this issue on Jun 18, 2023

    pythongh-105844: Use devguide terminology to denote versions (pythonG…

    a7e5d76

    pythongh-105844: Use devguide terminology to denote versions (pythonG…

    118ac67
  16. erlend-aasland
    added 2 commits that reference this issue on Jun 18, 2023

    [3.11] gh-105844: Use devguide terminology to denote versions (GH-105882

    043c831

    [3.12] gh-105844: Use devguide terminology to denote versions (GH-105882

    1606cbc
  17. erlend-aasland
    closed this as completedon Jun 18, 2023
  18. CAM-Gerlach
    changed the title [-]definition of "minor" vs "major" release[/-] [+]Clarify definition of "minor" vs "major" release[/+] on Jun 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    docsDocumentation in the Doc dirDocumentation in the Doc dir

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.