Change priority of versioning doctrees

This commit is contained in:
Takeshi KOMIYA
2018-04-16 00:24:49 +09:00
parent 538c061e7c
commit 6b14cd3bd6
5 changed files with 20 additions and 9 deletions

View File

@@ -18,8 +18,9 @@ Incompatible changes
* The ``gettext_compact`` attribute is removed from ``document.settings``
object. Please use ``config.gettext_compact`` instead.
* The processing order on reading phase is changed. smart_quotes, sphinx
domains and :event:`doctree-read` event are invoked earlier. For more
details, please read a description of :py:meth:`.Sphinx.add_transform()`
domains, :event:`doctree-read` event and versioning doctrees are invoked
earlier than so far. For more details, please read a description of
:py:meth:`.Sphinx.add_transform()`
Deprecated
----------
@@ -39,6 +40,7 @@ Deprecated
* ``env._nitpick_ignore`` is deprecated
* ``app.override_domain()`` is deprecated
* ``app.add_stylesheet()`` is deprecated
* ``sphinx.versioning.prepare()`` is deprecated
For more details, see `deprecation APIs list
<http://www.sphinx-doc.org/en/master/extdev/index.html#deprecated-apis>`_

View File

@@ -119,6 +119,11 @@ The following is a list of deprecated interface.
- 4.0
- :meth:`~sphinx.application.Sphinx.add_css_file()`
* - ``sphinx.versioning.prepare()``
- 1.8
- 3.0
- ``sphinx.versioning.UIDTransform``
* - ``sphinx.application.Sphinx.override_domain()``
- 1.8
- 3.0

View File

@@ -24,7 +24,7 @@ from docutils.utils import Reporter, get_source_line
from six import BytesIO, class_types, next
from six.moves import cPickle as pickle
from sphinx import addnodes, versioning
from sphinx import addnodes
from sphinx.deprecation import RemovedInSphinx20Warning, RemovedInSphinx30Warning
from sphinx.environment.adapters.indexentries import IndexEntries
from sphinx.environment.adapters.toctree import TocTree
@@ -577,10 +577,6 @@ class BuildEnvironment(object):
self.all_docs[docname] = max(
time.time(), path.getmtime(self.doc2path(docname)))
if self.versioning_condition:
# add uids for versioning
versioning.prepare(doctree)
# cleanup
self.temp_data.clear()
self.ref_context.clear()

View File

@@ -34,6 +34,7 @@ from sphinx.transforms.i18n import (
from sphinx.transforms.references import SphinxDomains
from sphinx.util import logging
from sphinx.util.docutils import LoggingReporter
from sphinx.versioning import UIDTransform
if False:
# For type annotation
@@ -95,7 +96,7 @@ class SphinxStandaloneReader(SphinxBaseReader):
HandleCodeBlocks, AutoNumbering, AutoIndexUpgrader, SortIds,
RemoveTranslatableInline, FilterSystemMessages, RefOnlyBulletListTransform,
UnreferencedFootnotesDetector, SphinxSmartQuotes, ManpageLink,
SphinxDomains, DoctreeReadEvent,
SphinxDomains, DoctreeReadEvent, UIDTransform,
] # type: List[Transform]
def __init__(self, app, *args, **kwargs):

View File

@@ -9,6 +9,7 @@
:copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
import warnings
from itertools import product
from operator import itemgetter
from uuid import uuid4
@@ -17,6 +18,7 @@ from six import iteritems
from six.moves import cPickle as pickle
from six.moves import range, zip_longest
from sphinx.deprecation import RemovedInSphinx30Warning
from sphinx.transforms import SphinxTransform
if False:
@@ -155,12 +157,15 @@ def levenshtein_distance(a, b):
class UIDTransform(SphinxTransform):
"""Add UIDs to doctree for versioning."""
default_priority = 100
default_priority = 880
def apply(self):
# type: () -> None
env = self.env
old_doctree = None
if not env.versioning_condition:
return
if env.versioning_compare:
# get old doctree
try:
@@ -180,5 +185,7 @@ class UIDTransform(SphinxTransform):
def prepare(document):
# type: (nodes.Node) -> None
"""Simple wrapper for UIDTransform."""
warnings.warn('versioning.prepare() is deprecated. Use UIDTransform instead.',
RemovedInSphinx30Warning)
transform = UIDTransform(document)
transform.apply()