| Age | Commit message (Collapse) | Author |
|
Refs #37159 -- Documented building release wheel reproducibly.
|
|
Refs #37159 -- Documented building release wheel reproducibly.
|
|
|
|
Thank you to Mike Edmunds for the review.
|
|
|
|
|
|
This change implements DEP 16: to rename the django-admin command to django.
django-admin is kept as an alias.
Docs references to the "django-admin" command are updated to "django" or
“The django command”.
Renamed the `django-admin` Sphinx directive to `cmd`, and the
`django-admin-option` directive to `cli-option`.
Thanks Johannes Maron, Mike Edmunds, and Jacob Walls for reviews.
|
|
Thank you Mike Edmunds for the review.
|
|
|
|
|
|
Starting with Django 2028, DEP 20 changes the Python version support
policy, gives every feature release three years of support, and moves
to calendar versions. Documented these in the Python version FAQ, the
upgrade guide, and the release how-to.
|
|
Updated docs `make black` and `make lint` checks to use Sphinx's own
source file discovery to get the list of docs source files. This makes
docs/conf.py the single source of truth for which files are/aren't docs
sources. The exclusions were previously duplicated by hand in Makefile,
make.bat, and lint.py, where they could drift from conf.py.
Created a Python blacken-sources.py wrapper around blacken-docs, similar
to the existing lint.py for sphinx-lint. This replaces shell and batch
file commands that tried (only partially successfully) to replicate
Sphinx's source discovery.
Removed `--jobs 0` from the sphinx-lint arguments to allow parallel
linting, since sphinx-lint treats `--jobs 0` as serial instead of
defaulting to `auto`.
Also added Sphinx to the tox environments running the docs checks, since
neither `blacken-docs` nor `sphinx-lint` depends on Sphinx.
Thanks to Natalia Bidart for review and improvements.
|
|
disable multiline template tags.
Co-authored-by: Sarah Boyce <42296566+sarahboyce@users.noreply.github.com>
|
|
Created an "epubcheck" target in the docs makefiles and docs workflow.
Because EPUBCheck requires a Java runtime, did not include it in the
general "make check" target.
|
|
The draw.io export used HTML labels inside `foreignObject` elements,
including a `<font>` element, which made the epub build fail EPUBCheck
validation. It also embedded about 20KB of draw.io source, and its
light-dark() colors could not be edited in SVG editors like Inkscape.
Labels are now SVG text elements, light colors are presentation
attributes, and dark mode is a prefers-color-scheme media query. In
dark mode, arrows keep the color of the role making each transition,
matching the legend.
Thanks Mike Edmunds for the report.
Regression in eaf7b563a5d3861026242fdb503a58f71acf17f6.
|
|
|
|
|
|
Co-authored-by: Natalia <124304+nessita@users.noreply.github.com>
|
|
|
|
process docs.
Thank you to Natalia Bidart and James Bligh for the reviews.
|
|
|
|
At the time of writing, we are facing a flood of proposed documentation
edits driven by generative AI tools. In many cases, these proposals need
significant redirection to maintain consistency with the voice of
Django's documentation.
See https://forum.djangoproject.com/t/discouraging-the-voice-from-nowhere-llms-in-documentation/44699
Thanks Tim Schilling, Mike Edmunds, Tim Graham, Natalia Bidart, Sarah
Boyce, James Beard, and several others for valuable feedback.
Co-authored-by: Daniele Procida <daniele@vurt.org>
|
|
|
|
* Removed unnecessary `table` and `parameterlist` customizations from
the djangodocs Sphinx extension's `DjangoHTMLTranslator`. These were
meant to avoid obsolete html from Docutils' html4 writer (`border=1`
in `<table>` tags and and `<big>` around parameter list parens).
Sphinx 2.0 switched to the html5 writer, which doesn't emit that html.
These overrides are no longer necessary, rely on Sphinx internals that
often break in new versions, and interfere with third-party themes.
* Moved the console-tabs.css stylesheet to docs/_static and removed
logic for conditionally including it only in pages with console tabs.
That depended on custom handling in the djangodocs theme layout.html
template, which isn't portable to other themes.
* Switched console tabs from Font Awesome brand icons to text and
removed the vendored fa-brands fonts (to avoid moving them from the
djangodocs theme to the docs/_static dir).
* Ensured both console tabs include a wrapper div around literal code
blocks: `<div class="highlight-{lexer} notranslate">` (where lexer is
`console` for Unix and `doscon` for Windows). This wrapper had been
missing for the Windows content, which could cause shifting layouts
when changing tabs with third-party Sphinx themes (and may have
interfered with browser translation tools).
Fixed by rendering the Windows tab with a temporary literal block,
matching how the Unix tab is rendered. Removed direct call to the
Pygments highlighter.
The Windows tab is no longer force-highlighted, so a doscon lexing
failure now reports a warning rather than being silently ignored.
* Removed custom `VersionDirective` and HTML writer overrides for
`visit_versionmodified()` and `depart_versionmodified()`. Sphinx's
standard changeset directives are now used. (Refs #20104.)
The original code was meant to substitute "development version" for
conf.py `django_next_version` and to refer to "Django N.M" rather than
the generic "version N.M" in changeset messages. But it missed the
`deprecated` directive and aliases like `version-modified` added in
Sphinx 9.0, didn't apply to non-HTML output formats, and generated
inconsistent HTML that wasn't compatible with standard Sphinx themes.
Related cleanup:
* Updated documentation on using versionadded and versionchanged
directives to accurately reflect Sphinx's rendered text, and removed
the policy bullet describing the old Django-specific phrasing.
* Enabled biome for all css and js files in docs (except in
docs/_build).
* Consistently excluded all non-docs source dirs and requirements.txt
from searches for *.txt source files in conf.py exclude_patterns,
make.bat, Makefile, and lint.py.
Refs #35874, #37138, #20104.
|
|
As part of adding useful friction in front of unwanted agentic contributions,
all new contributors are being nudged to have tickets for their PRs. Update
the contribution docs with this current practice.
Co-authored-by: nessita <124304+nessita@users.noreply.github.com>
|
|
|
|
`EmailValidator` now includes the invalid `username` or `domain` in the
`params` of the `ValidationError` it raises, so error messages can
reference the part that failed.
Address parsing and validation are now split into overridable methods
(`parse_address()`, `validate()`, `validate_username()`, and
`validate_domain()`), each receiving the full address being validated.
Subclasses can customize parsing, an individual part, or a rule spanning
both parts, without re-parsing the address.
The undocumented `validate_domain_part()` method is deprecated in favor
of `validate_domain()`, which raises `ValidationError` for invalid
domains instead of returning a boolean.
Refs #27029.
Thanks Mike Edmunds for the many ideas and quality reviews.
|
|
no tzinfo.
In Django 2029, the current timezone will be stored in the migration.
|
|
From Django 2028, feature releases are calendar versioned as YYYY[.N],
where N is the patch number, as per DEP 20. A version is now read as the
numbers of the printed version followed by the status and its iteration,
so calendar versions have four components, (year, patch, status,
iteration), while the earlier scheme keeps its five.
django.VERSION is now a VersionTuple, providing `.feature`, `.patch`,
`.status`, and `.iteration` attributes which give the same answers under
both schemes. Indexing it from its third component on, reading it in a
way which depends on its length, and comparing it against three or more
components are deprecated, as each breaks or silently changes meaning
when the tuple loses a component.
Thanks Carlton Gibson for reviews.
|
|
|
|
Per DEP 20, Django's version numbers are calendar-based from 2028, so
deprecation warning classes are now named after the calendar version
that removes the feature they mark, and the deprecation timeline is
headed by the same calendar version.
Updated references to RemovedInDjango71Warning to use the new warning,
and adjusted references to "Django 7.1" to "Django 2029".
|
|
Updated references to RemovedInDjango70Warning to use the new warning,
and adjusted references to "Django 7.0" to "Django 2028".
RemovedInDjango70Warning remains importable as an alias of the same
class, so existing warning filters and except clauses in third-party
code keep working across the rename.
|
|
|
|
|
|
The fetch modes feature made all query iteration paths (ModelIterable,
RawModelIterable, and RelatedPopulator) call Model.from_db() with a
fetch_mode keyword argument. This crashed with a TypeError for models
overriding from_db() with the previously documented signature
from_db(cls, db, field_names, values).
Query iteration now detects, once per query rather than per row, whether
the model's from_db() accepts the fetch_mode keyword argument (or
**kwargs) and calls old-style overrides without it, emitting a
RemovedInDjango70Warning asking authors to add the argument.
Regression in e097e8a12f21a4e92594830f1ad1942b31916d0f.
|
|
testing.
|
|
|
|
Added a documentation page that contains a concise set of guidelines to
help new contributors be more effective at sprints or other events with
in-person Django contributors.
Included a pair of links on how to filter down tickets, which calls out
adding the additional columns and filtering to docs components, and a
internal reference link for django-docker-box.
Thanks Annabelle Wiegart, Natalia Bidart, Paolo Melchiorre, Jacob Walls,
and Tim Mccurrachd for reviews.
Co-authored-by: tim-mccurrach <34194722+tim-mccurrach@users.noreply.github.com>
Co-authored-by: nessita <124304+nessita@users.noreply.github.com>
|
|
|
|
Thanks to these people for pointing these out:
* Hojeong Park
* Natalia Bidart
* Sulav Raj Bista
|
|
|
|
|
|
|
|
docs/internals/contributing/writing-code/index.txt.
Bug in 4eb4ab4122b2b974911d4b1f935728cf35e4208c.
|
|
Also ensured that most links are anonymous to avoid implicit named references.
Bug in 8ddc5b444c175c696c8197dc8f24273252b0de77.
|
|
|
|
Builds on djangoproject.com report errors as per:
howto-release-django.txt:3: WARNING:
Duplicate explicit target name: "example". [docutils]
|
|
|
|
Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
|
|
SIGNED_COOKIE_LEGACY_SALT_FALLBACK.
|