From f80f627acc001fa6074b37d8052e42ed252ba16f Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Fri, 10 Jan 2025 12:16:52 +0000
Subject: [PATCH 01/14] fix: upload artifacts with different names

---
 .github/workflows/build-packages.yml | 4 ++--
 .github/workflows/release.yml        | 6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml
index ced1f75..80aa89e 100644
--- a/.github/workflows/build-packages.yml
+++ b/.github/workflows/build-packages.yml
@@ -59,7 +59,7 @@ jobs:
         if: matrix.architecture != 'linux/arm64' || github.ref == 'refs/heads/main' || (github.event_name == 'release' && github.event.action == 'published')
         uses: actions/upload-artifact@v4
         with:
-          name: cpp-package
+          name: cpp-package-${{ matrix.architecture }}
           path: packages/cpp/
 
   build-package-python:
@@ -97,7 +97,7 @@ jobs:
         if: matrix.architecture != 'linux/arm64' || github.ref == 'refs/heads/main' || (github.event_name == 'release' && github.event.action == 'published')
         uses: actions/upload-artifact@v4
         with:
-          name: python-package
+          name: python-package-${{ matrix.architecture }}
           path: packages/python/
 
   build-documentation:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 1d54288..cb2887f 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -43,7 +43,8 @@ jobs:
       - name: Download C++ Package
         uses: actions/download-artifact@v4
         with:
-          name: cpp-package
+          pattern: cpp-package-*
+          merge-multiple: true
           path: packages/cpp/
       - name: Release C++ Package
         uses: softprops/action-gh-release@v1
@@ -63,7 +64,8 @@ jobs:
       - name: Download Python Package
         uses: actions/download-artifact@v4
         with:
-          name: python-package
+          pattern: python-package-*
+          merge-multiple: true
           path: packages/python/
       - name: Deploy Python Package
         uses: pypa/gh-action-pypi-publish@release/v1

From 0b6a3f34cacfd1cb9e48d74f4f02e9da4240dcca Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Tue, 7 Jan 2025 09:25:37 +0000
Subject: [PATCH 02/14] build: add optional input for test python version

---
 .github/workflows/test.yml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 57c4f59..f750e47 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,6 +13,10 @@ on:
         description: The version of the project.
         required: true
         type: string
+      test_python_version: 
+        description: The version of Python used in unit tests.
+        required: false
+        type: string
     secrets:
       DOCKERHUB_USERNAME:
         required: true
@@ -104,4 +108,5 @@ jobs:
       - name: Pull Development Image
         run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
       - name: Run Unit Tests Python
-        run: make test-unit-python-standalone
+        run: make test-unit-python-standalone ${{ inputs.test_python_version == '' && '' || 'test_python_version='inputs.test_python_version }}
+

From ca64a5a73fa6ede93a82501741366af717892f65 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Tue, 7 Jan 2025 09:35:31 +0000
Subject: [PATCH 03/14] build: try use format()

---
 .github/workflows/test.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index f750e47..eb762a9 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -108,5 +108,5 @@ jobs:
       - name: Pull Development Image
         run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
       - name: Run Unit Tests Python
-        run: make test-unit-python-standalone ${{ inputs.test_python_version == '' && '' || 'test_python_version='inputs.test_python_version }}
+        run: make test-unit-python-standalone ${{ inputs.test_python_version == '' && '' || format('test_python_version={0}', inputs.test_python_version) }}
 

From 80a75924b53c9bb8e44f09925d8d29d24769dadf Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Tue, 7 Jan 2025 11:34:03 +0000
Subject: [PATCH 04/14] build: add python matrix

---
 .github/workflows/test.yml | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index eb762a9..c887271 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,8 +13,8 @@ on:
         description: The version of the project.
         required: true
         type: string
-      test_python_version: 
-        description: The version of Python used in unit tests.
+      test_python_versions: 
+        description: The versions of Python used in unit tests.
         required: false
         type: string
     secrets:
@@ -94,6 +94,7 @@ jobs:
   test-unit-python:
     name: Run Python Unit Tests
     runs-on: ubuntu-latest
+    if: ${{ inputs.test_python_versions == '' }}
     steps:
       - name: Checkout Repository
         uses: actions/checkout@v4
@@ -108,5 +109,30 @@ jobs:
       - name: Pull Development Image
         run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
       - name: Run Unit Tests Python
-        run: make test-unit-python-standalone ${{ inputs.test_python_version == '' && '' || format('test_python_version={0}', inputs.test_python_version) }}
+        run: make test-unit-python-standalone
+
+  test-unit-python-matrix:
+    name: Run Python Unit Tests With Multiple Python Versions
+    runs-on: ubuntu-latest
+    if: ${{ inputs.test_python_versions != '' }}
+    strategy: 
+      matrix: 
+        python-version: ${{ fromJson(inputs.test_python_versions) }}
+      fail-fast: false
+    steps:
+      - name: Checkout Repository
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+          lfs: true
+      - name: Login to DockerHub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - name: Pull Development Image
+        run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
+      - name: Run Unit Tests Python
+        run: make test-unit-python-standalone ${{ format('test_python_version={0}', matrix.python-version) }}
+
 

From 201f201572ef7a507d7f058ab056dfa5d905afb8 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Wed, 8 Jan 2025 11:02:02 +0000
Subject: [PATCH 05/14] chore: add example usage

---
 .github/workflows/test.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c887271..be7b478 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,7 +13,7 @@ on:
         description: The version of the project.
         required: true
         type: string
-      test_python_versions: 
+      test_python_versions: # e.g. "['3.11', '3.12', '3.13']"
         description: The versions of Python used in unit tests.
         required: false
         type: string

From 7bcd36d0aa03a2dcaef5ea1d3d46e5dc5f098ac5 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 13:52:37 +0000
Subject: [PATCH 06/14] build: try add container job

---
 .github/workflows/test.yml | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index be7b478..b6d9421 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -110,6 +110,27 @@ jobs:
         run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
       - name: Run Unit Tests Python
         run: make test-unit-python-standalone
+  
+  test-unit-python-container:
+    name: Run Python Unit Tests in Container
+    runs-on: ubuntu-latest 
+    container:
+      image: openspacecollective/${{ inputs.project_name }}-development:${{ inputs.project_version }} ## !!
+      credentials: 
+        username: ${{ secrets.DOCKERHUB_USERNAME }}
+        password: ${{ secrets.DOCKERHUB_TOKEN }}
+      volumes:
+        - ${{ github.workspace }}:/app:delegated
+        - /app/build
+      options: --workdir /app/build
+    steps: 
+      - name: Checkout Repository
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+          lfs: true
+      - name: Try to install ostk
+        run: ostk-build && ostk-install
 
   test-unit-python-matrix:
     name: Run Python Unit Tests With Multiple Python Versions

From db6140ad6fa8303f24b77c3715fbb9810b14b319 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 13:53:51 +0000
Subject: [PATCH 07/14] build: disable other test jobs

---
 .github/workflows/test.yml | 84 +++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index b6d9421..499e8af 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -91,25 +91,25 @@ jobs:
       - name: Check Python Format
         run: make format-check-python-standalone
 
-  test-unit-python:
-    name: Run Python Unit Tests
-    runs-on: ubuntu-latest
-    if: ${{ inputs.test_python_versions == '' }}
-    steps:
-      - name: Checkout Repository
-        uses: actions/checkout@v4
-        with:
-          fetch-depth: 0
-          lfs: true
-      - name: Login to DockerHub
-        uses: docker/login-action@v3
-        with:
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
-      - name: Pull Development Image
-        run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
-      - name: Run Unit Tests Python
-        run: make test-unit-python-standalone
+  # test-unit-python:
+  #   name: Run Python Unit Tests
+  #   runs-on: ubuntu-latest
+  #   if: ${{ inputs.test_python_versions == '' }}
+  #   steps:
+  #     - name: Checkout Repository
+  #       uses: actions/checkout@v3
+  #       with:
+  #         fetch-depth: 0
+  #         lfs: true
+  #     - name: Login to DockerHub
+  #       uses: docker/login-action@v2
+  #       with:
+  #         username: ${{ secrets.DOCKERHUB_USERNAME }}
+  #         password: ${{ secrets.DOCKERHUB_TOKEN }}
+  #     - name: Pull Development Image
+  #       run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
+  #     - name: Run Unit Tests Python
+  #       run: make test-unit-python-standalone
   
   test-unit-python-container:
     name: Run Python Unit Tests in Container
@@ -132,28 +132,28 @@ jobs:
       - name: Try to install ostk
         run: ostk-build && ostk-install
 
-  test-unit-python-matrix:
-    name: Run Python Unit Tests With Multiple Python Versions
-    runs-on: ubuntu-latest
-    if: ${{ inputs.test_python_versions != '' }}
-    strategy: 
-      matrix: 
-        python-version: ${{ fromJson(inputs.test_python_versions) }}
-      fail-fast: false
-    steps:
-      - name: Checkout Repository
-        uses: actions/checkout@v3
-        with:
-          fetch-depth: 0
-          lfs: true
-      - name: Login to DockerHub
-        uses: docker/login-action@v2
-        with:
-          username: ${{ secrets.DOCKERHUB_USERNAME }}
-          password: ${{ secrets.DOCKERHUB_TOKEN }}
-      - name: Pull Development Image
-        run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
-      - name: Run Unit Tests Python
-        run: make test-unit-python-standalone ${{ format('test_python_version={0}', matrix.python-version) }}
+  # test-unit-python-matrix:
+  #   name: Run Python Unit Tests With Multiple Python Versions
+  #   runs-on: ubuntu-latest
+  #   if: ${{ inputs.test_python_versions != '' }}
+  #   strategy: 
+  #     matrix: 
+  #       python-version: ${{ fromJson(inputs.test_python_versions) }}
+  #     fail-fast: false
+  #   steps:
+  #     - name: Checkout Repository
+  #       uses: actions/checkout@v3
+  #       with:
+  #         fetch-depth: 0
+  #         lfs: true
+  #     - name: Login to DockerHub
+  #       uses: docker/login-action@v2
+  #       with:
+  #         username: ${{ secrets.DOCKERHUB_USERNAME }}
+  #         password: ${{ secrets.DOCKERHUB_TOKEN }}
+  #     - name: Pull Development Image
+  #       run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
+  #     - name: Run Unit Tests Python
+  #       run: make test-unit-python-standalone ${{ format('test_python_version={0}', matrix.python-version) }}
 
 

From 932cee2c0946807b900229a27d953d3bbea51633 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 14:09:44 +0000
Subject: [PATCH 08/14] tmp: install lfs in container

---
 .github/workflows/test.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 499e8af..3a22540 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -124,6 +124,8 @@ jobs:
         - /app/build
       options: --workdir /app/build
     steps: 
+      - name: TMP install lfs
+        run: apt-get install -y --no-install-recommends git-lfs
       - name: Checkout Repository
         uses: actions/checkout@v3
         with:

From 5969c58179365c1177ad40c67ab17187e4f58742 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 14:14:45 +0000
Subject: [PATCH 09/14] tmp: apt-get update first

---
 .github/workflows/test.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3a22540..8179e0f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -125,7 +125,7 @@ jobs:
       options: --workdir /app/build
     steps: 
       - name: TMP install lfs
-        run: apt-get install -y --no-install-recommends git-lfs
+        run: apt-get update && apt-get install -y --no-install-recommends git-lfs
       - name: Checkout Repository
         uses: actions/checkout@v3
         with:

From 6ae5501f3f90a31622c248d4156fca88309f1753 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 14:21:16 +0000
Subject: [PATCH 10/14] tmp: run container as root

---
 .github/workflows/test.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 8179e0f..8e05f0d 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -122,7 +122,7 @@ jobs:
       volumes:
         - ${{ github.workspace }}:/app:delegated
         - /app/build
-      options: --workdir /app/build
+      options: --workdir /app/build --user root
     steps: 
       - name: TMP install lfs
         run: apt-get update && apt-get install -y --no-install-recommends git-lfs

From f8be78fff3307b32b0949d9a3262e97ea09bd920 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Thu, 9 Jan 2025 14:45:09 +0000
Subject: [PATCH 11/14] tmp: make workdir simpler

---
 .github/workflows/test.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 8e05f0d..c4dc128 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -122,7 +122,7 @@ jobs:
       volumes:
         - ${{ github.workspace }}:/app:delegated
         - /app/build
-      options: --workdir /app/build --user root
+      options: --user root
     steps: 
       - name: TMP install lfs
         run: apt-get update && apt-get install -y --no-install-recommends git-lfs
@@ -132,7 +132,7 @@ jobs:
           fetch-depth: 0
           lfs: true
       - name: Try to install ostk
-        run: ostk-build && ostk-install
+        run: cd /app/build && ostk-build && ostk-install
 
   # test-unit-python-matrix:
   #   name: Run Python Unit Tests With Multiple Python Versions

From b63f7a31329f8efa35bf13937ca123b80b045e62 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Fri, 10 Jan 2025 13:30:31 +0000
Subject: [PATCH 12/14] build: separate build and test jobs

---
 .github/workflows/test.yml | 76 +++++++++++++++++++++++++++++---------
 1 file changed, 58 insertions(+), 18 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c4dc128..5dfd4d8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -110,29 +110,69 @@ jobs:
   #       run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
   #     - name: Run Unit Tests Python
   #       run: make test-unit-python-standalone
-  
-  test-unit-python-container:
-    name: Run Python Unit Tests in Container
+
+  build-python:
+    name: Build Python bindings
+    runs-on: ubuntu-latest
+    outputs: 
+      python_versions: ${{ steps.python-versions.outputs.value }}
+    steps:
+      - name: Checkout Repository
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+          lfs: true
+      - name: Login to DockerHub
+        uses: docker/login-action@v3
+        with:
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - name: Pull Development Image
+        run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
+      - name: Build Python bindings
+        run: make build-packages-python-standalone
+      - name: Upload Python bindings
+        uses: actions/upload-artifact@v4
+        with:
+          name: python-bindings
+          path: packages/python/
+      - id: python-versions
+        name: Export Python versions to environment 
+        run: |
+          python_versions=$(echo -n "["; find packages/python -name "*.whl" | grep -o "py[0-9]\{2,3\}" | sed 's/py\([0-9]\)\([0-9][0-9]\?\)/\1.\2/' | sed "s/\([0-9.]*\)/'\1'/" | tr '\n' ',' | sed 's/,$//'; echo "]")
+          echo "Python versions: ${python_versions}"
+          echo "value=${python_versions}" >> $GITHUB_OUTPUT
+      
+  test-python: 
+    name: Test Python
     runs-on: ubuntu-latest 
-    container:
-      image: openspacecollective/${{ inputs.project_name }}-development:${{ inputs.project_version }} ## !!
-      credentials: 
-        username: ${{ secrets.DOCKERHUB_USERNAME }}
-        password: ${{ secrets.DOCKERHUB_TOKEN }}
-      volumes:
-        - ${{ github.workspace }}:/app:delegated
-        - /app/build
-      options: --user root
-    steps: 
-      - name: TMP install lfs
-        run: apt-get update && apt-get install -y --no-install-recommends git-lfs
+    needs:
+      - build-python
+    strategy:
+      matrix:
+        python-version: ${{ fromJson(needs.build-python.outputs.python_versions) }}
+    steps:
       - name: Checkout Repository
-        uses: actions/checkout@v3
+        uses: actions/checkout@v4
         with:
           fetch-depth: 0
           lfs: true
-      - name: Try to install ostk
-        run: cd /app/build && ostk-build && ostk-install
+      - name: Login to DockerHub
+        uses: docker/login-action@v3
+        with:
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - name: Pull Development Image
+        run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
+      - name: Download Python packages
+        uses: actions/download-artifact@v4
+        with:
+          name: python-bindings
+          path: packages/python/
+      - name: Run Python Unit Tests
+        run: make ci-test-python ${{ format('test_python_version={0}', matrix.python-version) }}
+
+      
 
   # test-unit-python-matrix:
   #   name: Run Python Unit Tests With Multiple Python Versions

From ed4668b97ca763715a978a6c377708b6d4279171 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Fri, 10 Jan 2025 14:43:07 +0000
Subject: [PATCH 13/14] chore: clean up

---
 .github/workflows/test.yml | 68 +++++---------------------------------
 1 file changed, 8 insertions(+), 60 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 5dfd4d8..c6b7516 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -13,10 +13,6 @@ on:
         description: The version of the project.
         required: true
         type: string
-      test_python_versions: # e.g. "['3.11', '3.12', '3.13']"
-        description: The versions of Python used in unit tests.
-        required: false
-        type: string
     secrets:
       DOCKERHUB_USERNAME:
         required: true
@@ -91,30 +87,10 @@ jobs:
       - name: Check Python Format
         run: make format-check-python-standalone
 
-  # test-unit-python:
-  #   name: Run Python Unit Tests
-  #   runs-on: ubuntu-latest
-  #   if: ${{ inputs.test_python_versions == '' }}
-  #   steps:
-  #     - name: Checkout Repository
-  #       uses: actions/checkout@v3
-  #       with:
-  #         fetch-depth: 0
-  #         lfs: true
-  #     - name: Login to DockerHub
-  #       uses: docker/login-action@v2
-  #       with:
-  #         username: ${{ secrets.DOCKERHUB_USERNAME }}
-  #         password: ${{ secrets.DOCKERHUB_TOKEN }}
-  #     - name: Pull Development Image
-  #       run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
-  #     - name: Run Unit Tests Python
-  #       run: make test-unit-python-standalone
-
   build-python:
     name: Build Python bindings
     runs-on: ubuntu-latest
-    outputs: 
+    outputs:
       python_versions: ${{ steps.python-versions.outputs.value }}
     steps:
       - name: Checkout Repository
@@ -129,23 +105,23 @@ jobs:
           password: ${{ secrets.DOCKERHUB_TOKEN }}
       - name: Pull Development Image
         run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
-      - name: Build Python bindings
+      - name: Build Python Bindings
         run: make build-packages-python-standalone
-      - name: Upload Python bindings
+      - name: Upload Python Bindings
         uses: actions/upload-artifact@v4
         with:
-          name: python-bindings
+          name: python-bindings # TBM: use a different namespace than in build-packages for now.
           path: packages/python/
       - id: python-versions
-        name: Export Python versions to environment 
+        name: Export Python Versions to Environment
         run: |
           python_versions=$(echo -n "["; find packages/python -name "*.whl" | grep -o "py[0-9]\{2,3\}" | sed 's/py\([0-9]\)\([0-9][0-9]\?\)/\1.\2/' | sed "s/\([0-9.]*\)/'\1'/" | tr '\n' ',' | sed 's/,$//'; echo "]")
           echo "Python versions: ${python_versions}"
           echo "value=${python_versions}" >> $GITHUB_OUTPUT
-      
-  test-python: 
+
+  test-unit-python:
     name: Test Python
-    runs-on: ubuntu-latest 
+    runs-on: ubuntu-latest
     needs:
       - build-python
     strategy:
@@ -171,31 +147,3 @@ jobs:
           path: packages/python/
       - name: Run Python Unit Tests
         run: make ci-test-python ${{ format('test_python_version={0}', matrix.python-version) }}
-
-      
-
-  # test-unit-python-matrix:
-  #   name: Run Python Unit Tests With Multiple Python Versions
-  #   runs-on: ubuntu-latest
-  #   if: ${{ inputs.test_python_versions != '' }}
-  #   strategy: 
-  #     matrix: 
-  #       python-version: ${{ fromJson(inputs.test_python_versions) }}
-  #     fail-fast: false
-  #   steps:
-  #     - name: Checkout Repository
-  #       uses: actions/checkout@v3
-  #       with:
-  #         fetch-depth: 0
-  #         lfs: true
-  #     - name: Login to DockerHub
-  #       uses: docker/login-action@v2
-  #       with:
-  #         username: ${{ secrets.DOCKERHUB_USERNAME }}
-  #         password: ${{ secrets.DOCKERHUB_TOKEN }}
-  #     - name: Pull Development Image
-  #       run: docker pull ${{ env.DOCKER_REGISTRY_PATH }}/${{ inputs.project_name }}-development:${{ inputs.project_version }}
-  #     - name: Run Unit Tests Python
-  #       run: make test-unit-python-standalone ${{ format('test_python_version={0}', matrix.python-version) }}
-
-

From a8d2c508f7eac71af5a683961ce83a18e761e637 Mon Sep 17 00:00:00 2001
From: Alex Liang <alex.liang@loftorbital.com>
Date: Fri, 10 Jan 2025 14:45:43 +0000
Subject: [PATCH 14/14] chore: rename jobs

---
 .github/workflows/test.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c6b7516..2d6566f 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -120,7 +120,7 @@ jobs:
           echo "value=${python_versions}" >> $GITHUB_OUTPUT
 
   test-unit-python:
-    name: Test Python
+    name: Run Python Unit Tests
     runs-on: ubuntu-latest
     needs:
       - build-python
@@ -145,5 +145,5 @@ jobs:
         with:
           name: python-bindings
           path: packages/python/
-      - name: Run Python Unit Tests
+      - name: Run Unit Tests Python
         run: make ci-test-python ${{ format('test_python_version={0}', matrix.python-version) }}