Skip to content
Snippets Groups Projects
Commit c0b843d5 authored by Corné Lukken's avatar Corné Lukken
Browse files

Backport sphinx documentation to binary wheel package

parent cf98b809
Branches
No related tags found
1 merge request!2Backport sphinx documentation to binary wheel package
Showing
with 188 additions and 13 deletions
......@@ -28,6 +28,14 @@ default:
- python -m pip install --upgrade pip
- pip install --upgrade tox twine
# Override artifact directories
package_docs:
stage: package
artifacts:
expire_in: 1w
paths:
- my_awesome_app/docs/build/*
# override package files before script
package_files:
before_script:
......
FROM python:3.11
RUN python -m pip install --upgrade pip
RUN pip install --upgrade cookiecutter tox twine
RUN pip install --upgrade cookiecutter tox twine cibuildwheel==2.13.1 cookiecutter
RUN curl -sSL https://get.docker.com/ | sh
......@@ -79,26 +79,24 @@ run_unit_tests_coverage:
package_files:
stage: package
image: python:3.8
# image: python:3.8
artifacts:
expire_in: 1w
paths:
- dist/*
script:
- curl -sSL https://get.docker.com/ | sh
- python -m pip install cibuildwheel==2.13.1 cookiecutter
# - curl -sSL https://get.docker.com/ | sh
# - python -m pip install cibuildwheel==2.13.1 cookiecutter
- cibuildwheel --platform linux --output-dir dist
package_docs:
stage: package
allow_failure: true
artifacts:
expire_in: 1w
paths:
- docs/* # update path to match the dest dir for documentation
- docs/build/*
script:
- echo "build and collect docs"
- exit 1
- tox -e docs
run_integration_tests:
stage: integration
......
FROM python:3.11
RUN python -m pip install --upgrade pip
RUN pip install --upgrade tox twine
RUN pip install --upgrade tox twine cibuildwheel==2.13.1
#!/bin/sh
FILE_DIR=$(dirname -- "$(readlink -f -- "${0}")")
echo "Cleaning.. ${FILE_DIR}/source/source_documentation/*"
for f in "${FILE_DIR}"/source/source_documentation/*
do
case $f in
*/index.rst) true;;
*) echo "Removing.. ${f}"; rm "${f}";;
esac
done
sphinx!=1.6.6,!=1.6.7,>=1.6.5 # BSD
sphinx-rtd-theme>=0.4.3 #MIT
sphinxcontrib-apidoc>=0.3.0 #BSD
myst-parser>=2.0 # MIT
docutils>=0.17 # BSD
# Copyright (C) 2023 ASTRON (Netherlands Institute for Radio Astronomy)
# SPDX-License-Identifier: Apache-2.0
import os
from {{cookiecutter.project_slug}} import __version__
# -- 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.ext.viewcode",
"sphinxcontrib.apidoc",
"sphinx_rtd_theme",
"myst_parser"
]
# Assumes tox is used to call sphinx-build
project_root_directory = os.getcwd()
apidoc_module_dir = "../../src"
apidoc_output_dir = "source_documentation"
apidoc_excluded_paths = []
apidoc_separate_modules = True
apidoc_toc_file = False
# This should include private methods but does not work
# https://github.com/sphinx-contrib/apidoc/issues/14
apidoc_extra_args = ["--private"]
# The suffix of source filenames.
source_suffix = [".rst"]
# The master toctree document.
master_doc = "index"
# General information about the project.
project = "{{cookiecutter.project_name}}"
copyright = "2023, ASTRON"
# openstackdocstheme options
repository_name = "{{cookiecutter.project_url}}"
bug_project = "none"
bug_tag = ""
html_last_updated_fmt = "%Y-%m-%d %H:%M"
# If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True
version = __version__
modindex_common_prefix = ["{{cookiecutter.project_slug}}."]
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
add_module_names = True
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = "sphinx"
# -- Options for HTML output --------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
# html_theme_path = ["."]
html_theme = "sphinx_rtd_theme"
html_static_path = ["static"]
html_css_files = [
"css/custom.css",
]
# Output file base name for HTML help builder.
htmlhelp_basename = "%sdoc" % project
# Conf.py variables exported to sphinx rst files access using |NAME|
variables_to_export = [
"project",
"copyright",
"version",
]
# Write to rst_epilog to export `variables_to_export` extract using `locals()`
# https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-rst_epilog
frozen_locals = dict(locals())
rst_epilog = "\n".join(
map(
lambda x: f".. |{x}| replace:: {frozen_locals[x]}", # noqa: F821
variables_to_export,
)
)
# Pep is not able to determine that frozen_locals always exists so noqa
del frozen_locals
====================================================
Welcome to the documentation of {{cookiecutter.project_name}}
====================================================
..
To define more variables see rst_epilog generation in conf.py
Documentation for version: |version|
Contents:
.. toctree::
:maxdepth: 2
readme
source_documentation/index
.. include:: ../../README.md
:parser: myst_parser.sphinx_
Source code documentation
=========================
.. toctree::
:maxdepth: 3
{{cookiecutter.project_slug}}
.orange { color: #c65d09; }
.green { color: #5dc609; }
.yellow { color: #c6c609; }
.bolditalic {
font-weight: bold;
font-style: italic;
}
.rst-content code, .rst-content tt, code {
white-space: break-spaces;
}
......@@ -47,6 +47,8 @@ archs = ["AMD64", "x86"]
[tool.pylint]
ignore = "_version.py"
# This does nothing until the issue below is resolved:
# https://github.com/PyCQA/flake8/issues/234
[tool.flake8]
max-line-length = 88
extend-ignore = ["E203"]
......
......@@ -3,4 +3,4 @@
def greeter():
"""Prints a nice message"""
print("Hello World!")
print("Hello World!, test line over 80 but not 88 characters on a single line")
......@@ -31,15 +31,30 @@ usedevelop = False
envdir = {toxworkdir}/linting
commands =
pep8: {envpython} -m flake8 --version
pep8: {envpython} -m flake8 src tests
pep8: {envpython} -m flake8 --exclude=_version.py --max-line-length 88 --extend-ignore=E203 src tests
black: {envpython} -m black --version
black: {envpython} -m black --check --diff src tests
pylint: {envpython} -m pylint --version
pylint: {envpython} -m pylint src tests
format: {envpython} -m autopep8 -v -aa --in-place --recursive src
format: {envpython} -m autopep8 -v -aa --in-place --recursive tests
format: {envpython} -m autopep8 -v --max-line-length 88 -aa --in-place --recursive src
format: {envpython} -m autopep8 -v --max-line-length 88 -aa --in-place --recursive tests
format: {envpython} -m black -v src tests
[testenv:docs]
allowlist_externals =
sh
; unset LC_ALL / LANGUAGE from testenv, would fail sphinx otherwise
setenv =
PYTHONWARNINGS=default::DeprecationWarning
DYNAMIC_VERSION_SOURCE={toxinidir}
deps =
-r{toxinidir}/requirements.txt
-r{toxinidir}/docs/requirements.txt
changedir = {toxinidir}
commands =
sh docs/cleanup.sh
sphinx-build -b html docs/source docs/build/html
[testenv:{build-local,build-ci-linux}]
deps =
-r{toxinidir}/tests/requirements.txt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment