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

Merge branch 'documentation' into 'main'

Backport sphinx documentation to binary wheel package

See merge request !2
parents cf98b809 c0b843d5
No related branches found
No related tags found
1 merge request!2Backport sphinx documentation to binary wheel package
Pipeline #59506 passed with warnings
Pipeline: Python Binary Wheel Package

#59507

    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