mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Support PEP-440 version spec for developers.
This commit is contained in:
25
README.rst
25
README.rst
@@ -8,10 +8,29 @@ This is the Sphinx documentation generator, see http://sphinx-doc.org/.
|
||||
Installing
|
||||
==========
|
||||
|
||||
Use ``setup.py``::
|
||||
Install from PyPI to use stable version::
|
||||
|
||||
python setup.py build
|
||||
sudo python setup.py install
|
||||
pip install -U sphinx
|
||||
|
||||
Install from PyPI to use beta version::
|
||||
|
||||
pip install -U --pre sphinx
|
||||
|
||||
Install from newest dev version in stable branch::
|
||||
|
||||
pip install git+https://github.com/sphinx-doc/sphinx@stable
|
||||
|
||||
Install from newest dev version in master branch::
|
||||
|
||||
pip install git+https://github.com/sphinx-doc/sphinx
|
||||
|
||||
Install from cloned source::
|
||||
|
||||
pip install .
|
||||
|
||||
Install from cloned source as editable::
|
||||
|
||||
pip install -e .
|
||||
|
||||
|
||||
Reading the docs
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[egg_info]
|
||||
tag_build = dev
|
||||
tag_build = .dev
|
||||
tag_date = true
|
||||
|
||||
[aliases]
|
||||
|
||||
@@ -16,18 +16,22 @@ import sys
|
||||
from os import path
|
||||
|
||||
__version__ = '1.3+'
|
||||
__released__ = '1.3.1' # used when Sphinx builds its own docs
|
||||
__released__ = '1.3+' # used when Sphinx builds its own docs
|
||||
|
||||
# version info for better programmatic use
|
||||
# possible values for 3rd element: 'alpha', 'beta', 'rc', 'final'
|
||||
# 'final' has 0 as the last element
|
||||
version_info = (1, 3, 1, 'final', 0)
|
||||
version_info = (1, 3, 1, 'beta', 1)
|
||||
|
||||
package_dir = path.abspath(path.dirname(__file__))
|
||||
|
||||
if '+' in __version__ or 'pre' in __version__:
|
||||
__display_version__ = __version__ # used for command line version
|
||||
if __version__.endswith('+'):
|
||||
# try to find out the changeset hash if checked out from hg, and append
|
||||
# it to __version__ (since we use this value from setup.py, it gets
|
||||
# automatically propagated to an installed copy as well)
|
||||
__display_version__ = __version__
|
||||
__version__ = __version__[:-1] # remove '+' for PEP-440 version spec.
|
||||
try:
|
||||
import subprocess
|
||||
p = subprocess.Popen(['git', 'show', '-s', '--pretty=format:%h',
|
||||
@@ -35,7 +39,7 @@ if '+' in __version__ or 'pre' in __version__:
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
out, err = p.communicate()
|
||||
if out:
|
||||
__version__ += '/' + out.decode().strip()
|
||||
__display_version__ += '/' + out.decode().strip()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ import optparse
|
||||
from os import path
|
||||
|
||||
from sphinx.util.osutil import walk
|
||||
from sphinx import __version__
|
||||
from sphinx import __display_version__
|
||||
|
||||
# automodule options
|
||||
if 'SPHINX_APIDOC_OPTIONS' in os.environ:
|
||||
@@ -318,7 +318,7 @@ Note: By default this script will not overwrite already created files.""")
|
||||
(opts, args) = parser.parse_args(argv[1:])
|
||||
|
||||
if opts.show_version:
|
||||
print('Sphinx (sphinx-apidoc) %s' % __version__)
|
||||
print('Sphinx (sphinx-apidoc) %s' % __display_version__)
|
||||
return 0
|
||||
|
||||
if not args:
|
||||
|
||||
@@ -111,7 +111,7 @@ class Sphinx(object):
|
||||
self.messagelog = deque(maxlen=10)
|
||||
|
||||
# say hello to the world
|
||||
self.info(bold('Running Sphinx v%s' % sphinx.__version__))
|
||||
self.info(bold('Running Sphinx v%s' % sphinx.__display_version__))
|
||||
|
||||
# status code for command-line application
|
||||
self.statuscode = 0
|
||||
@@ -158,7 +158,7 @@ class Sphinx(object):
|
||||
|
||||
# check the Sphinx version if requested
|
||||
if self.config.needs_sphinx and \
|
||||
self.config.needs_sphinx > sphinx.__version__[:3]:
|
||||
self.config.needs_sphinx > sphinx.__display_version__[:3]:
|
||||
raise VersionRequirementError(
|
||||
'This project needs at least Sphinx v%s and therefore cannot '
|
||||
'be built with this version.' % self.config.needs_sphinx)
|
||||
@@ -453,7 +453,7 @@ class Sphinx(object):
|
||||
|
||||
def require_sphinx(self, version):
|
||||
# check the Sphinx version if requested
|
||||
if version > sphinx.__version__[:3]:
|
||||
if version > sphinx.__display_version__[:3]:
|
||||
raise VersionRequirementError(version)
|
||||
|
||||
def import_object(self, objname, source=None):
|
||||
|
||||
@@ -26,7 +26,7 @@ from docutils.utils import new_document
|
||||
from docutils.frontend import OptionParser
|
||||
from docutils.readers.doctree import Reader as DoctreeReader
|
||||
|
||||
from sphinx import package_dir, __version__
|
||||
from sphinx import package_dir, __display_version__
|
||||
from sphinx.util import jsonimpl, copy_static_entry
|
||||
from sphinx.util.osutil import SEP, os_path, relative_uri, ensuredir, \
|
||||
movefile, ustrftime, copyfile
|
||||
@@ -343,7 +343,7 @@ class StandaloneHTMLBuilder(Builder):
|
||||
script_files = self.script_files,
|
||||
language = self.config.language,
|
||||
css_files = self.css_files,
|
||||
sphinx_version = __version__,
|
||||
sphinx_version = __display_version__,
|
||||
style = stylename,
|
||||
rellinks = rellinks,
|
||||
builder = self.name,
|
||||
|
||||
@@ -18,7 +18,7 @@ from os import path
|
||||
from six import text_type, binary_type
|
||||
from docutils.utils import SystemMessage
|
||||
|
||||
from sphinx import __version__
|
||||
from sphinx import __display_version__
|
||||
from sphinx.errors import SphinxError
|
||||
from sphinx.application import Sphinx
|
||||
from sphinx.util import Tee, format_exception_cut_frames, save_traceback
|
||||
@@ -40,7 +40,7 @@ Filename arguments:
|
||||
without -a and without filenames, write new and changed files.
|
||||
with -a, write all files.
|
||||
with filenames, write these.
|
||||
""" % __version__
|
||||
""" % __display_version__
|
||||
|
||||
EPILOG = """\
|
||||
For more information, visit <http://sphinx-doc.org/>.
|
||||
@@ -131,7 +131,7 @@ def main(argv):
|
||||
|
||||
# handle basic options
|
||||
if opts.version:
|
||||
print('Sphinx (sphinx-build) %s' % __version__)
|
||||
print('Sphinx (sphinx-build) %s' % __display_version__)
|
||||
return 0
|
||||
|
||||
# get paths (first and second positional argument)
|
||||
|
||||
@@ -1525,7 +1525,7 @@ def setup(app):
|
||||
app.add_event('autodoc-process-signature')
|
||||
app.add_event('autodoc-skip-member')
|
||||
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
|
||||
class testcls:
|
||||
|
||||
@@ -584,4 +584,4 @@ def setup(app):
|
||||
app.connect('doctree-read', process_autosummary_toc)
|
||||
app.connect('builder-inited', process_generate_options)
|
||||
app.add_config_value('autosummary_generate', [], True)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -266,4 +266,4 @@ def setup(app):
|
||||
app.add_config_value('coverage_ignore_c_items', {}, False)
|
||||
app.add_config_value('coverage_write_headline', True, False)
|
||||
app.add_config_value('coverage_skip_undoc_in_source', False, False)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -444,4 +444,4 @@ def setup(app):
|
||||
app.add_config_value('doctest_test_doctest_blocks', 'default', False)
|
||||
app.add_config_value('doctest_global_setup', '', False)
|
||||
app.add_config_value('doctest_global_cleanup', '', False)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -61,4 +61,4 @@ def setup_link_roles(app):
|
||||
def setup(app):
|
||||
app.add_config_value('extlinks', {}, 'env')
|
||||
app.connect('builder-inited', setup_link_roles)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -317,4 +317,4 @@ def setup(app):
|
||||
app.add_config_value('graphviz_dot', 'dot', 'html')
|
||||
app.add_config_value('graphviz_dot_args', [], 'html')
|
||||
app.add_config_value('graphviz_output_format', 'png', 'html')
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -75,4 +75,4 @@ def setup(app):
|
||||
app.add_node(ifconfig)
|
||||
app.add_directive('ifconfig', IfConfig)
|
||||
app.connect('doctree-resolved', process_ifconfig_nodes)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -408,4 +408,4 @@ def setup(app):
|
||||
app.add_config_value('inheritance_graph_attrs', {}, False),
|
||||
app.add_config_value('inheritance_node_attrs', {}, False),
|
||||
app.add_config_value('inheritance_edge_attrs', {}, False),
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -282,4 +282,4 @@ def setup(app):
|
||||
app.add_config_value('intersphinx_cache_limit', 5, False)
|
||||
app.connect('missing-reference', missing_reference)
|
||||
app.connect('builder-inited', load_mappings)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -59,4 +59,4 @@ def setup(app):
|
||||
mathbase_setup(app, (html_visit_math, None), (html_visit_displaymath, None))
|
||||
app.add_config_value('jsmath_path', '', False)
|
||||
app.connect('builder-inited', builder_inited)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -74,4 +74,4 @@ def doctree_read(app, doctree):
|
||||
def setup(app):
|
||||
app.connect('doctree-read', doctree_read)
|
||||
app.add_config_value('linkcode_resolve', None, '')
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -71,4 +71,4 @@ def setup(app):
|
||||
app.add_config_value('mathjax_inline', [r'\(', r'\)'], 'html')
|
||||
app.add_config_value('mathjax_display', [r'\[', r'\]'], 'html')
|
||||
app.connect('builder-inited', builder_inited)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -256,7 +256,7 @@ def setup(app):
|
||||
|
||||
for name, (default, rebuild) in iteritems(Config._config_values):
|
||||
app.add_config_value(name, default, rebuild)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
|
||||
def _process_docstring(app, what, name, obj, options, lines):
|
||||
|
||||
@@ -247,4 +247,4 @@ def setup(app):
|
||||
app.add_config_value('pngmath_latex_preamble', '', 'html')
|
||||
app.add_config_value('pngmath_add_tooltips', True, 'html')
|
||||
app.connect('build-finished', cleanup_tempdir)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -188,4 +188,4 @@ def setup(app):
|
||||
app.connect('doctree-resolved', process_todo_nodes)
|
||||
app.connect('env-purge-doc', purge_todos)
|
||||
app.connect('env-merge-info', merge_info)
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -217,4 +217,4 @@ def setup(app):
|
||||
app.connect('missing-reference', missing_reference)
|
||||
# app.add_config_value('viewcode_include_modules', [], 'env')
|
||||
# app.add_config_value('viewcode_exclude_modules', [], 'env')
|
||||
return {'version': sphinx.__version__, 'parallel_read_safe': True}
|
||||
return {'version': sphinx.__display_version__, 'parallel_read_safe': True}
|
||||
|
||||
@@ -78,7 +78,7 @@ class Make(object):
|
||||
shutil.rmtree(self.builddir_join(item))
|
||||
|
||||
def build_help(self):
|
||||
print(bold("Sphinx v%s" % sphinx.__version__))
|
||||
print(bold("Sphinx v%s" % sphinx.__display_version__))
|
||||
print("Please use `make %s' where %s is one of" % ((blue('target'),)*2))
|
||||
for osname, bname, description in BUILDERS:
|
||||
if not osname or os.name == osname:
|
||||
|
||||
@@ -33,7 +33,7 @@ from six.moves import input
|
||||
from six.moves.urllib.parse import quote as urlquote
|
||||
from docutils.utils import column_width
|
||||
|
||||
from sphinx import __version__
|
||||
from sphinx import __display_version__
|
||||
from sphinx.util.osutil import make_filename
|
||||
from sphinx.util.console import purple, bold, red, turquoise, \
|
||||
nocolor, color_terminal
|
||||
@@ -1135,7 +1135,7 @@ def ask_user(d):
|
||||
* batchfile: make command file
|
||||
"""
|
||||
|
||||
print(bold('Welcome to the Sphinx %s quickstart utility.') % __version__)
|
||||
print(bold('Welcome to the Sphinx %s quickstart utility.') % __display_version__)
|
||||
print('''
|
||||
Please enter values for the following settings (just press Enter to
|
||||
accept a default value, if one is given in brackets).''')
|
||||
@@ -1405,7 +1405,7 @@ def usage(argv, msg=None):
|
||||
USAGE = """\
|
||||
Sphinx v%s
|
||||
Usage: %%prog [options] [projectdir]
|
||||
""" % __version__
|
||||
""" % __display_version__
|
||||
|
||||
EPILOG = """\
|
||||
For more information, visit <http://sphinx-doc.org/>.
|
||||
@@ -1459,7 +1459,7 @@ def main(argv=sys.argv):
|
||||
nocolor()
|
||||
|
||||
parser = optparse.OptionParser(USAGE, epilog=EPILOG,
|
||||
version='Sphinx v%s' % __version__,
|
||||
version='Sphinx v%s' % __display_version__,
|
||||
formatter=MyFormatter())
|
||||
parser.add_option('-q', '--quiet', action='store_true', dest='quiet',
|
||||
default=False,
|
||||
|
||||
@@ -207,7 +207,7 @@ def save_traceback(app):
|
||||
'# %s' % strip_colors(force_decode(s, 'utf-8')).strip()
|
||||
for s in app.messagelog)
|
||||
os.write(fd, (_DEBUG_HEADER %
|
||||
(sphinx.__version__,
|
||||
(sphinx.__display_version__,
|
||||
platform.python_version(),
|
||||
platform.python_implementation(),
|
||||
docutils.__version__, docutils.__version_details__,
|
||||
|
||||
@@ -17,7 +17,7 @@ from six import itervalues
|
||||
from six.moves import range
|
||||
from docutils import nodes, writers
|
||||
|
||||
from sphinx import addnodes, __version__
|
||||
from sphinx import addnodes, __display_version__
|
||||
from sphinx.locale import admonitionlabels, _
|
||||
from sphinx.util import ustrftime
|
||||
from sphinx.writers.latex import collected_footnote
|
||||
@@ -39,7 +39,7 @@ TEMPLATE = """\
|
||||
@setfilename %(filename)s
|
||||
@documentencoding UTF-8
|
||||
@ifinfo
|
||||
@*Generated by Sphinx """ + __version__ + """.@*
|
||||
@*Generated by Sphinx """ + __display_version__ + """.@*
|
||||
@end ifinfo
|
||||
@settitle %(title)s
|
||||
@defindex ge
|
||||
|
||||
@@ -15,7 +15,7 @@ import re
|
||||
from six import PY3, iteritems
|
||||
from six.moves import html_entities
|
||||
|
||||
from sphinx import __version__
|
||||
from sphinx import __display_version__
|
||||
from util import remove_unicode_literals, gen_with_app
|
||||
from etree13 import ElementTree as ET
|
||||
|
||||
@@ -347,7 +347,7 @@ def check_static_entries(outdir):
|
||||
assert (staticdir / 'subdir' / 'foo.css').isfile()
|
||||
# a file from a file entry in html_static_path
|
||||
assert (staticdir / 'templated.css').isfile()
|
||||
assert (staticdir / 'templated.css').text().splitlines()[1] == __version__
|
||||
assert (staticdir / 'templated.css').text().splitlines()[1] == __display_version__
|
||||
# a file from _static, but matches exclude_patterns
|
||||
assert not (staticdir / 'excluded.css').exists()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user