Skip to content
Merged
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
16 changes: 13 additions & 3 deletions docs/docs/Development-Environment-Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ end integration testing.

- Open a terminal and run `sudo apt update`

- Run `sudo apt install gnupg2 unzip xz-utils cmake make g++ ninja-build nasm libgtest-dev mediainfo libssl-dev liblog4cxx-dev libboost-dev file openjdk-17-jdk python3.8-dev python3-pip python3.8-venv libde265-dev libopenblas-dev liblapacke-dev libavcodec-dev libavcodec-extra libavformat-dev libavutil-dev libswscale-dev libavresample-dev libharfbuzz-dev libfreetype-dev ffmpeg git git-lfs redis postgresql-12 curl ansible`
- Run `sudo apt install gnupg2 unzip xz-utils cmake make g++ ninja-build nasm libgtest-dev mediainfo libssl-dev liblog4cxx-dev libboost-dev file openjdk-17-jdk python3.8-dev python3-pip python3.8-venv libde265-dev libopenblas-dev liblapacke-dev libavcodec-dev libavcodec-extra libavformat-dev libavutil-dev libswscale-dev libavresample-dev libharfbuzz-dev libfreetype-dev ffmpeg git git-lfs redis postgresql-12 curl`

- Run `sudo ln --symbolic /usr/include/x86_64-linux-gnu/openblas-pthread/cblas.h /usr/include/cblas.h`

Expand Down Expand Up @@ -164,8 +164,9 @@ bash aom.cmd;
cd ..;
mkdir build;
cd build;
PKG_CONFIG_PATH="/tmp/libheif/libheif-1.20.2/third-party/aom/dist/lib/pkgconfig" \
cmake3 -DCMAKE_INSTALL_PREFIX=/usr -DWITH_EXAMPLES=false -DWITH_AOM_DECODER=true -DENABLE_PLUGIN_LOADING=false -DCMAKE_BUILD_TYPE=Release ..;
PKG_CONFIG_PATH="/tmp/libheif/libheif-1.20.2/third-party/aom/dist/lib/pkgconfig" cmake3 \
-DCMAKE_INSTALL_PREFIX=/usr -DWITH_EXAMPLES=false -DWITH_AOM_DECODER=true \
-DENABLE_PLUGIN_LOADING=false -DCMAKE_BUILD_TYPE=Release ..;
sudo make --jobs "$(nproc)" install/strip;
sudo cp heifio/libheifio.a /usr/lib64;
cd ../heifio;
Expand Down Expand Up @@ -201,6 +202,13 @@ cd;
sudo rm -rf /tmp/abseil /tmp/protobuf
```

- Install Python3.12:
```bash
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12-dev python3.12-venv
```

- From your home directory run:
```bash
git clone https://github.com/openmpf/openmpf-projects.git --recursive;
Expand All @@ -223,6 +231,8 @@ git submodule foreach git checkout develop;

- Run `cd ~/openmpf-projects/openmpf/trunk/workflow-manager/src/main/resources/properties/; cp mpf-private-example.properties mpf-private.properties`

- Run `pip3.8 install ansible`

- Run `sudo sh -c 'echo "[mpf-child]\nlocalhost" >> /etc/ansible/hosts'`

- Run `mkdir -p ~/.m2/repository/; tar -f /home/mpf/openmpf-projects/openmpf-build-tools/mpf-maven-deps.tar.gz --extract --gzip --directory ~/.m2/repository/`
Expand Down
120 changes: 25 additions & 95 deletions docs/docs/Python-Batch-Component-API.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,8 +280,8 @@ MyComponent
├── MyComponent-0.1-py3-none-any.whl
├── mpf_component_api-0.1-py3-none-any.whl
├── mpf_component_util-0.1-py3-none-any.whl
├── numpy-1.18.4-cp38-cp38-manylinux1_x86_64.whl
└── opencv_python-4.2.0.34-cp38-cp38-manylinux1_x86_64.whl
├── numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
└── opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
```

To create the plugin packages you can run the build script as follows:
Expand Down Expand Up @@ -1105,7 +1105,7 @@ generating an exception, choose the type that best describes your error.


# Python Component Build Environment
All Python components must work with CPython 3.8.10. Also, Python components
All Python components must work with CPython 3.12. Also, Python components
must work with the Linux version that is used by the OpenMPF Component
Executable. At this writing, OpenMPF runs on
Ubuntu 20.04 (kernel version 5.13.0-30). Pure Python code should work on any
Expand All @@ -1121,98 +1121,28 @@ Python 3 implementation because it does not use any implementation-specific
features. `none` means that it does not use the Python ABI. `any` means it will
work on any platform.

The following combinations of compatibility tags are supported:

* `cp38-cp38-manylinux2014_x86_64`
* `cp38-cp38-manylinux2010_x86_64`
* `cp38-cp38-manylinux1_x86_64`
* `cp38-cp38-linux_x86_64`
* `cp38-abi3-manylinux2014_x86_64`
* `cp38-abi3-manylinux2010_x86_64`
* `cp38-abi3-manylinux1_x86_64`
* `cp38-abi3-linux_x86_64`
* `cp38-none-manylinux2014_x86_64`
* `cp38-none-manylinux2010_x86_64`
* `cp38-none-manylinux1_x86_64`
* `cp38-none-linux_x86_64`
* `cp37-abi3-manylinux2014_x86_64`
* `cp37-abi3-manylinux2010_x86_64`
* `cp37-abi3-manylinux1_x86_64`
* `cp37-abi3-linux_x86_64`
* `cp36-abi3-manylinux2014_x86_64`
* `cp36-abi3-manylinux2010_x86_64`
* `cp36-abi3-manylinux1_x86_64`
* `cp36-abi3-linux_x86_64`
* `cp35-abi3-manylinux2014_x86_64`
* `cp35-abi3-manylinux2010_x86_64`
* `cp35-abi3-manylinux1_x86_64`
* `cp35-abi3-linux_x86_64`
* `cp34-abi3-manylinux2014_x86_64`
* `cp34-abi3-manylinux2010_x86_64`
* `cp34-abi3-manylinux1_x86_64`
* `cp34-abi3-linux_x86_64`
* `cp33-abi3-manylinux2014_x86_64`
* `cp33-abi3-manylinux2010_x86_64`
* `cp33-abi3-manylinux1_x86_64`
* `cp33-abi3-linux_x86_64`
* `cp32-abi3-manylinux2014_x86_64`
* `cp32-abi3-manylinux2010_x86_64`
* `cp32-abi3-manylinux1_x86_64`
* `cp32-abi3-linux_x86_64`
* `py38-none-manylinux2014_x86_64`
* `py38-none-manylinux2010_x86_64`
* `py38-none-manylinux1_x86_64`
* `py38-none-linux_x86_64`
* `py3-none-manylinux2014_x86_64`
* `py3-none-manylinux2010_x86_64`
* `py3-none-manylinux1_x86_64`
* `py3-none-linux_x86_64`
* `py37-none-manylinux2014_x86_64`
* `py37-none-manylinux2010_x86_64`
* `py37-none-manylinux1_x86_64`
* `py37-none-linux_x86_64`
* `py36-none-manylinux2014_x86_64`
* `py36-none-manylinux2010_x86_64`
* `py36-none-manylinux1_x86_64`
* `py36-none-linux_x86_64`
* `py35-none-manylinux2014_x86_64`
* `py35-none-manylinux2010_x86_64`
* `py35-none-manylinux1_x86_64`
* `py35-none-linux_x86_64`
* `py34-none-manylinux2014_x86_64`
* `py34-none-manylinux2010_x86_64`
* `py34-none-manylinux1_x86_64`
* `py34-none-linux_x86_64`
* `py33-none-manylinux2014_x86_64`
* `py33-none-manylinux2010_x86_64`
* `py33-none-manylinux1_x86_64`
* `py33-none-linux_x86_64`
* `py32-none-manylinux2014_x86_64`
* `py32-none-manylinux2010_x86_64`
* `py32-none-manylinux1_x86_64`
* `py32-none-linux_x86_64`
* `py31-none-manylinux2014_x86_64`
* `py31-none-manylinux2010_x86_64`
* `py31-none-manylinux1_x86_64`
* `py31-none-linux_x86_64`
* `py30-none-manylinux2014_x86_64`
* `py30-none-manylinux2010_x86_64`
* `py30-none-manylinux1_x86_64`
* `py30-none-linux_x86_64`
* `cp38-none-any`
* `py38-none-any`
* `py3-none-any`
* `py37-none-any`
* `py36-none-any`
* `py35-none-any`
* `py34-none-any`
* `py33-none-any`
* `py32-none-any`
* `py31-none-any`
* `py30-none-any`

The list above was generated with the following command:
`python3 -c 'import pip._internal.pep425tags as tags; print("\n".join(str(t) for t in tags.get_supported()))'`
The acceptable Python version tags are:

- `cp312` (or lower)
- `py312` (or lower)

The **ONLY** acceptable ABI tags are:

- `cp312`
- `abi3`
- `none`

The acceptable platform tags are:

- `any`
- `linux_x86_64`
- `manylinux1_x86_64`
- `manylinux2010_x86_64`
- `manylinux2014_x86_64`
- `manylinux_2_5_x86_64` through `manylinux_2_39_x86_64`


The full list of compatible tags can be listed by running: `pip3 debug --verbose`

Components should be supplied as a tar file, which includes not only the component library, but any other libraries or
files needed for execution. This includes all other non-standard libraries used by the component
Expand Down
17 changes: 14 additions & 3 deletions docs/site/Development-Environment-Guide/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ <h1 id="setup-vm">Setup VM</h1>
<p>Open a terminal and run <code>sudo apt update</code></p>
</li>
<li>
<p>Run <code>sudo apt install gnupg2 unzip xz-utils cmake make g++ ninja-build nasm libgtest-dev mediainfo libssl-dev liblog4cxx-dev libboost-dev file openjdk-17-jdk python3.8-dev python3-pip python3.8-venv libde265-dev libopenblas-dev liblapacke-dev libavcodec-dev libavcodec-extra libavformat-dev libavutil-dev libswscale-dev libavresample-dev libharfbuzz-dev libfreetype-dev ffmpeg git git-lfs redis postgresql-12 curl ansible</code></p>
<p>Run <code>sudo apt install gnupg2 unzip xz-utils cmake make g++ ninja-build nasm libgtest-dev mediainfo libssl-dev liblog4cxx-dev libboost-dev file openjdk-17-jdk python3.8-dev python3-pip python3.8-venv libde265-dev libopenblas-dev liblapacke-dev libavcodec-dev libavcodec-extra libavformat-dev libavutil-dev libswscale-dev libavresample-dev libharfbuzz-dev libfreetype-dev ffmpeg git git-lfs redis postgresql-12 curl</code></p>
</li>
<li>
<p>Run <code>sudo ln --symbolic /usr/include/x86_64-linux-gnu/openblas-pthread/cblas.h /usr/include/cblas.h</code></p>
Expand Down Expand Up @@ -462,8 +462,9 @@ <h1 id="setup-vm">Setup VM</h1>
cd ..;
mkdir build;
cd build;
PKG_CONFIG_PATH=&quot;/tmp/libheif/libheif-1.20.2/third-party/aom/dist/lib/pkgconfig&quot; \
cmake3 -DCMAKE_INSTALL_PREFIX=/usr -DWITH_EXAMPLES=false -DWITH_AOM_DECODER=true -DENABLE_PLUGIN_LOADING=false -DCMAKE_BUILD_TYPE=Release ..;
PKG_CONFIG_PATH=&quot;/tmp/libheif/libheif-1.20.2/third-party/aom/dist/lib/pkgconfig&quot; cmake3 \
-DCMAKE_INSTALL_PREFIX=/usr -DWITH_EXAMPLES=false -DWITH_AOM_DECODER=true \
-DENABLE_PLUGIN_LOADING=false -DCMAKE_BUILD_TYPE=Release ..;
sudo make --jobs &quot;$(nproc)&quot; install/strip;
sudo cp heifio/libheifio.a /usr/lib64;
cd ../heifio;
Expand Down Expand Up @@ -499,6 +500,13 @@ <h1 id="setup-vm">Setup VM</h1>
sudo rm -rf /tmp/abseil /tmp/protobuf
</code></pre>
<ul>
<li>Install Python3.12:</li>
</ul>
<pre><code class="language-bash">sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12-dev python3.12-venv
</code></pre>
<ul>
<li>From your home directory run:</li>
</ul>
<pre><code class="language-bash">git clone https://github.com/openmpf/openmpf-projects.git --recursive;
Expand Down Expand Up @@ -529,6 +537,9 @@ <h1 id="setup-vm">Setup VM</h1>
<p>Run <code>cd ~/openmpf-projects/openmpf/trunk/workflow-manager/src/main/resources/properties/; cp mpf-private-example.properties mpf-private.properties</code></p>
</li>
<li>
<p>Run <code>pip3.8 install ansible</code></p>
</li>
<li>
<p>Run <code>sudo sh -c 'echo "[mpf-child]\nlocalhost" &gt;&gt; /etc/ansible/hosts'</code></p>
</li>
<li>
Expand Down
115 changes: 22 additions & 93 deletions docs/site/Python-Batch-Component-API/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -525,8 +525,8 @@ <h2 id="how-to-create-a-setuptools-based-python-component">How to Create a Setup
├── MyComponent-0.1-py3-none-any.whl
├── mpf_component_api-0.1-py3-none-any.whl
├── mpf_component_util-0.1-py3-none-any.whl
├── numpy-1.18.4-cp38-cp38-manylinux1_x86_64.whl
└── opencv_python-4.2.0.34-cp38-cp38-manylinux1_x86_64.whl
├── numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
└── opencv_python-4.12.0.88-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
</code></pre>
<p>To create the plugin packages you can run the build script as follows:</p>
<pre><code>~/openmpf-projects/openmpf-build-tools/build-openmpf-components/build_components.py -psdk ~/openmpf-projects/openmpf-python-component-sdk -c MyComponent
Expand Down Expand Up @@ -1393,7 +1393,7 @@ <h1 id="how-to-report-errors">How to Report Errors</h1>
the <code>MPF_</code> prefix. You can replace the <code>MISSING_PROPERTY</code> part in the above code with any other error type. When
generating an exception, choose the type that best describes your error.</p>
<h1 id="python-component-build-environment">Python Component Build Environment</h1>
<p>All Python components must work with CPython 3.8.10. Also, Python components
<p>All Python components must work with CPython 3.12. Also, Python components
must work with the Linux version that is used by the OpenMPF Component
Executable. At this writing, OpenMPF runs on
Ubuntu 20.04 (kernel version 5.13.0-30). Pure Python code should work on any
Expand All @@ -1408,98 +1408,27 @@ <h1 id="python-component-build-environment">Python Component Build Environment</
Python 3 implementation because it does not use any implementation-specific
features. <code>none</code> means that it does not use the Python ABI. <code>any</code> means it will
work on any platform.</p>
<p>The following combinations of compatibility tags are supported:</p>
<p>The acceptable Python version tags are:</p>
<ul>
<li><code>cp38-cp38-manylinux2014_x86_64</code></li>
<li><code>cp38-cp38-manylinux2010_x86_64</code></li>
<li><code>cp38-cp38-manylinux1_x86_64</code></li>
<li><code>cp38-cp38-linux_x86_64</code></li>
<li><code>cp38-abi3-manylinux2014_x86_64</code></li>
<li><code>cp38-abi3-manylinux2010_x86_64</code></li>
<li><code>cp38-abi3-manylinux1_x86_64</code></li>
<li><code>cp38-abi3-linux_x86_64</code></li>
<li><code>cp38-none-manylinux2014_x86_64</code></li>
<li><code>cp38-none-manylinux2010_x86_64</code></li>
<li><code>cp38-none-manylinux1_x86_64</code></li>
<li><code>cp38-none-linux_x86_64</code></li>
<li><code>cp37-abi3-manylinux2014_x86_64</code></li>
<li><code>cp37-abi3-manylinux2010_x86_64</code></li>
<li><code>cp37-abi3-manylinux1_x86_64</code></li>
<li><code>cp37-abi3-linux_x86_64</code></li>
<li><code>cp36-abi3-manylinux2014_x86_64</code></li>
<li><code>cp36-abi3-manylinux2010_x86_64</code></li>
<li><code>cp36-abi3-manylinux1_x86_64</code></li>
<li><code>cp36-abi3-linux_x86_64</code></li>
<li><code>cp35-abi3-manylinux2014_x86_64</code></li>
<li><code>cp35-abi3-manylinux2010_x86_64</code></li>
<li><code>cp35-abi3-manylinux1_x86_64</code></li>
<li><code>cp35-abi3-linux_x86_64</code></li>
<li><code>cp34-abi3-manylinux2014_x86_64</code></li>
<li><code>cp34-abi3-manylinux2010_x86_64</code></li>
<li><code>cp34-abi3-manylinux1_x86_64</code></li>
<li><code>cp34-abi3-linux_x86_64</code></li>
<li><code>cp33-abi3-manylinux2014_x86_64</code></li>
<li><code>cp33-abi3-manylinux2010_x86_64</code></li>
<li><code>cp33-abi3-manylinux1_x86_64</code></li>
<li><code>cp33-abi3-linux_x86_64</code></li>
<li><code>cp32-abi3-manylinux2014_x86_64</code></li>
<li><code>cp32-abi3-manylinux2010_x86_64</code></li>
<li><code>cp32-abi3-manylinux1_x86_64</code></li>
<li><code>cp32-abi3-linux_x86_64</code></li>
<li><code>py38-none-manylinux2014_x86_64</code></li>
<li><code>py38-none-manylinux2010_x86_64</code></li>
<li><code>py38-none-manylinux1_x86_64</code></li>
<li><code>py38-none-linux_x86_64</code></li>
<li><code>py3-none-manylinux2014_x86_64</code></li>
<li><code>py3-none-manylinux2010_x86_64</code></li>
<li><code>py3-none-manylinux1_x86_64</code></li>
<li><code>py3-none-linux_x86_64</code></li>
<li><code>py37-none-manylinux2014_x86_64</code></li>
<li><code>py37-none-manylinux2010_x86_64</code></li>
<li><code>py37-none-manylinux1_x86_64</code></li>
<li><code>py37-none-linux_x86_64</code></li>
<li><code>py36-none-manylinux2014_x86_64</code></li>
<li><code>py36-none-manylinux2010_x86_64</code></li>
<li><code>py36-none-manylinux1_x86_64</code></li>
<li><code>py36-none-linux_x86_64</code></li>
<li><code>py35-none-manylinux2014_x86_64</code></li>
<li><code>py35-none-manylinux2010_x86_64</code></li>
<li><code>py35-none-manylinux1_x86_64</code></li>
<li><code>py35-none-linux_x86_64</code></li>
<li><code>py34-none-manylinux2014_x86_64</code></li>
<li><code>py34-none-manylinux2010_x86_64</code></li>
<li><code>py34-none-manylinux1_x86_64</code></li>
<li><code>py34-none-linux_x86_64</code></li>
<li><code>py33-none-manylinux2014_x86_64</code></li>
<li><code>py33-none-manylinux2010_x86_64</code></li>
<li><code>py33-none-manylinux1_x86_64</code></li>
<li><code>py33-none-linux_x86_64</code></li>
<li><code>py32-none-manylinux2014_x86_64</code></li>
<li><code>py32-none-manylinux2010_x86_64</code></li>
<li><code>py32-none-manylinux1_x86_64</code></li>
<li><code>py32-none-linux_x86_64</code></li>
<li><code>py31-none-manylinux2014_x86_64</code></li>
<li><code>py31-none-manylinux2010_x86_64</code></li>
<li><code>py31-none-manylinux1_x86_64</code></li>
<li><code>py31-none-linux_x86_64</code></li>
<li><code>py30-none-manylinux2014_x86_64</code></li>
<li><code>py30-none-manylinux2010_x86_64</code></li>
<li><code>py30-none-manylinux1_x86_64</code></li>
<li><code>py30-none-linux_x86_64</code></li>
<li><code>cp38-none-any</code></li>
<li><code>py38-none-any</code></li>
<li><code>py3-none-any</code></li>
<li><code>py37-none-any</code></li>
<li><code>py36-none-any</code></li>
<li><code>py35-none-any</code></li>
<li><code>py34-none-any</code></li>
<li><code>py33-none-any</code></li>
<li><code>py32-none-any</code></li>
<li><code>py31-none-any</code></li>
<li><code>py30-none-any</code></li>
<li><code>cp312</code> (or lower)</li>
<li><code>py312</code> (or lower)</li>
</ul>
<p>The list above was generated with the following command:
<code>python3 -c 'import pip._internal.pep425tags as tags; print("\n".join(str(t) for t in tags.get_supported()))'</code></p>
<p>The <strong>ONLY</strong> acceptable ABI tags are:</p>
<ul>
<li><code>cp312</code></li>
<li><code>abi3</code></li>
<li><code>none</code></li>
</ul>
<p>The acceptable platform tags are:</p>
<ul>
<li><code>any</code></li>
<li><code>linux_x86_64</code></li>
<li><code>manylinux1_x86_64</code></li>
<li><code>manylinux2010_x86_64</code></li>
<li><code>manylinux2014_x86_64</code></li>
<li><code>manylinux_2_5_x86_64</code> through <code>manylinux_2_39_x86_64</code></li>
</ul>
<p>The full list of compatible tags can be listed by running: <code>pip3 debug --verbose</code></p>
<p>Components should be supplied as a tar file, which includes not only the component library, but any other libraries or
files needed for execution. This includes all other non-standard libraries used by the component
(aside from the standard Python libraries), and any configuration or data files.</p>
Expand Down
2 changes: 1 addition & 1 deletion docs/site/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -408,5 +408,5 @@ <h1 id="overview">Overview</h1>

<!--
MkDocs version : 0.17.5
Build Date UTC : 2025-09-09 16:55:36
Build Date UTC : 2025-09-10 17:55:24
-->
10 changes: 5 additions & 5 deletions docs/site/search/search_index.json

Large diffs are not rendered by default.

Loading