From 432cfaaf996be38869a63a26bbcea29300aff5cf Mon Sep 17 00:00:00 2001 From: Ondřej Nosek Date: Mar 31 2026 23:57:41 +0000 Subject: docs: modernize Sphinx conf.py Replace 2017 sphinx-quickstart boilerplate with minimal modern config. Removes unused LaTeX, man page, and Texinfo output sections. Keeps rpkg-specific features: autodoc, sphinx_rtd_theme, and man_pages JSON loading. Also update Makefile to use sphinx-build instead of sphinx-build-3. Inspired-by: https://pagure.io/pungi/pull-request/1899 Assisted-by: Claude Sonnet 4.5 Signed-off-by: Ondřej Nosek --- diff --git a/doc/Makefile b/doc/Makefile index e6a620d..bb84915 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -2,7 +2,7 @@ # # You can set these variables from the command line. -SPHINXBUILD = sphinx-build-3 +SPHINXBUILD ?= sphinx-build SPHINXPROJ = rpkg SOURCEDIR = source BUILDDIR = build diff --git a/doc/source/conf.py b/doc/source/conf.py index 93d56fc..6ee8fc6 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,178 +1,49 @@ -# -*- coding: utf-8 -*- +# Configuration file for the Sphinx documentation builder. # -# rpkg documentation build configuration file, created by -# sphinx-quickstart on Tue Dec 26 21:06:01 2017. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# import datetime +import json import os import sys +# Add module to path for autodoc sys.path.insert(0, os.path.abspath('../..')) sys.path.insert(0, os.path.abspath('.')) -# -- General configuration ------------------------------------------------ +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' +project = "rpkg" +copyright = f"{datetime.date.today().year}, rpkg team" +author = "rpkg team" +release = "1.69" + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx_rtd_theme', ] -# Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'rpkg' -copyright = u'{0}, rpkg team'.format(datetime.date.today().year) -author = u'rpkg team' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = u'1.69' -# The full version, including alpha/beta/rc tags. -release = u'1.69' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'en' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path exclude_patterns = [] -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# html_theme = 'sphinx_rtd_theme' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# This is required for the alabaster theme -# refs: http://alabaster.readthedocs.io/en/latest/installation.html#sidebars -html_sidebars = { - '**': [ - 'globaltoc.html', - 'relations.html', # needs 'show_related': True theme option to display - 'searchbox.html', - ] -} - - -# -- Options for HTMLHelp output ------------------------------------------ - -# Output file base name for HTML help builder. -htmlhelp_basename = 'rpkgdoc' - - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} +# -- Options for manual page output ------------------------------------------ -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'rpkg.tex', u'rpkg Documentation', - u'rpkg team', 'manual'), -] - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -# # Man pages are generated from registered commands in each register_* method. -# Script generate_man_pages.py must run before `make man'. - +# Script generate_commands_docs.py must run before `make man`. if os.path.exists('man_pages.json'): - import json with open('man_pages.json', 'r') as f: man_pages = json.load(f) [man_info.insert(3, [author]) for man_info in man_pages] else: man_pages = [] - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'rpkg', u'rpkg Documentation', - author, 'rpkg', 'One line description of project.', - 'Miscellaneous'), -]