Any features not completed by the feature freeze date won't make it into {{ series }}.
+ The release manager will keep the schedule updated and ensure efficient
+ routing of issues and reminders for deadlines.
-
- Process
- Any features not completed by the feature freeze date won't make it into {{ series }}.
- The release manager will keep the schedule updated and ensure efficient
- routing of issues and reminders for deadlines.
+
+ Feature freeze / Alpha 1
+ All major and minor features must be merged by the Alpha 1 deadline. Any
+ features not done by this point will be deferred or dropped. At this time, we
+ will fork stable/{{ series }}.x from main.
+ After the alpha, non-release blocking bug fixes may be backported at the
+ mergers' discretion.
+
-
- Feature freeze / Alpha 1
- All major and minor features must be merged by the Alpha 1 deadline. Any
- features not done by this point will be deferred or dropped. At this time, we
- will fork stable/{{ series }}.x from main.
- After the alpha, non-release blocking bug fixes may be backported at the
- mergers' discretion.
-
+
+ Beta 1
+ Beta 1 marks the end of changes that aren't release blocking bugs. Only release
+ blocking bug fixes will be allowed to be backported after the beta.
+
-
- Beta 1
- Beta 1 marks the end of changes that aren't release blocking bugs. Only release
- blocking bug fixes will be allowed to be backported after the beta.
-
-
-
- RC 1
- If release blockers are still coming in at the planned release candidate date,
- we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
- translation strings; translators will have two weeks to submit updates. Release
- blocking bug fixes may continue to be backported.
-
+
+ RC 1
+ If release blockers are still coming in at the planned release candidate date,
+ we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
+ translation strings; translators will have two weeks to submit updates. Release
+ blocking bug fixes may continue to be backported.
+
-
- Final
- Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
- are found by then, {{ series }} final will be issued; otherwise, the timeline will be
- adjusted as needed.
+
+ Final
+ Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
+ are found by then, {{ series }} final will be issued; otherwise, the timeline will be
+ adjusted as needed.
+
From 517a24eea1fc6d33145ed5de37407ea900329805 Mon Sep 17 00:00:00 2001
From: Gary Badwal
Date: Sun, 26 Oct 2025 17:33:13 +0530
Subject: [PATCH 3/8] "Feature freeze / Alpha 1", "Beta 1", "RC 1", and "Final"
has been updated to be h4 tags as they are subsections of "Process" (h3)
---
djangoproject/templates/releases/roadmap.html | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index e21f58fe70..d0309ed9e3 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -85,7 +85,7 @@ Process
routing of issues and reminders for deadlines.
- Feature freeze / Alpha 1
+ Feature freeze / Alpha 1
All major and minor features must be merged by the Alpha 1 deadline. Any
features not done by this point will be deferred or dropped. At this time, we
will fork stable/{{ series }}.x from main.
@@ -94,13 +94,13 @@ Feature freeze / Alpha 1
- Beta 1
+ Beta 1
Beta 1 marks the end of changes that aren't release blocking bugs. Only release
blocking bug fixes will be allowed to be backported after the beta.
- RC 1
+ RC 1
If release blockers are still coming in at the planned release candidate date,
we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
translation strings; translators will have two weeks to submit updates. Release
@@ -108,7 +108,7 @@
RC 1
- Final
+ Final
Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
are found by then, {{ series }} final will be issued; otherwise, the timeline will be
adjusted as needed.
From a13a6774fe9a75dd759c19b347dc667e9eabdb0b Mon Sep 17 00:00:00 2001
From: Gary Badwal
Date: Sun, 26 Oct 2025 19:56:43 +0530
Subject: [PATCH 4/8] Fixed the H4 closing tags
---
djangoproject/templates/releases/roadmap.html | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index d0309ed9e3..f79fd3a433 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -85,7 +85,7 @@ Process
routing of issues and reminders for deadlines.
- Feature freeze / Alpha 1
+ Feature freeze / Alpha 1
All major and minor features must be merged by the Alpha 1 deadline. Any
features not done by this point will be deferred or dropped. At this time, we
will fork stable/{{ series }}.x from main.
@@ -94,13 +94,13 @@ Feature freeze / Alpha 1
- Beta 1
+ Beta 1
Beta 1 marks the end of changes that aren't release blocking bugs. Only release
blocking bug fixes will be allowed to be backported after the beta.
- RC 1
+ RC 1
If release blockers are still coming in at the planned release candidate date,
we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
translation strings; translators will have two weeks to submit updates. Release
@@ -108,7 +108,7 @@
RC 1
- Final
+ Final
Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
are found by then, {{ series }} final will be issued; otherwise, the timeline will be
adjusted as needed.
From 6c177050488d1dd21018924df98ed4c51b5fa1a4 Mon Sep 17 00:00:00 2001
From: Gary Badwal
Date: Sun, 19 Oct 2025 11:44:13 +0530
Subject: [PATCH 5/8] Move up the "how you can help" section on release roadmap
pages
Included moving the "Process" section to be a subsection of "Schedule" (so it's a bit less distracting)
Added django-admin-dracula (#2269)
Bump coverage from 7.10.7 to 7.11.0 in /requirements
Bumps [coverage](https://github.com/nedbat/coveragepy) from 7.10.7 to 7.11.0.
- [Release notes](https://github.com/nedbat/coveragepy/releases)
- [Changelog](https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst)
- [Commits](https://github.com/nedbat/coveragepy/compare/7.10.7...7.11.0)
---
updated-dependencies:
- dependency-name: coverage
dependency-version: 7.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Bump sentry-sdk from 2.41.0 to 2.42.0 in /requirements
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 2.41.0 to 2.42.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/2.41.0...2.42.0)
---
updated-dependencies:
- dependency-name: sentry-sdk
dependency-version: 2.42.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Fixed language switcher on search results pages (#2272)
* Fix language switcher on search results pages
* Makefile delete revert
Added 2025 PyCharm banner
Fixed translations of results count for languages where 0 is singular rather than plural.
"Feature freeze / Alpha 1", "Beta 1", "RC 1", and "Final" has been updated to be h4 tags as they are subsections of "Process" (h3)
Fixed the H4 closing tags
Add complementary content section to roadmap template
---
djangoproject/settings/common.py | 3 +
djangoproject/templates/base.html | 25 +++--
djangoproject/templates/releases/roadmap.html | 96 ++++++++++---------
docs/templates/docs/search_results.html | 4 +-
docs/tests/test_views.py | 4 +-
docs/views.py | 6 ++
requirements/common.txt | 1 +
requirements/prod.txt | 2 +-
requirements/tests.txt | 2 +-
9 files changed, 78 insertions(+), 65 deletions(-)
diff --git a/djangoproject/settings/common.py b/djangoproject/settings/common.py
index fff6e1dfee..82819c3cc0 100644
--- a/djangoproject/settings/common.py
+++ b/djangoproject/settings/common.py
@@ -94,6 +94,9 @@
"_sphinx_13448_workaround",
]
+if os.getenv("DJANGO_SPOOKY_MODE"):
+ INSTALLED_APPS.insert(0, "django_admin_dracula") # spooky 👻
+
LANGUAGE_CODE = "en-us"
LOGGING = {
diff --git a/djangoproject/templates/base.html b/djangoproject/templates/base.html
index b7e0b448bd..825cfcae6e 100644
--- a/djangoproject/templates/base.html
+++ b/djangoproject/templates/base.html
@@ -57,21 +57,18 @@
- {% comment %}
- Replace the div#billboard below with banner using the skeleton here to
- add a site banner for surveys/promotions/etc
-
- {% block billboard %}
-
-
Banner content goes here
-
- {% endblock %}
+
+ {% block billboard %}
+
+ {% endblock %}
- The CSS targets the `#billboard` selector and expects nested `div and `p` elements.
- elements.
- {% endcomment %}
-
-
{% block billboard %}{% endblock %}
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index 7892c9ff8a..5e024b25b7 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -31,6 +31,19 @@ What features will be in Django {{ series }}?
by mergers.
+
+ How you can help
+ Community effort is key. You can help by:
+
+
+
Schedule
@@ -65,56 +78,49 @@
Schedule
-
-
-
- Process
- Any features not completed by the feature freeze date won't make it into {{ series }}.
- The release manager will keep the schedule updated and ensure efficient
- routing of issues and reminders for deadlines.
-
-
- Feature freeze / Alpha 1
- All major and minor features must be merged by the Alpha 1 deadline. Any
- features not done by this point will be deferred or dropped. At this time, we
- will fork stable/{{ series }}.x from main.
- After the alpha, non-release blocking bug fixes may be backported at the
- mergers' discretion.
-
+
+ Process
+ Any features not completed by the feature freeze date won't make it into {{ series }}.
+ The release manager will keep the schedule updated and ensure efficient
+ routing of issues and reminders for deadlines.
-
- Beta 1
- Beta 1 marks the end of changes that aren't release blocking bugs. Only release
- blocking bug fixes will be allowed to be backported after the beta.
-
+
+ Feature freeze / Alpha 1
+ All major and minor features must be merged by the Alpha 1 deadline. Any
+ features not done by this point will be deferred or dropped. At this time, we
+ will fork stable/{{ series }}.x from main.
+ After the alpha, non-release blocking bug fixes may be backported at the
+ mergers' discretion.
+
-
- RC 1
- If release blockers are still coming in at the planned release candidate date,
- we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
- translation strings; translators will have two weeks to submit updates. Release
- blocking bug fixes may continue to be backported.
-
+
+ Beta 1
+ Beta 1 marks the end of changes that aren't release blocking bugs. Only release
+ blocking bug fixes will be allowed to be backported after the beta.
+
-
- Final
- Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
- are found by then, {{ series }} final will be issued; otherwise, the timeline will be
- adjusted as needed.
-
+
+ RC 1
+ If release blockers are still coming in at the planned release candidate date,
+ we'll release beta 2 to encourage further testing. RC 1 marks the freeze for
+ translation strings; translators will have two weeks to submit updates. Release
+ blocking bug fixes may continue to be backported.
+
-
- How you can help
- Community effort is key. You can help by:
-
+
+ Final
+ Django {{ series }} final will ideally ship two weeks after the last RC. If no major bugs
+ are found by then, {{ series }} final will be issued; otherwise, the timeline will be
+ adjusted as needed.
+
{% endblock %}
+
+{% block content-related %}
+
+
+ {% donation_snippet %}
+
+{% endblock %}
\ No newline at end of file
diff --git a/docs/templates/docs/search_results.html b/docs/templates/docs/search_results.html
index 4f400a8384..f4308132c6 100644
--- a/docs/templates/docs/search_results.html
+++ b/docs/templates/docs/search_results.html
@@ -21,13 +21,13 @@
{% if release.is_dev %}
{% blocktranslate count num_results=paginator.count trimmed %}
- Only 1 result for {{ query }} in the development version
+ {{ num_results }} result for {{ query }} in the development version
{% plural %}
{{ num_results }} results for {{ query }} in the development version
{% endblocktranslate %}
{% else %}
{% blocktranslate count num_results=paginator.count trimmed %}
- Only 1 result for {{ query }} in version {{ version }}
+ {{ num_results }} result for {{ query }} in version {{ version }}
{% plural %}
{{ num_results }} results for {{ query }} in version {{ version }}
{% endblocktranslate %}
diff --git a/docs/tests/test_views.py b/docs/tests/test_views.py
index 1b5cb06e0d..b72603a950 100644
--- a/docs/tests/test_views.py
+++ b/docs/tests/test_views.py
@@ -106,7 +106,7 @@ def test_search_type_filter_by_doc_types(self):
self.assertEqual(response.status_code, 200)
self.assertContains(
response,
- "Only 1 result for generic in version 5.1",
+ "1 result for generic in version 5.1",
html=True,
)
self.assertContains(response, self.active_filter, count=1)
@@ -225,7 +225,7 @@ def test_code_links(self):
self.assertEqual(response.status_code, 200)
self.assertContains(
response,
- f"Only 1 result for {query} in version 5.1",
+ f"1 result for {query} in version 5.1",
html=True,
)
self.assertContains(response, expected_code_links, html=True)
diff --git a/docs/views.py b/docs/views.py
index 275fd60acd..a525b3c1da 100644
--- a/docs/views.py
+++ b/docs/views.py
@@ -146,11 +146,17 @@ def search_results(request, lang, version, per_page=10, orphans=3):
form = DocSearchForm(request.GET or None, release=release)
+ # Get available languages for the language switcher
+ available_languages = DocumentRelease.objects.get_available_languages_by_version(
+ version
+ )
+
context = {
"form": form,
"lang": release.lang,
"version": release.version,
"release": release,
+ "available_languages": available_languages,
"searchparams": request.GET.urlencode(),
}
diff --git a/requirements/common.txt b/requirements/common.txt
index d1054bf732..265b71c3bd 100644
--- a/requirements/common.txt
+++ b/requirements/common.txt
@@ -1,4 +1,5 @@
Babel==2.17.0
+django-admin-dracula==0.0.3
django-contact-form==5.2.0
django-countries==7.6.1
django-hosts==7.0.0
diff --git a/requirements/prod.txt b/requirements/prod.txt
index 8797fb8407..cdd480020e 100644
--- a/requirements/prod.txt
+++ b/requirements/prod.txt
@@ -2,4 +2,4 @@
gunicorn==23.0.0
psycopg[c]==3.2.10
redis==6.4.0
-sentry-sdk==2.41.0
+sentry-sdk==2.42.0
diff --git a/requirements/tests.txt b/requirements/tests.txt
index 2342b07428..d31591b68b 100644
--- a/requirements/tests.txt
+++ b/requirements/tests.txt
@@ -1,4 +1,4 @@
-r dev.txt
-coverage==7.10.7
+coverage==7.11.0
requests-mock==1.12.1
tblib>=3.0.0
From acc4a63644757ce474b3f4093b7bf868e0f0900f Mon Sep 17 00:00:00 2001
From: "pre-commit-ci[bot]"
<66853113+pre-commit-ci[bot]@users.noreply.github.com>
Date: Mon, 27 Oct 2025 04:47:34 +0000
Subject: [PATCH 6/8] [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
---
djangoproject/templates/releases/roadmap.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index 5e024b25b7..caad0f31fa 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -123,4 +123,4 @@ Final
{% donation_snippet %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
From 45a2e3f1a39305de2ebabf1cd969b259cae84a40 Mon Sep 17 00:00:00 2001
From: Gary Badwal
Date: Mon, 27 Oct 2025 11:06:51 +0530
Subject: [PATCH 7/8] loaded the fundraising template tag
---
djangoproject/templates/releases/roadmap.html | 1 +
1 file changed, 1 insertion(+)
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index 5e024b25b7..cd74400f10 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -1,5 +1,6 @@
{% extends "base.html" %}
{% load date_format %}
+{% load fundraising_extras %}
{% block sectionid %}roadmap{% endblock %}
{% block title %}Django {{ series }} Roadmap{% endblock %}
From 3e0f7d44aedc65c9e6b8eb035abe137a640683d0 Mon Sep 17 00:00:00 2001
From: Gary Badwal
Date: Mon, 27 Oct 2025 12:50:49 +0530
Subject: [PATCH 8/8] updated roadmap.html
---
djangoproject/templates/releases/roadmap.html | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/djangoproject/templates/releases/roadmap.html b/djangoproject/templates/releases/roadmap.html
index 1467f265d6..85b0cf81ad 100644
--- a/djangoproject/templates/releases/roadmap.html
+++ b/djangoproject/templates/releases/roadmap.html
@@ -1,6 +1,5 @@
{% extends "base.html" %}
-{% load date_format %}
-{% load fundraising_extras %}
+{% load date_format fundraising_extras %}
{% block sectionid %}roadmap{% endblock %}
{% block title %}Django {{ series }} Roadmap{% endblock %}