You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Latest News section on python.org aggregates posts from several different sources, but its “More” link currently sends people to the newer blog.python.org site. That is confusing because not all of the news shown on python.org appears there. In particular, PSF announcements, election information, and other posts published through the PSF blog can be easy to miss unless someone already knows to visit pyfound.blogspot.com.
This PR makes the News section and menu a little clearer:
Changes the homepage “More” link to point to /blogs/, the existing python.org page that aggregates these sources.
Expands /blogs/ from 6 entries to 15. The newest entry is used as the page header, with the other 14 shown in the list.
Restyles the /blogs/ list to match the homepage Latest News widget: the date sits in its own column next to the title, instead of leaving a large empty gap with the title and date pushed into a second column.
Drops the “More” link from /blogs/ itself. That page already aggregates every source, so there was no single “more” to point at. A News Sources widget in the right column, below Python Insider Subscriptions, now links to each site instead: Python Insider, the PSF Blog, the PyCon Blog, and the PyPI Blog.
The homepage Latest News widget itself still shows 5 entries; only its link destination changes.
This PR no longer touches the fixtures. The News menu updates (the Python Insider item, the wording, the HTTPS links, and hiding the Python Brochure entry) and the blogs-copyright box are applied directly to the live rows in the admin, since fixtures are seed data and do not update existing databases.
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR aligns the homepage “Latest News” More link destination with the site’s aggregated news feed by pointing it to the local /blogs/ page, and increases the number of entries shown on that /blogs/ page.
Changes:
Update the homepage “More” link to use the internal blog URL instead of BLOG_URL.
Increase /blogs/ page entry list size from 5 to 10 (by fetching ENTRY_LIST_LIMIT + 1 to support a featured header entry).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
File
Description
templates/components/blog-posts.html
Updates “More” to reverse the internal blog URL.
apps/blogs/views.py
Adds ENTRY_LIST_LIMIT = 10 and expands the BlogHome queryset slice accordingly.
jefftriplett
changed the title
Show 10 news entries on /blogs/ and point the homepage More link there
Improve the news links in the header menu and on the homepage
Aug 14, 2026
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (3)
apps/blogs/views.py:21
There is an extra space after the slice colon ([: ENTRY_LIST_LIMIT + 1]). This is inconsistent with typical formatting and may trigger linting (e.g., flake8 E203) depending on project config.
The view behavior change increases the number of blog entries surfaced on the blog homepage (from 6 total to ENTRY_LIST_LIMIT + 1). The existing view test asserts the latest entry but doesn’t assert how many entries are exposed in resp.context["entries"], so this change isn’t guarded against regressions.
def get_context_data(self, **kwargs):
"""Return the latest blog entries for the blog homepage."""
context = super().get_context_data(**kwargs)
entries = BlogEntry.objects.order_by("-pub_date")[: ENTRY_LIST_LIMIT + 1]
latest_entry = None
templates/components/blog-posts.html:8
The homepage "Latest News" component is still fetching only 5 entries (limit=5), but the PR description says this section should show 10. This currently doesn’t implement the intended behavior.
jefftriplett
changed the title
Improve the news links in the header menu and on the homepage
🚜 Improve the news links in the header menu and on the homepage
Aug 14, 2026
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (1)
fixtures/boxes.json:467
This fixture still links to Python Insider over plain HTTP (http://blog.python.org). Since this PR is explicitly moving external links to HTTPS, this should also be updated to avoid mixed/insecure links.
"content": "<h2 class=\"widget-title\">Copyright</h2>\r\n<p>Python Insider by the Python core team is licensed under a <a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/us/\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Based on a work at <a href=\"http://blog.python.org\">blog.python.org</a>.</p>",
"content_markup_type": "html",
"_content_rendered": "<h2 class=\"widget-title\">Copyright</h2>\r\n<p>Python Insider by the Python core team is licensed under a <a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/us/\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Based on a work at <a href=\"http://blog.python.org\">blog.python.org</a>.</p>"
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (2)
fixtures/boxes.json:467
The updated blogs copyright box still links to http://blog.python.org, even though the project’s configured blog URL is HTTPS and this PR is moving external links to HTTPS. Update the link to https://blog.python.org in both content and _content_rendered.
"content": "<h2 class=\"widget-title\">Copyright</h2>\r\n<p>Python Insider by the Python core team is licensed under a <a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/us/\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Based on a work at <a href=\"http://blog.python.org\">blog.python.org</a>.</p>",
"content_markup_type": "html",
"_content_rendered": "<h2 class=\"widget-title\">Copyright</h2>\r\n<p>Python Insider by the Python core team is licensed under a <a href=\"https://creativecommons.org/licenses/by-nc-sa/3.0/us/\">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>. Based on a work at <a href=\"http://blog.python.org\">blog.python.org</a>.</p>"
apps/blogs/views.py:9
ENTRY_LIST_LIMIT = 10 currently results in only 9 items in the “Latest News” list on /blogs/ because the newest entry is moved into the page header (other_entries = entries[1:]). If the intent is to show 10 list items (as before: query size = list size + 1), fetch one extra entry and slice using a dedicated query-limit constant.
# Number of entries the page shows. The newest one goes in the page
# header, the rest go in the "Latest News" list.
ENTRY_LIST_LIMIT = 10
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (2)
templates/components/blog-posts.html:8
PR description says the homepage widget should show 10 news entries instead of 5, but this template tag still limits the list to 5.
{% get_latest_blog_entries limit=5 as entries %}
apps/blogs/views.py:21
ENTRY_LIST_LIMIT = 10 currently results in 9 items in the "Latest News" list because the template treats the first entry as the separate header item (other_entries = entries[1:]). If the intent is 10 list items (i.e., matching the prior behavior where [:6] produced 5 list items), the query needs to fetch one extra entry; otherwise, consider updating the constant/docstring/PR description to make it explicit that 10 is the total (1 header + 9 list).
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 5 out of 5 changed files in this pull request and generated no new comments.
Suppressed comments (1)
apps/blogs/views.py:9
ENTRY_LIST_LIMIT is described/used as the total number of entries shown on the page (header entry + list items), but the name reads like it only limits the list portion. Renaming to something like ENTRY_PAGE_LIMIT/BLOG_HOME_ENTRY_COUNT would make the intent clearer and avoid off-by-one confusion when using ENTRY_LIST_LIMIT - 1 for the list size in tests.
# Number of entries the page shows. The newest one goes in the page
# header, the rest go in the "Latest News" list.
ENTRY_LIST_LIMIT = 10
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🟡 Changes recommended
The /blogs/ “News Sources” widget currently links to the PyPI Blog, but the PR description and tests expect a Planet Python link, which will cause test failure and a UX mismatch.
Get a fresh assessment by requesting another Copilot review.
The reason will be displayed to describe this comment to others. Learn more.
Copilot review overview
🔵 Needs a closer look
The /blogs/ list introduces heading markup in each list item, which can negatively affect accessibility and breaks consistency with the existing widget markup/CSS expectations.
Avoid wrapping news links in unnecessary h3 headings
apps/blogs/templates/blogs/index.html:33
Wrapping each news link in an
adds many headings to the page and breaks consistency with the existing widget pattern (e.g., templates/components/blog-posts.html and event-posts.html render the date tag followed by a plain link). This can clutter screen-reader heading navigation and is unnecessary for styling; prefer rendering the link directly after the time tag and style the via CSS.
Style direct news links instead of targeting h3 elements
static/css/style.css:2293
This selector styles an
inside .most-recent-posts list items, but the shared widget markup pattern uses a direct child (time + link). Styling the keeps the layout consistent across the homepage Latest News widget and /blogs/ and avoids needing heading markup just for typography.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The Latest News section on python.org aggregates posts from several different sources, but its “More” link currently sends people to the newer
blog.python.orgsite. That is confusing because not all of the news shown on python.org appears there. In particular, PSF announcements, election information, and other posts published through the PSF blog can be easy to miss unless someone already knows to visitpyfound.blogspot.com.This PR makes the News section and menu a little clearer:
/blogs/, the existing python.org page that aggregates these sources./blogs/from 6 entries to 15. The newest entry is used as the page header, with the other 14 shown in the list./blogs/list to match the homepage Latest News widget: the date sits in its own column next to the title, instead of leaving a large empty gap with the title and date pushed into a second column./blogs/itself. That page already aggregates every source, so there was no single “more” to point at. A News Sources widget in the right column, below Python Insider Subscriptions, now links to each site instead: Python Insider, the PSF Blog, the PyCon Blog, and the PyPI Blog.The homepage Latest News widget itself still shows 5 entries; only its link destination changes.
This PR no longer touches the fixtures. The News menu updates (the Python Insider item, the wording, the HTTPS links, and hiding the Python Brochure entry) and the
blogs-copyrightbox are applied directly to the live rows in the admin, since fixtures are seed data and do not update existing databases.