Skip to content

Commit 9cc7088

Browse files
authored
Merge branch 'isce-framework:develop' into develop
2 parents 5922bbf + 5b2d6f6 commit 9cc7088

File tree

26 files changed

+983
-141
lines changed

26 files changed

+983
-141
lines changed

.github/workflows/build-and-run.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,17 @@ jobs:
4949
label: Minimum Python supported
5050
extra-specs: |
5151
python=3.9
52+
- deps:
53+
label: Documentation
54+
extra-specs: >-
55+
doxygen
56+
mkdocs
57+
mkdocs-material
58+
pdoc
59+
pymdown-extensions
60+
# Build with CUDA so the Python CUDA extension is documented,
61+
# but don't try to run the tests since we're on a CPU-only builder.
62+
extra-cmake-args: -DWITH_CUDA=ON
5263

5364
name: Build And Test - ${{ matrix.os.label }} ${{ matrix.deps.label }} ${{ matrix.build-type }}
5465
runs-on: ${{ matrix.os.runner || 'ubuntu-latest' }}
@@ -75,6 +86,11 @@ jobs:
7586
create-args: >-
7687
${{ env.extra-specs }}
7788
89+
- name: Install CUDA Toolkit
90+
if: matrix.deps.label == 'Documentation'
91+
run: |
92+
micromamba install -c nvidia cuda
93+
7894
# Fix missing conda command on macOS
7995
- name: macOS conda command fixup
8096
if: runner.os == 'macOS'
@@ -98,6 +114,7 @@ jobs:
98114
-DCMAKE_BUILD_TYPE=${{ env.build-type }} \
99115
-DCMAKE_INSTALL_PREFIX=$ISCE3_PREFIX \
100116
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
117+
${{ matrix.extra-cmake-args }} \
101118
.
102119
103120
# Build the project
@@ -125,7 +142,28 @@ jobs:
125142
126143
# Run ctest on the project with the intended test exclusions for this run
127144
- name: Test Project
145+
if: matrix.deps.label != 'Documentation'
128146
run: |
129147
cd build
130148
export GDAL_MEM_ENABLE_OPEN=YES
131149
ctest --output-on-failure ${{ env.ctest-exclude }}
150+
151+
- name: Build documentation
152+
if: matrix.deps.label == 'Documentation'
153+
run: |
154+
mkdocs build -d build/docs-output
155+
156+
# XXX Manually create doxygen output dir, why doesn't CREATE_SUBDIRS in the config work?
157+
mkdir -p build/docs-output/api/cxx/
158+
159+
doxygen build/doc/doxygen/Doxyfile
160+
export PYTHONPATH="$PYTHONPATH:$ISCE3_PREFIX/packages"
161+
162+
pdoc -o build/docs-output/api/python --math install/packages/isce3
163+
164+
- name: Deploy documentation
165+
if: matrix.deps.label == 'Documentation' && github.ref == 'refs/heads/develop'
166+
uses: peaceiris/actions-gh-pages@v4
167+
with:
168+
github_token: ${{ secrets.GITHUB_TOKEN }}
169+
publish_dir: ./build/docs-output

.mm/isce3.cxx.tests

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# the C++ tests
55
isce3.cxx.tests.stem := cxx/isce3
66
isce3.cxx.tests.prerequisites := isce3.lib
7-
isce3.cxx.tests.extern := isce3.lib gdal hdf5 mpi eigen fftw pyre gtest
7+
isce3.cxx.tests.extern := isce3.lib gdal hdf5 eigen fftw pyre gtest
88

99
#if there is cuda
1010
ifdef cuda.dir

.mm/isce3.ext

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ isce3.ext.stem := isce3
77
isce3.ext.pkg := isce3.pkg
88
isce3.ext.wraps := isce3.lib
99
isce3.ext.capsule :=
10-
isce3.ext.extern := gdal hdf5 mpi eigen fftw pyre pybind11 python
10+
isce3.ext.extern := gdal hdf5 eigen fftw pyre pybind11 python
1111

1212
# if there is cuda
1313
ifdef cuda.dir

.mm/isce3.lib

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# the isce3 lib
55
isce3.lib.root := cxx/isce3/
66
isce3.lib.stem := isce3
7-
isce3.lib.extern := gdal hdf5 mpi eigen fftw pyre
7+
isce3.lib.extern := gdal hdf5 eigen fftw pyre
88
# if we have cuda
99
ifdef cuda.dir
1010
# add it to the pile of external dependencies

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ https://isce-framework.github.io/isce3/tutorial_tutorial.html)
3737
- [Python API Reference](
3838
https://isce-framework.github.io/isce3/sphinx/html/index.html)
3939
| [C++ API Reference](
40-
https://isce-framework.github.io/isce3/annotated.html)
40+
https://isce-framework.github.io/isce3/api/cxx/annotated.html)
4141
- [Examples](https://github.com/isce-framework/isce3/tree/develop/share)
4242

4343
## Contributing

doc/doxygen/Doxyfile.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,9 @@ PROJECT_NUMBER = @PROJECT_VERSION@
3030
# If a relative path is entered, it will be relative to the location
3131
# where doxygen was started. If left blank the current directory will be used.
3232

33-
OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/docs-output/
33+
OUTPUT_DIRECTORY = @PROJECT_BINARY_DIR@/docs-output/api/cxx
34+
35+
CREATE_SUBDIRS = YES
3436

3537
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
3638
# documentation generated by doxygen is written. Doxygen will use this

doc/doxygen/DoxygenLayout.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
<tab type="user" url="http://trac.osgeo.org/gdal/wiki/DownloadSource" title="Source"/>
2828
<tab type="user" url="http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries" title="Binaries"/>
2929
</tab> -->
30-
<tab type="user" url="sphinx/html/index.html" title="Python classes"/>
31-
<tab type="user" url="https://github-fn.jpl.nasa.gov/isce-3/isce/issues/" title="Issue Tracker"/>
30+
<tab type="user" url="/isce3/api/python" title="Python API"/>
31+
<tab type="user" url="https://github.com/isce-framework/isce3/issues" title="Issue Tracker"/>
3232
<!-- end ISCE customization -->
3333
</navindex>
3434
<!-- Layout definition for a class page -->

doc/doxygen/howtodoc.dox

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*! \page howtodoc How to document code in ISCE as a developer?
1+
/*! \page howtodoc How to document code in ISCE3 as a developer?
22

33
\tableofcontents
44

@@ -115,7 +115,7 @@ Doxygen interprets CUDA code in the same manner as C/C++. Use the same style gui
115115

116116
\section docpy Python Documentation
117117

118-
Developers are expected to document their functions using <a href="http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html">Google Style docstrings</a>. ISCE uses sphinx with the autodoc, autosummary and napoleon extensions. We will base our examples on the code from pyEllipsoid.pyx file in the extensions folder of the source tree.
118+
Developers are expected to document their functions using <a href="http://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html">Google Style docstrings</a>. ISCE3 uses sphinx with the autodoc, autosummary and napoleon extensions. We will base our examples on the code from pyEllipsoid.pyx file in the extensions folder of the source tree.
119119

120120

121121
\subsection docpyfunc Functions

mkdocs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ theme:
44
nav:
55
- Home: index.md
66
- Installation: buildinstall.md
7-
- Python API: api/python/isce3/core.html
8-
- C++ API (Unstable): isce3/annotated.html
7+
- Python API: api/python/isce3.html
8+
- C++ API (Unstable): api/cxx
99
- Maintainer Documentation:
1010
- Release Procedure: maintainer/release-procedure.md
1111
- Docker Image Updates: maintainer/docker-image-updates.md

python/packages/isce3/core/types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def is_complex32(dataset: h5py.Dataset) -> bool:
2525
try:
2626
dtype = dataset.dtype
2727
except TypeError as e:
28+
import re
2829
regex = re.compile(r"^data type '([<>|=])?c4' not understood$")
2930
errmsg = str(e)
3031
if regex.match(errmsg):

0 commit comments

Comments
 (0)