Skip to content

Cut the whale of the changelog into manageable pieces?聽#98

Description

@hugovk

The changelog page is very long:

It's currently 219,974 words, that's longer than Moby Dick (212,794 words)... 馃惓

It contains all the NEWS entries back to Python 3.5.0 alpha 1 (February 8, 2015).

It loads okay on deskstop, but my phone struggles to render it, and the browser hangs when trying to search for text.

I tried to check the accessibility report using Google's PageSpeed Insights:

It shows good initial numbers:

image

But the rest of the report is missing: "Oops! Something went wrong. generic::deadline_exceeded: Render timeout received in extension."

image

Shall we break the changelog page into smaller, more manageable chunks?

Activity

  1. hugovk commented on Jan 16, 2024

    @hugovk
    MemberAuthor

    Right now, the changelog.rst page includes the NEWS file:

    .. _changelog:
    
    +++++++++
    Changelog
    +++++++++
    
    .. miscnews:: ../build/NEWS

    https://github.com/python/cpython/blob/3d5df54cdc1e946bd953bc9906da5abf78a48357/Doc/whatsnew/changelog.rst

    The 43,720-line NEWS is compiled by blurb from the individual release files in https://github.com/python/cpython/tree/main/Misc/NEWS.d:

    Building NEWS from Misc/NEWS.d with blurb
    

    https://github.com/python/cpython/blob/3d5df54cdc1e946bd953bc9906da5abf78a48357/Doc/Makefile#L50-L66

  2. AA-Turner commented on Jan 16, 2024

    @AA-Turner
    Member

    I think splitting to major versions at least makes sense (so potentially /changelog/3.13.html, akin to /whatsnew/blah.html?)

    There's an argument to break further, to e.g. a page per micro release, but I think that would inder Ctrl-F searching within each version.

    A

  3. willingc commented on Feb 19, 2024

    @willingc
    Collaborator

    This was discussed at the Feb 2024 docs meeting: https://github.com/python/docs-community/blob/main/docs/monthly-meeting/2024-02.md

    The general consensus was that splitting the changelog makes good sense. Let's add to March 2024 agenda for next steps.

  4. ezio-melotti commented on Feb 21, 2024

    @ezio-melotti
    Member

    There's an argument to break further, to e.g. a page per micro release, but I think that would inder Ctrl-F searching within each version.

    There is also a form to filter changes, so that people can easily enter the name of a module/function and see all the changes that affected it. This was broken and got fixed recently in:

    For this specific use case, having everything on one page is convenient, but if we kept at least the last 3 versions on a single page, it would probably be good enough. By doing this we could reduce the overall size to ~1/3.

  5. encukou commented on Mar 6, 2024

    @encukou
    Member

    When I use the changelog, I use Ctrl+F to look for the history of a function or feature. On the detail/noise spectrum, the changelog is somewhere between whatsnew & versionchanged notes on one side, and Git history on the other. And the changelog tends to work better for things that were renamed or moved around.

    This use case might be an outlier, so it might be OK to break it. But: do we know of any other use for the changelog?

    The newly restored changelog filter looks good; maybe it could be taught to display entries from old versions in the main document?

  6. pradyunsg commented on Mar 7, 2024

    @pradyunsg
    Member

    if we kept at least the last 3 versions on a single page, it would probably be good enough.

    It might even be reasonable to trim that list to the last 5 minor versions, which covers everything that was in the "supported" window for CPython (with the newer annual releases + 5 year support cycle).

  7. encukou commented on Apr 2, 2024

    @encukou
    Member

    One thing we could do is add a warning to the link to the changelog, warning people to not open it on a phone.

  8. merwok commented on Apr 2, 2024

    @merwok
    Member

    We can鈥檛 do that in all websites and search engines that link to the changelog, though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions