Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ __pycache__/
*.pyc
*.pyo

# Documentation build output
docs/doxygen/
docs/build/

# macOS
.DS_Store
# act (local workflow testing)
Expand Down
28 changes: 28 additions & 0 deletions docs/Doxyfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Doxyfile

# -- Project settings --------------------------------------------------------
PROJECT_NAME = "Phlex"
PROJECT_BRIEF = "A framework for parallel, hierarchical, and layered execution of data-processing algorithms"
QUIET = YES

# -- Input and output directories --------------------------------------------
INPUT = ../phlex ../form
OUTPUT_DIRECTORY = doxygen
Comment on lines +9 to +10
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

INPUT and OUTPUT_DIRECTORY are written as relative paths that only work if Doxygen is invoked from docs/ (e.g., cd docs && doxygen Doxyfile). If someone runs doxygen docs/Doxyfile from the repo root (a common invocation), ../phlex/../form will point outside the repo and the XML will be written to <repo>/doxygen/, which won’t match the Sphinx Breathe path or the .gitignore entries. Consider making these paths robust to the invocation working directory (e.g., repo-root-relative paths) or add a documented wrapper/Makefile target that enforces running from docs/.

Suggested change
INPUT = ../phlex ../form
OUTPUT_DIRECTORY = doxygen
# Paths are relative to the repository root; invoke as: doxygen docs/Doxyfile
INPUT = phlex form
OUTPUT_DIRECTORY = docs/doxygen

Copilot uses AI. Check for mistakes.
RECURSIVE = YES

# -- Output formats ----------------------------------------------------------
GENERATE_HTML = NO
GENERATE_LATEX = NO
GENERATE_XML = YES
XML_OUTPUT = xml

# -- Source code parsing -----------------------------------------------------
EXTRACT_ALL = YES
WARN_IF_UNDOCUMENTED = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
FILE_PATTERNS = *.hpp *.cpp
EXCLUDE_PATTERNS = */detail/*
# Help Doxygen with some of the more complex macros
PREDEFINED = "BOOST_DLL_ALIAS(a,b)=" \
"PHLEX_DETAIL_REGISTER_PLUGIN(...)="
3 changes: 3 additions & 0 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
sphinx>=9.1,<10
breathe>=4.36,<5
sphinx-rtd-theme>=3.1,<4
6 changes: 6 additions & 0 deletions docs/source/api/declared_fold.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declared_fold
==============

.. doxygenclass:: phlex::experimental::declared_fold
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/declared_transform.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declared_transform
===================

.. doxygenclass:: phlex::experimental::declared_transform
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/declared_unfold.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
declared_unfold
================

.. doxygenclass:: phlex::experimental::declared_unfold
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/framework_graph.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
framework_graph
================

.. doxygenclass:: phlex::experimental::framework_graph
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/graph_proxy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
graph_proxy
=============

.. doxygenclass:: phlex::experimental::graph_proxy
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/module_graph_proxy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module_graph_proxy
===================

.. doxygenclass:: phlex::experimental::module_graph_proxy
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/product_store.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
product_store
==============

.. doxygenclass:: phlex::experimental::product_store
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/products.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
products
=========

.. doxygenclass:: phlex::experimental::products
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/registrar.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
registrar
==========

.. doxygenclass:: phlex::experimental::registrar
:members:
:undoc-members:
6 changes: 6 additions & 0 deletions docs/source/api/source_graph_proxy.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
source_graph_proxy
===================

.. doxygenclass:: phlex::experimental::source_graph_proxy
:members:
:undoc-members:
29 changes: 29 additions & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# mypy: ignore-errors
"""Sphinx configuration for Phlex documentation."""

# -- Project information -----------------------------------------------------

project = "Phlex"
copyright = "2025-2026, The Phlex Developers"
author = "The Phlex Developers"
release = "0.1.0"

# -- General configuration ---------------------------------------------------

extensions = [
"breathe",
]

templates_path = ["_templates"]
exclude_patterns = []

# -- Options for HTML output -------------------------------------------------

html_theme = "sphinx_rtd_theme"

# -- Breathe configuration -------------------------------------------------

breathe_projects = {
"Phlex": "../doxygen/xml/",
}
Comment on lines +26 to +28
Copy link

Copilot AI Mar 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

breathe_projects["Phlex"] points to ../doxygen/xml/ relative to docs/source/, which assumes Doxygen writes XML to docs/doxygen/xml. With the current docs/Doxyfile, that location depends on the working directory used when invoking Doxygen, so Sphinx can easily fail to find the XML. Align this path with a Doxygen output location that’s stable (or document/enforce the expected invocation directory).

Copilot uses AI. Check for mistakes.
breathe_default_project = "Phlex"
22 changes: 22 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
.. Phlex documentation master file, created by
sphinx-quickstart on Tue Nov 15 14:29:55 2025.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.

Welcome to Phlex's documentation!
==================================

.. toctree::
:maxdepth: 2
:caption: Contents:

api/module_graph_proxy
api/source_graph_proxy
api/graph_proxy
api/framework_graph
api/registrar
api/declared_transform
api/declared_fold
api/declared_unfold
api/product_store
api/products
Loading