1243 Commits

Author SHA1 Message Date
Tim Schilling
93dfb16e96 Added documentation on reviewing patches.
Original inspiration drawn from Sarah Boyce's talk:
"Django needs you! (to do code review)"
2026-01-30 20:48:59 -05:00
Natalia
117ff1d37d Made explicit that aspell is a requirement to run spell checks on docs. 2026-01-29 11:20:11 -03:00
Natalia
ba96379011 Fixed docs spelling errors accumulated over time.
The `docs` GitHub action does not install `aspell` so the seplling
checks are always passing in CI. After installing it, the following
errors are reported:

WARNING: internals/security.txt:50: : Spell check: runnable: Include a runnable proof of concept.
WARNING: ref/contrib/postgres/search.txt:292: : Spell check: lexeme: an untrusted source. The content of each lexeme is escaped so that any.
WARNING: ref/contrib/postgres/search.txt:295: : Spell check: lexemes: You can combine lexemes with other lexemes using the .
WARNING: ref/contrib/postgres/search.txt:295: : Spell check: lexemes: You can combine lexemes with other lexemes using the .
WARNING: ref/contrib/postgres/search.txt:314: : Spell check: Lexeme: Lexeme objects also support term weighting and prefixes:.
WARNING: ref/models/database-functions.txt:1897: : Spell check: ai: 23ai/26ai (23.9) or later..
WARNING: ref/models/database-functions.txt:1897: : Spell check: ai: 23ai/26ai (23.9) or later..
WARNING: ref/models/expressions.txt:439: : Spell check: positionally:  can be supplied positionally or only by keyword. For.
WARNING: ref/models/fields.txt:1339: : Spell check: ai: PostgreSQL < 18 only supports persisted columns. Oracle < 23ai/26ai (23.7).
WARNING: ref/models/fields.txt:1339: : Spell check: ai: PostgreSQL < 18 only supports persisted columns. Oracle < 23ai/26ai (23.7).
WARNING: ref/models/fields.txt:1344: : Spell check: ai: s was added on Oracle 23ai/26ai.
WARNING: ref/models/fields.txt:1344: : Spell check: ai: s was added on Oracle 23ai/26ai.
WARNING: releases/4.2.21.txt:24: : Spell check: unclosed: exception if it encounters an unusually large number of unclosed opening tags..
WARNING: releases/5.1.9.txt:24: : Spell check: unclosed: exception if it encounters an unusually large number of unclosed opening tags..
WARNING: releases/5.2.1.txt:24: : Spell check: unclosed: exception if it encounters an unusually large number of unclosed opening tags..
WARNING: releases/6.1.txt:244: : Spell check: mistyped: suggestions for mistyped subcommand names and argument choices..
WARNING: releases/6.1.txt:281: : Spell check: ai: Oracle 23ai/26ai (23.7+)..
WARNING: releases/6.1.txt:281: : Spell check: ai: Oracle 23ai/26ai (23.7+)..
WARNING: releases/6.1.txt:343: : Spell check: durations: durations expressed in weeks (.
WARNING: Found 19 misspelled words
build finished with problems, 20 warnings (with warnings treated as errors).

This branch adds some of the words to the allowlist, but for others I
chose to rephrase the text in a more approachable manner.
2026-01-29 11:20:11 -03:00
Jacob Walls
e61a54d306 Doc'd the minimum version of bash for releasing Django. 2026-01-28 16:51:29 -05:00
Clifford Gama
2541641347 Fixed unbalanced parentheses in docs. 2026-01-19 08:39:25 -05:00
Amar Ahmed Deina
07a1640745 Fixed #36856 -- Mentioned needsnewfeatureprocess resolution in contributor docs.
Co-authored-by: James Bligh <blighj@users.noreply.github.com>
2026-01-15 07:27:02 -05:00
Jacob Walls
a876ada18b Bumped linter versions in requirements files and tox.ini.
Follow-up to 64ac4385c7.
2026-01-14 15:07:10 -05:00
Clifford Gama
1d15c732bb Refs #35381 -- Added missing deprecation note for using None as RHS of JSONExact. 2026-01-09 15:49:34 -05:00
Natalia
8703fbdf10 Added guidance on AI-assisted code submission to contributing docs. 2026-01-08 12:01:53 -03:00
ankan0503
bddcefb00f Fixed #36305 -- Added documentation indentation guidelines to contributing docs. 2025-12-22 14:42:00 -05:00
Pravin Kamble
2d5a780eb5 Fixed #36789 -- Added missing PDF file for docs/internals/_images/contribution_process.svg.
The PDF is needed to build the PDF version of the whole docs.
2025-12-11 13:38:49 -03:00
Jacob Walls
334308efae Fixed #36778 -- Extended advice to sanitize input before using in query expressions.
Thanks Clifford Gama and Simon Charette for reviews.
2025-12-08 10:25:24 -05:00
saurabh
e726254a38 Refs #36620 -- Added contributor documentation for code coverage reports.
This was included in the original reverted patch:
a89183e638
Follow-up to 26b0e2bb92.
2025-12-07 09:06:32 -05:00
Natalia
60b08ad5e1 Included usage of new scripts in docs/internals/howto-release-django.txt. 2025-11-26 20:05:31 -03:00
Natalia
e4c4a178aa Reverted "Fixed #36620 -- Added coverage workflow to summarize coverage in pull requests."
This reverts commit a89183e638.
2025-11-25 17:16:59 -05:00
Jacob Walls
ec60df6d1e Removed outdated build guidance in release docs.
Follow-up to 4686541691.
2025-11-22 11:06:51 -05:00
saurabh
a89183e638 Fixed #36620 -- Added coverage workflow to summarize coverage in pull requests.
Part of GSoC 2025. Thanks Lily for mentorship, and Sarah Boyce and
Jacob Walls for reviews.
2025-11-21 16:26:57 -05:00
Jacob Walls
09d4bf5cd9 Added GitHub Actions linter (zizmor).
At the direction of the Security Team. Thanks Markus Holtermann,
Jake Howard, and Natalia Bidart for reviews.
2025-11-21 14:36:15 -05:00
ontowhee
eaf7b563a5 Updated ticket triage process diagram and contributing docs. 2025-11-04 09:38:03 -03:00
Mariusz Felisiak
ca3e0484ef Refs #36005 -- Bumped minimum supported versions of docutils to 0.22. 2025-10-19 20:13:16 +02:00
Jacob Walls
d980d68609 Bumped minimum isort version to 7.0.0.
Added ignores relating to https://github.com/PyCQA/isort/issues/2352.
2025-10-16 14:59:02 -04:00
Jacob Walls
cc9df52666 Removed pre-release wheel-only advice in docs/internals/howto-release-django.txt.
The practice since 2.2a1 (2019) has been to upload source distributions
as well.
2025-10-14 08:46:14 -04:00
Jacob Walls
1910115807 Removed mention of setuptools in docs/internals/contributing/writing-code/unit-tests.txt. 2025-10-14 08:41:32 -04:00
lyova24
a545eb0c1a Cautioned against multi-level relative imports in coding style docs. 2025-10-13 17:27:07 -04:00
Natalia
d5543a23d3 Added notes about automatic roadmap generation for next version in docs/internals/howto-release-django.txt. 2025-10-13 17:41:30 -03:00
Adam Johnson
8b241f84e2 Fixed #36614 -- Deprecated QuerySet.values_list(flat=True) without a field.
Thanks to Jacob Walls and Simon Charette for their input.

co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
2025-09-30 08:46:28 +02:00
Natalia
5ddb01c760 Clarified feature freeze and alpha release steps in docs/internals/howto-release-django.txt. 2025-09-18 22:07:06 -03:00
Mariusz Felisiak
f8d2610d94 Added backticks to email addresses in docs. 2025-09-17 22:23:57 +02:00
Jacob Walls
cebbd5a6ad Advanced deprecation warnings for Django 6.1. 2025-09-17 15:17:05 -03:00
Clifford Gama
9932866e3a Refs #35667 -- Corrected usage of skip_file_prefixes in contributing docs. 2025-09-13 08:20:17 -04:00
nessita
8956ee3ce3 Refs #35667 -- Updated contributing guide to use django_file_prefixes on deprecations. 2025-09-12 11:15:13 -05:00
Adam Johnson
56955636e6 Ensured :doc: role uses absolute targets in docs. 2025-08-28 13:48:32 -03:00
Natalia
ae03f81ffa Replaced :doc: role usage with :ref: when appropriate in docs. 2025-08-28 13:48:32 -03:00
SaJH
3c0c54351b Fixed #36570 -- Removed unnecessary :py domain from documentation roles.
Signed-off-by: SaJH <wogur981208@gmail.com>
2025-08-28 08:52:43 +02:00
Sarah Boyce
d0e4dd5cdd Fixed #36572 -- Revert "Fixed #36546 -- Deprecated django.utils.crypto.constant_time_compare() in favor of hmac.compare_digest()."
This reverts commit 0246f47888.
2025-08-27 10:50:50 +02:00
Jacob Walls
c594574175 Clarified Trac "version" attribute in contributing guide. 2025-08-26 17:49:06 -04:00
Jacob Walls
66082a7dac Corrected definition of "needsinfo" triage stage in contributing guide. 2025-08-26 16:00:47 -04:00
David Smith
43e4d0a142 Fixed #36485 -- Added lint-docs check in Tox and GitHub Actions.
The `check` docs target now runs spelling, black, and lint, so all
current documentation quality checks can be run with a single command.

Also documented the lint-docs check's availability and usage.
2025-08-25 10:51:10 -03:00
David Smith
f81e6e3a53 Refs #36485 -- Rewrapped docs to 79 columns line length.
Lines in the docs files were manually adjusted to conform to the
79 columns limit per line (plus newline), improving readability and
consistency across the content.
2025-08-25 10:51:10 -03:00
Natalia
4286a23df6 Refs #36485 -- Removed double spaces after periods in sentences. 2025-08-25 10:51:10 -03:00
David Smith
724e5ec6f2 Refs #36485 -- Fixed dangling hyphen and unbalanced inline markup in docs. 2025-08-25 10:51:10 -03:00
David Smith
6f8e23d1c1 Refs #36485 -- Removed unnecessary parentheses in :meth: and :func: roles in docs. 2025-08-25 10:51:10 -03:00
SaJH
0246f47888 Fixed #36546 -- Deprecated django.utils.crypto.constant_time_compare() in favor of hmac.compare_digest().
Signed-off-by: SaJH <wogur981208@gmail.com>
2025-08-25 14:45:16 +02:00
Jacob Walls
165ad74c57 Removed reference to flake8 file exclusions.
Obsolete since 41384812ef.
(six was removed in 9285926295fbfc86b70e7be8d595d4cfbe7895b8.)
2025-08-23 20:01:00 +02:00
Mariusz Felisiak
b3166e1e15 Refs #35530 -- Corrected deprecation message in auth.alogin().
Follow up to ceecd518b1.
2025-08-22 16:14:09 +02:00
David Smith
7f9bf357fe Refs #36485 -- Grouped docs checks under a unified make check target.
Added a new 'check' rule to the docs Makefile which runs both the black
and spelling checks.
2025-08-05 12:18:19 -03:00
David Smith
cba7328196 Refs #34140 -- Added dedicated code block formatting section in docs/internals/contributing/writing-documentation.txt. 2025-08-05 12:18:19 -03:00
Jordan Bae
fdeca38072 Moved manual testing instructions from intro to submitting patches docs.
The section on manual testing, including how to use a local checkout of
Django, is moved from the contribution intro to the submitting patches
docs. This makes it easier for reviewers and authors to follow best
practices.
2025-07-28 08:55:42 -03:00
Mike Edmunds
9ab1991689 Fixed #35581 -- Updated django.core.mail to Python's modern email API.
- Changed EmailMessage.message() to construct a "modern email API"
  email.message.EmailMessage and added policy keyword arg.
- Added support for modern MIMEPart objects in EmailMessage.attach()
  (and EmailMessage constructor, EmailMessage.attachments list).
- Updated SMTP EmailBackend to use modern email.policy.SMTP.

Deprecated:
- Attaching MIMEBase objects (replace with MIMEPart)
- BadHeaderError (modern email uses ValueError)
- SafeMIMEText, SafeMIMEMultipart (unnecessary for modern email)
- django.core.mail.forbid_multi_line_headers()
  (undocumented, but exposed via `__all__` and in wide use)
- django.core.mail.message.sanitize_address()
  (undocumented, but in wide use)

Removed without deprecation (all undocumented):
- EmailMessage.mixed_subtype
- EmailMultiAlternatives.alternative_subtype
- Support for setting (undocumented) EmailMessage.encoding property
  to a legacy email.charset.Charset object

Related changes:
- Dropped tests for incorrect RFC 2047 encoding of non-ASCII email
  address localparts. This is specifically prohibited by RFC 2047, and
  not supported by any known MTA or email client. (Python still
  mis-applies encoded-word to non-ASCII localparts, but it is a bug that
  may be fixed in the future.)
- Added tests that try to discourage using Python's legacy email APIs
  in future updates to django.core.mail.
2025-07-25 13:50:02 +02:00
Mike Edmunds
3ad0e759a6 Fixed #36500 -- Set flake8 max-doc-length config to 79 columns.
Set flake8 max-doc-length to 79 to enforce smaller line length limit
on docstrings and comments (per coding-style docs).

Updated docs to clarify both requirements are enforced by flake8 and
to remove some leftover language from the pre-black era.
2025-07-23 20:17:55 -03:00