The Sphinx documentation generator
Go to file
James Addison 267fe9afa8
Tests: explicitly unset SOURCE_DATE_EPOCH during 'test_html_multi_line_copyright' (#13224)
Sphinx's copyright substitution currently allows years identified as
the current year to be downgraded to previous years when
``SOURCE_DATE_EPOCH`` is configured, to assist reproducibility [1] of
documentation builds.

However, we have a test case ``test_html_multi_line_copyright``,
written in 2024, that mentioned a future year (2025).

Now that we have reached 2025, it is eligible for substitution when
``SOURCE_DATE_EPOCH`` is configured.  Many buildsystems, such as those
used by Debian and Fedora, choose the most-recent packaging/commit
timestamp to use as `SOURCE_DATE_EPOCH`'s timestamp, since those
correspond sensibly to a time-of-build.

However, for the Sphinx 8.1.3 release including the updated
substitution logic, the year-of-release/commit was 2024. Thus, if a
commit/packaging date from that year is chosen, and
``SOURCE_DATE_EPOCH`` is configured when the unit tests run, the
``test_html_multi_line_copyright`` test will fail.

The fix suggested here is to explicitly unset ``SOURCE_DATE_EPOCH``
within ``test_html_multi_line_copyright``.

[1]: https://www.reproducible-builds.org/

Authored-by: Colin Watson <cjwatson@debian.org>
Co-authored-by: Colin Watson <cjwatson@debian.org>
Authored-by: James Addison <55152140+jayaddison@users.noreply.github.com>
Co-authored-by: James Addison <55152140+jayaddison@users.noreply.github.com>
2025-01-10 11:21:11 +00:00
.github Use script metadata in utils/convert_attestations.py 2025-01-04 09:11:33 +00:00
doc Further minor copyediting of the 'extension metadata' section 2025-01-10 01:26:17 +00:00
sphinx apidoc: Move ApidocOptions to `sphinx.ext.apidoc._shared` 2025-01-10 02:12:20 +00:00
tests Tests: explicitly unset SOURCE_DATE_EPOCH during 'test_html_multi_line_copyright' (#13224) 2025-01-10 11:21:11 +00:00
utils Remove unneeded content from within `with` statements 2025-01-04 09:11:33 +00:00
.codecov.yml Revert "Enable patch status check for Codecov" 2020-03-15 11:09:06 +09:00
.git-blame-ignore-revs Add 2024 copyright year update to `.git-blame-ignore-revs` 2024-01-16 22:15:22 +00:00
.gitattributes Add .gitattributes 2025-01-06 21:55:29 +00:00
.gitignore [tests] JavaScript: refactor test fixtures (#12102) 2024-06-13 13:07:46 +02:00
.mailmap Update .mailmap 2024-07-30 18:31:46 +01:00
.readthedocs.yml RTD builder: add graphviz depedendency (#11040) 2022-12-20 12:30:59 +00:00
.ruff.toml Run Ruff on `tests/roots/` 2025-01-03 01:33:14 +00:00
AUTHORS.rst Viewcode: Fix issue with import paths that differ from the directory structure (#13195) 2025-01-05 10:43:57 +00:00
bindep.txt LaTeX: Revamp the styling of all admonitions (#12508) 2024-07-13 17:33:22 +01:00
CHANGES.rst Tests: explicitly unset SOURCE_DATE_EPOCH during 'test_html_multi_line_copyright' (#13224) 2025-01-10 11:21:11 +00:00
CODE_OF_CONDUCT.rst Adorn top-level files with a '.rst' suffix 2023-09-14 11:08:17 +01:00
CONTRIBUTING.rst Minor typo in the contributing info 2020-12-16 12:09:17 -05:00
EXAMPLES.rst Update the 'Projects using Sphinx' page (#12988) 2024-10-08 23:07:45 +01:00
LICENSE.rst Happy New Year! 2025-01-02 20:53:47 +00:00
Makefile Cease using flake8 (#13204) 2025-01-02 21:01:20 +00:00
package-lock.json Bump the npm group (#13042) 2024-10-19 20:30:30 +01:00
package.json Migrate JavaScript tests from Karma to the Jasmine framework (#12754) 2024-08-10 00:18:27 +01:00
pyproject.toml Bump types-pygments to 2.19.0.20250107 (#13219) 2025-01-07 05:05:02 +00:00
README.rst Use proper Pygments lexers 2024-07-24 15:21:25 +01:00
tox.ini Cease using flake8 (#13204) 2025-01-02 21:01:20 +00:00

========
 Sphinx
========

.. image:: https://img.shields.io/pypi/v/sphinx.svg
   :target: https://pypi.org/project/Sphinx/
   :alt: Package on PyPI

.. image:: https://github.com/sphinx-doc/sphinx/actions/workflows/main.yml/badge.svg
   :target: https://github.com/sphinx-doc/sphinx/actions/workflows/main.yml
   :alt: Build Status

.. image:: https://readthedocs.org/projects/sphinx/badge/?version=master
   :target: https://www.sphinx-doc.org/
   :alt: Documentation Status

.. image:: https://img.shields.io/badge/License-BSD%202--Clause-blue.svg
   :target: https://opensource.org/licenses/BSD-2-Clause
   :alt: BSD 2 Clause

**Sphinx makes it easy to create intelligent and beautiful documentation.**

Sphinx uses reStructuredText as its markup language, and many of its strengths
come from the power and straightforwardness of reStructuredText and its parsing
and translating suite, the Docutils.

Features
========

* **Output formats**: HTML, PDF, plain text, EPUB, TeX, manual pages, and more
* **Extensive cross-references**: semantic markup and automatic links
  for functions, classes, glossary terms and similar pieces of information
* **Hierarchical structure**: easy definition of a document tree, with automatic
  links to siblings, parents and children
* **Automatic indices**: general index as well as a module index
* **Code highlighting**: automatic highlighting using the Pygments highlighter
* **Templating**: Flexible HTML output using the Jinja 2 templating engine
* **Extension ecosystem**: Many extensions are available, for example for
  automatic function documentation or working with Jupyter notebooks.
* **Language Support**: Python, C, C++, JavaScript, mathematics, and many other
  languages through extensions.

For more information, refer to `the documentation`_.

Installation
============

The following command installs Sphinx from the `Python Package Index`_. You will
need a working installation of Python and pip.

.. code-block:: shell

   pip install -U sphinx

Contributing
============

We appreciate all contributions! Refer to `the contributors guide`_ for
information.

.. _the documentation: https://www.sphinx-doc.org/
.. _the contributors guide: https://www.sphinx-doc.org/en/master/internals/contributing.html
.. _Python Package Index: https://pypi.org/project/Sphinx/