mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
The Sphinx documentation generator
Use the ensuredir() function consistently across Sphinx code to avoid race conditions e.g. when multiple Sphinx instances attempt to create the same output directory. The ensuredir() function that was already present in sphinx.util.osutil correctly catches EEXIST exception that occurs if the specified directory already exists (i.e. it was created between the call to os.path.isdir() and os.makedirs() that follows it). While at it, remove redundant os.path.isdir() calls when they only guarded the os.makedirs() call, and replace mkdir_p() which had pretty much the same purpose, except for being prone to race conditions. I did not modify testing-related code as race conditions mostly affect real applications and not the test environment. Fix #4281: Race conditions when creating output directory |
||
---|---|---|
.circleci | ||
.github | ||
doc | ||
sphinx | ||
tests | ||
utils | ||
.appveyor.yml | ||
.gitignore | ||
.travis.yml | ||
AUTHORS | ||
babel.cfg | ||
CHANGES | ||
CHANGES.old | ||
CONTRIBUTING.rst | ||
EXAMPLES | ||
LICENSE | ||
Makefile | ||
MANIFEST.in | ||
mypy.ini | ||
README.rst | ||
setup.cfg | ||
setup.py | ||
sphinx-apidoc.py | ||
sphinx-autogen.py | ||
sphinx-build.py | ||
sphinx-quickstart.py | ||
test-reqs.txt | ||
tox.ini |
.. image:: https://img.shields.io/pypi/v/sphinx.svg :target: https://pypi.python.org/pypi/Sphinx .. image:: https://readthedocs.org/projects/sphinx/badge/ :target: http://www.sphinx-doc.org/ :alt: Documentation Status .. image:: https://travis-ci.org/sphinx-doc/sphinx.svg?branch=master :target: https://travis-ci.org/sphinx-doc/sphinx ================= README for Sphinx ================= This is the Sphinx documentation generator, see http://www.sphinx-doc.org/. Installing ========== Install from PyPI to use stable version:: 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 . Release signatures ================== Releases are signed with following keys: * `498D6B9E <https://pgp.mit.edu/pks/lookup?op=vindex&search=0x102C2C17498D6B9E>`_ * `5EBA0E07 <https://pgp.mit.edu/pks/lookup?op=vindex&search=0x1425F8CE5EBA0E07>`_ Reading the docs ================ You can read them online at <http://www.sphinx-doc.org/>. Or, after installing:: cd doc make html Then, direct your browser to ``_build/html/index.html``. Testing ======= To run the tests with the interpreter available as ``python``, use:: make test If you want to use a different interpreter, e.g. ``python3``, use:: PYTHON=python3 make test Continuous testing runs on travis: https://travis-ci.org/sphinx-doc/sphinx Contributing ============ See `CONTRIBUTING.rst`__ .. __: CONTRIBUTING.rst