From 61671310ad05c71e79bd8da592fc90e507f59b67 Mon Sep 17 00:00:00 2001 From: Sameer Sheorey <41028320+ssheorey@users.noreply.github.com> Date: Thu, 2 Nov 2023 21:33:55 +0530 Subject: [PATCH] Google Bucket hold and docs building fix (#6460) * Put holds on latest artifacts in google bucket to prevent deletion. Minor fixes to docs for typos. * Prevent overwriting pinned JInja2 version during `make install-pip-package`. Update build docs instructions --- .github/workflows/documentation.yml | 4 +++ .github/workflows/macos.yml | 4 +++ .github/workflows/ubuntu-wheel.yml | 4 +++ .github/workflows/windows.yml | 4 +++ README.md | 40 ++++++++++++------------ docs/builddocs.rst | 47 ++++++++++++++++++++--------- docs/getting_started.in.rst | 2 +- util/ci_utils.sh | 9 +++--- 8 files changed, 75 insertions(+), 39 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index d48d5815971..6ee88b1abc1 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -123,6 +123,10 @@ jobs: # Rename docs archive: gsutil mv gs://open3d-docs/${{ github.sha }}_ready.tar.gz \ gs://open3d-docs/${{ github.sha }}.tar.gz + # Set holds on new artifacts, release on old + gsutil retention temp release gs://open3d-releases-master/* + gsutil retention temp set gs://open3d-releases-master/python-wheels/*${GITHUB_SHA:0:7}*.whl + gsutil retention temp set gs://open3d-releases-master/devel/*${GITHUB_SHA:0:7}* else echo "All wheels / docs not available yet." fi diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index bfd53f70547..e24f231f2d6 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -311,6 +311,10 @@ jobs: # Rename docs archive: gsutil mv gs://open3d-docs/${{ github.sha }}_ready.tar.gz \ gs://open3d-docs/${{ github.sha }}.tar.gz + # Set holds on new artifacts, release on old + gsutil retention temp release gs://open3d-releases-master/* + gsutil retention temp set gs://open3d-releases-master/python-wheels/*${GITHUB_SHA:0:7}*.whl + gsutil retention temp set gs://open3d-releases-master/devel/*${GITHUB_SHA:0:7}* else echo "All wheels / docs not available yet. Docs not ready." fi diff --git a/.github/workflows/ubuntu-wheel.yml b/.github/workflows/ubuntu-wheel.yml index 16cce0b8272..218b8052ea8 100644 --- a/.github/workflows/ubuntu-wheel.yml +++ b/.github/workflows/ubuntu-wheel.yml @@ -202,6 +202,10 @@ jobs: # Rename docs archive: gsutil mv gs://open3d-docs/${{ github.sha }}_ready.tar.gz \ gs://open3d-docs/${{ github.sha }}.tar.gz + # Set holds on new artifacts, release on old + gsutil retention temp release gs://open3d-releases-master/* + gsutil retention temp set gs://open3d-releases-master/python-wheels/*${GITHUB_SHA:0:7}*.whl + gsutil retention temp set gs://open3d-releases-master/devel/*${GITHUB_SHA:0:7}* else echo "All wheels / docs not available yet." fi diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 66c7e5ba084..430ebd73c60 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -439,6 +439,10 @@ jobs: # Rename docs archive: gsutil mv gs://open3d-docs/${{ github.sha }}_ready.tar.gz \ gs://open3d-docs/${{ github.sha }}.tar.gz + # Set holds on new artifacts, release on old + gsutil retention temp release gs://open3d-releases-master/* + gsutil retention temp set gs://open3d-releases-master/python-wheels/*${GITHUB_SHA:0:7}*.whl + gsutil retention temp set gs://open3d-releases-master/devel/*${GITHUB_SHA:0:7}* else echo "All wheels / docs not available yet." fi diff --git a/README.md b/README.md index d3c583ee94f..ea43c38ffca 100644 --- a/README.md +++ b/README.md @@ -30,22 +30,22 @@ the open-source community. **Core features of Open3D include:** -* 3D data structures -* 3D data processing algorithms -* Scene reconstruction -* Surface alignment -* 3D visualization -* Physically based rendering (PBR) -* 3D machine learning support with PyTorch and TensorFlow -* GPU acceleration for core 3D operations -* Available in C++ and Python +- 3D data structures +- 3D data processing algorithms +- Scene reconstruction +- Surface alignment +- 3D visualization +- Physically based rendering (PBR) +- 3D machine learning support with PyTorch and TensorFlow +- GPU acceleration for core 3D operations +- Available in C++ and Python For more, please visit the [Open3D documentation](http://www.open3d.org/docs). ## Python quick start Pre-built pip packages support Ubuntu 18.04+, macOS 10.15+ and Windows 10+ -(64-bit) with Python 3.7-3.10. +(64-bit) with Python 3.8-3.11. ```bash # Install @@ -74,14 +74,14 @@ To compile Open3D from source, refer to Checkout the following links to get started with Open3D C++ API -* Download Open3D binary package: [Release](https://github.com/isl-org/Open3D/releases) or [latest development version](http://www.open3d.org/docs/latest/getting_started.html#c) -* [Compiling Open3D from source](http://www.open3d.org/docs/release/compilation.html) -* [Open3D C++ API](http://www.open3d.org/docs/release/cpp_api.html) +- Download Open3D binary package: [Release](https://github.com/isl-org/Open3D/releases) or [latest development version](http://www.open3d.org/docs/latest/getting_started.html#c) +- [Compiling Open3D from source](http://www.open3d.org/docs/release/compilation.html) +- [Open3D C++ API](http://www.open3d.org/docs/release/cpp_api.html) To use Open3D in your C++ project, checkout the following examples -* [Find Pre-Installed Open3D Package in CMake](https://github.com/isl-org/open3d-cmake-find-package) -* [Use Open3D as a CMake External Project](https://github.com/isl-org/open3d-cmake-external-project) +- [Find Pre-Installed Open3D Package in CMake](https://github.com/isl-org/open3d-cmake-find-package) +- [Use Open3D as a CMake External Project](https://github.com/isl-org/open3d-cmake-external-project) ## Open3D-Viewer app @@ -102,11 +102,11 @@ top of the Open3D core library and extends it with machine learning tools for ## Communication channels -* [GitHub Issue](https://github.com/isl-org/Open3D/issues): bug reports, - feature requests, etc. -* [Forum](https://github.com/isl-org/Open3D/discussions): discussion on the usage of Open3D. -* [Discord Chat](https://discord.gg/D35BGvn): online chats, discussions, - and collaboration with other users and developers. +- [GitHub Issue](https://github.com/isl-org/Open3D/issues): bug reports, + feature requests, etc. +- [Forum](https://github.com/isl-org/Open3D/discussions): discussion on the usage of Open3D. +- [Discord Chat](https://discord.gg/D35BGvn): online chats, discussions, + and collaboration with other users and developers. ## Citation diff --git a/docs/builddocs.rst b/docs/builddocs.rst index 5e0d39f8b77..2f8e9539957 100644 --- a/docs/builddocs.rst +++ b/docs/builddocs.rst @@ -9,16 +9,14 @@ generated by `sphinx `_. The C++ API documentation is generated by `Doxygen `_. Documentation can be built on Ubuntu or macOS. Building documentation on Windows -may also be possible but it is not officially tested. +may also be possible but is not officially tested. If you're building documentation on a computer without a display, please use :ref:`headless_rendering`, otherwise the Jupyter tutorials will fail to execute. -Prerequisites -------------- -1. Install system dependencies -`````````````````````````````` +Install system dependencies +--------------------------- **Ubuntu** @@ -34,23 +32,44 @@ First, install a TeX distribution such as `MacTeX `_ brew install ghostscript pandoc doxygen -2. Install Python dependencies -`````````````````````````````` + +Building C++ documentation +-------------------------- + +If you only want to build C++ API documentation, clone the Open3D repo and run +doxygen. .. code-block:: bash - pip install -r docs/requirements.txt + git clone https://github.com/isl-org/open3d + cd open3d/docs + doxygen Doxyfile.in + +Start browsing the generated C++ API documentation from the file +``docs/doxygen/html/index.html``. Read on if you want to build the full +documentation (including Python API and tutorials). -Build ------ -First, clone and build Open3D from source and install the Open3D Python package. -Visit :ref:`compilation` for details. After configuration, install the Open3D -Python package with: +Install or Build Open3D +----------------------- .. code-block:: bash - make install-pip-package -j$(nproc) + pip install open3d + +To instead build Open3D from source, see :ref:`compilation`. + + +Install Python dependencies +--------------------------- + +.. code-block:: bash + + pip install -r docs/requirements.txt + +Build docs +---------- + .. code-block:: bash diff --git a/docs/getting_started.in.rst b/docs/getting_started.in.rst index 93fe8605a2c..d3ffdc21956 100644 --- a/docs/getting_started.in.rst +++ b/docs/getting_started.in.rst @@ -83,7 +83,7 @@ version (``HEAD`` of ``master`` branch): - `Python 3.8 `__ - `Python 3.9 `__ - `Python 3.10 `__ - - `Python 3.11 `__ + - `Python 3.11 `__ * - Windows - `Python 3.8 `__ diff --git a/util/ci_utils.sh b/util/ci_utils.sh index 3d9416d1f46..1487cf193ca 100644 --- a/util/ci_utils.sh +++ b/util/ci_utils.sh @@ -70,9 +70,9 @@ install_python_dependencies() { if [ "$BUILD_TENSORFLOW_OPS" == "ON" ]; then # TF happily installs both CPU and GPU versions at the same time, so remove the other python -m pip uninstall --yes "$TF_ARCH_DISABLE_NAME" - python -m pip install -U "$TF_ARCH_NAME"=="$TENSORFLOW_VER" # ML/requirements-tensorflow.txt + python -m pip install -U "$TF_ARCH_NAME"=="$TENSORFLOW_VER" # ML/requirements-tensorflow.txt fi - if [ "$BUILD_PYTORCH_OPS" == "ON" ]; then # ML/requirements-torch.txt + if [ "$BUILD_PYTORCH_OPS" == "ON" ]; then # ML/requirements-torch.txt if [[ "$OSTYPE" == "linux-gnu"* ]]; then python -m pip install -U "${TORCH_GLNX}" -f "$TORCH_REPO_URL" tensorboard @@ -414,9 +414,10 @@ build_docs() { -DBUILD_WEBRTC=OFF \ -DBUILD_JUPYTER_EXTENSION=OFF \ .. - make install-pip-package -j$NPROC + make python-package -j$NPROC make -j$NPROC bin/GLInfo + export PYTHONPATH="${PYTHONPATH:+${PYTHONPATH}:}:$PWD/lib/python_package" python -c "from open3d import *; import open3d; print(open3d)" cd ../docs # To Open3D/docs python make_docs.py $DOC_ARGS --clean_notebooks --execute_notebooks=always --py_api_rst=never @@ -434,7 +435,7 @@ build_docs() { -DBUILD_WEBRTC=ON \ -DBUILD_JUPYTER_EXTENSION=OFF \ .. - make install-pip-package -j$NPROC + make python-package -j$NPROC make -j$NPROC bin/GLInfo || echo "Expect failure since HEADLESS_RENDERING=OFF" python -c "from open3d import *; import open3d; print(open3d)"