From 875670cb18431d35d61ce5461c2f9b440b27a01c Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Tue, 18 Jun 2024 15:20:46 -0700 Subject: [PATCH 01/14] test ci/cd --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 6b2dd27a..d2173f2b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,3 +16,4 @@ clarabel qss tqdm spcqe + From 1fbf9ce15d1b11fc29d4e9c9d4ae656e3f8db35a Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:27:06 -0700 Subject: [PATCH 02/14] adds trigger rtd action to test build --- .github/workflows/test-build.yml | 10 ++++++++++ docs/requirements.txt | 5 +++++ requirements.txt | 8 +------- 3 files changed, 16 insertions(+), 7 deletions(-) create mode 100644 docs/requirements.txt diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 5c8b0010..43f0577d 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -65,3 +65,13 @@ jobs: conda config --set anaconda_upload no --set solver libmamba VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT + + deploy-rtd: + steps: + # Do not need to build and upload artifacts, just retrigger to update tags/version on website + - name: Trigger RTDs build + uses: dfm/rtds-action@v1 + with: + webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} + webhook_token: ${{ secrets.RTDS_WEBHOOK_TOKEN }} + commit_ref: ${{ github.ref }} diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..f32524b0 --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +sphinx +pydata-sphinx-theme +sphinx-design +nbsphinx +myst-parser \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index dfc35754..a9dd4ccc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,10 +21,4 @@ dask distributed dask-cloudprovider[all] graphviz -bokeh -# Packages below this line are for the documentation (optional) -sphinx -pydata-sphinx-theme -sphinx-design -nbsphinx -myst-parser \ No newline at end of file +bokeh \ No newline at end of file From 1f5253a851fe30fecaf0e2fd2201b840176fa0f8 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:31:19 -0700 Subject: [PATCH 03/14] adds trigger rtd action to test build --- .github/workflows/test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 43f0577d..5ec895ec 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -2,7 +2,7 @@ name: Test Build on: pull_request: - branches: [main] + branches: [main, dev] jobs: build-pypi: runs-on: ubuntu-latest From f08d3f533e94ddfe5e2fd08011088e5efb8116f8 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:34:08 -0700 Subject: [PATCH 04/14] tests workflow --- .github/workflows/test-build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 5ec895ec..dce3c265 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -2,7 +2,9 @@ name: Test Build on: pull_request: - branches: [main, dev] + branches: [main] + push: + branches: [dev] jobs: build-pypi: runs-on: ubuntu-latest From f8689899b5e789a55e1e061237f07f4761450057 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:35:21 -0700 Subject: [PATCH 05/14] tests workflow --- .github/workflows/test-build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index dce3c265..1f88242c 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -69,6 +69,7 @@ jobs: echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT deploy-rtd: + runs-on: ubuntu-latest steps: # Do not need to build and upload artifacts, just retrigger to update tags/version on website - name: Trigger RTDs build From 3c367fb9f7da5f8a7af2ea322e5066af88083fb7 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:37:24 -0700 Subject: [PATCH 06/14] tests workflow --- .github/workflows/test-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 1f88242c..08725ad1 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -70,6 +70,8 @@ jobs: deploy-rtd: runs-on: ubuntu-latest + needs: [build-pypi, build-conda] + environment: test-deployment steps: # Do not need to build and upload artifacts, just retrigger to update tags/version on website - name: Trigger RTDs build From 90f40bddbe0d8bd308461ed0cabc3699919185e8 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:38:53 -0700 Subject: [PATCH 07/14] tests workflow --- .github/workflows/test-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 08725ad1..fca7a50f 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -70,10 +70,10 @@ jobs: deploy-rtd: runs-on: ubuntu-latest - needs: [build-pypi, build-conda] + #needs: [build-pypi, build-conda] environment: test-deployment steps: - # Do not need to build and upload artifacts, just retrigger to update tags/version on website + # Do not need to build and upload artifacts, just retrigger to update tags/version on website - name: Trigger RTDs build uses: dfm/rtds-action@v1 with: From 561550ea34329d0f7642af8749a4714782b0a399 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:39:21 -0700 Subject: [PATCH 08/14] tests workflow --- .github/workflows/test-build.yml | 122 +++++++++++++++---------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index fca7a50f..241c31b5 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -6,67 +6,67 @@ on: push: branches: [dev] jobs: - build-pypi: - runs-on: ubuntu-latest - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Install Twine and Build - run: sudo pip install twine build - - - name: Create the distribution - run: | - git fetch --prune --unshallow --tags - sudo python3 -m build - - build-conda: - runs-on: ubuntu-latest - # sets default shell to remove need for source to run the conda shell - defaults: - run: - shell: bash -l {0} - environment: test-deployment - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - # Much better than manual installation, original version Miniconda2-4.7.10-Linux-x86_64.sh is broken - - uses: conda-incubator/setup-miniconda@v3 - with: - auto-activate-base: true - activate-environment: "" - miniconda-version: "latest" - - - name: Install the Conda Dependencies - run: | - conda config --set always_yes yes --set auto_update_conda false - conda update conda - conda install -n base conda-libmamba-solver - conda install python=3.10 conda-build colorama pip ruamel ruamel.yaml rich jsonschema -c conda-forge - git fetch --prune --unshallow --tags - pip install -e . - - # echo yes before login to prevent anaconda bug breaking automation - # git tags MUST be fetched otherwise output will be blank - # bash variables cannot be used in github actions, must use actions specific syntax and methods - # channels need to be specified on build and are saved in the package for installs - - name: Build the Anaconda Package - id: condabuild - run: | - conda install anaconda-client - conda clean --all - conda config --set anaconda_upload no --set solver libmamba - VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 - echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT +# build-pypi: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout Repository +# uses: actions/checkout@v4 +# +# - uses: actions/setup-python@v4 +# with: +# python-version: "3.10" +# +# - name: Install Twine and Build +# run: sudo pip install twine build +# +# - name: Create the distribution +# run: | +# git fetch --prune --unshallow --tags +# sudo python3 -m build +# +# build-conda: +# runs-on: ubuntu-latest +# # sets default shell to remove need for source to run the conda shell +# defaults: +# run: +# shell: bash -l {0} +# environment: test-deployment +# steps: +# - name: Checkout Repository +# uses: actions/checkout@v3 +# +# - uses: actions/setup-python@v4 +# with: +# python-version: "3.10" +# +# # Much better than manual installation, original version Miniconda2-4.7.10-Linux-x86_64.sh is broken +# - uses: conda-incubator/setup-miniconda@v3 +# with: +# auto-activate-base: true +# activate-environment: "" +# miniconda-version: "latest" +# +# - name: Install the Conda Dependencies +# run: | +# conda config --set always_yes yes --set auto_update_conda false +# conda update conda +# conda install -n base conda-libmamba-solver +# conda install python=3.10 conda-build colorama pip ruamel ruamel.yaml rich jsonschema -c conda-forge +# git fetch --prune --unshallow --tags +# pip install -e . +# +# # echo yes before login to prevent anaconda bug breaking automation +# # git tags MUST be fetched otherwise output will be blank +# # bash variables cannot be used in github actions, must use actions specific syntax and methods +# # channels need to be specified on build and are saved in the package for installs +# - name: Build the Anaconda Package +# id: condabuild +# run: | +# conda install anaconda-client +# conda clean --all +# conda config --set anaconda_upload no --set solver libmamba +# VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 +# echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT deploy-rtd: runs-on: ubuntu-latest From 2881b1d6195f249146a23c5d7534bd4b7b98c4a8 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:47:28 -0700 Subject: [PATCH 09/14] tests workflow --- .github/workflows/test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 241c31b5..f1f9adb9 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -73,7 +73,7 @@ jobs: #needs: [build-pypi, build-conda] environment: test-deployment steps: - # Do not need to build and upload artifacts, just retrigger to update tags/version on website + # Do not need to build and upload artifacts, just re-trigger to update tags/version on website - name: Trigger RTDs build uses: dfm/rtds-action@v1 with: From 9fc7020a535b2ae71c37d067a4f822d39e19aa4f Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 13:53:46 -0700 Subject: [PATCH 10/14] fix build error, link to docs requ --- .github/workflows/build.yml | 13 ++++ .github/workflows/test-build.yml | 124 +++++++++++++++---------------- .readthedocs.yaml | 2 +- 3 files changed, 76 insertions(+), 63 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 699be9e8..d1f13a9e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,3 +78,16 @@ jobs: id: condaload run: | anaconda upload -u slacgismo /usr/share/miniconda3/conda-bld/noarch/solar-data-tools-${{ steps.condabuild.outputs.gitversion }}-*.tar.bz2 + + deploy-rtd: + runs-on: ubuntu-latest + needs: [build-pypi, build-conda] + environment: deployment + steps: + # Do not need to build and upload artifacts, just re-trigger to update tags/version on website + - name: Trigger RTDs build + uses: dfm/rtds-action@v1 + with: + webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} + webhook_token: ${{ secrets.RTDS_WEBHOOK_TOKEN }} + commit_ref: ${{ github.ref }} diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index f1f9adb9..419315e0 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -6,71 +6,71 @@ on: push: branches: [dev] jobs: -# build-pypi: -# runs-on: ubuntu-latest -# steps: -# - name: Checkout Repository -# uses: actions/checkout@v4 -# -# - uses: actions/setup-python@v4 -# with: -# python-version: "3.10" -# -# - name: Install Twine and Build -# run: sudo pip install twine build -# -# - name: Create the distribution -# run: | -# git fetch --prune --unshallow --tags -# sudo python3 -m build -# -# build-conda: -# runs-on: ubuntu-latest -# # sets default shell to remove need for source to run the conda shell -# defaults: -# run: -# shell: bash -l {0} -# environment: test-deployment -# steps: -# - name: Checkout Repository -# uses: actions/checkout@v3 -# -# - uses: actions/setup-python@v4 -# with: -# python-version: "3.10" -# -# # Much better than manual installation, original version Miniconda2-4.7.10-Linux-x86_64.sh is broken -# - uses: conda-incubator/setup-miniconda@v3 -# with: -# auto-activate-base: true -# activate-environment: "" -# miniconda-version: "latest" -# -# - name: Install the Conda Dependencies -# run: | -# conda config --set always_yes yes --set auto_update_conda false -# conda update conda -# conda install -n base conda-libmamba-solver -# conda install python=3.10 conda-build colorama pip ruamel ruamel.yaml rich jsonschema -c conda-forge -# git fetch --prune --unshallow --tags -# pip install -e . -# -# # echo yes before login to prevent anaconda bug breaking automation -# # git tags MUST be fetched otherwise output will be blank -# # bash variables cannot be used in github actions, must use actions specific syntax and methods -# # channels need to be specified on build and are saved in the package for installs -# - name: Build the Anaconda Package -# id: condabuild -# run: | -# conda install anaconda-client -# conda clean --all -# conda config --set anaconda_upload no --set solver libmamba -# VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 -# echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT + build-pypi: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Install Twine and Build + run: sudo pip install twine build + + - name: Create the distribution + run: | + git fetch --prune --unshallow --tags + sudo python3 -m build + + build-conda: + runs-on: ubuntu-latest + # sets default shell to remove need for source to run the conda shell + defaults: + run: + shell: bash -l {0} + environment: test-deployment + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: "3.10" + + # Much better than manual installation, original version Miniconda2-4.7.10-Linux-x86_64.sh is broken + - uses: conda-incubator/setup-miniconda@v3 + with: + auto-activate-base: true + activate-environment: "" + miniconda-version: "latest" + + - name: Install the Conda Dependencies + run: | + conda config --set always_yes yes --set auto_update_conda false + conda update conda + conda install -n base conda-libmamba-solver + conda install python=3.10 conda-build colorama pip ruamel ruamel.yaml rich jsonschema -c conda-forge + git fetch --prune --unshallow --tags + pip install -e . + + # echo yes before login to prevent anaconda bug breaking automation + # git tags MUST be fetched otherwise output will be blank + # bash variables cannot be used in github actions, must use actions specific syntax and methods + # channels need to be specified on build and are saved in the package for installs + - name: Build the Anaconda Package + id: condabuild + run: | + conda install anaconda-client + conda clean --all + conda config --set anaconda_upload no --set solver libmamba + VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 + echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT deploy-rtd: runs-on: ubuntu-latest - #needs: [build-pypi, build-conda] + needs: [build-pypi, build-conda] environment: test-deployment steps: # Do not need to build and upload artifacts, just re-trigger to update tags/version on website diff --git a/.readthedocs.yaml b/.readthedocs.yaml index b0a73ba2..631c373e 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -19,7 +19,7 @@ sphinx: # Then, install special pinning for RTD. python: install: - - requirements: requirements.txt + - requirements: docs/requirements.txt - method: pip path: . From 69fce4a92bd0109f84cb86b24889f337402db8a8 Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 14:13:47 -0700 Subject: [PATCH 11/14] removes workflow trigger that was for testing --- .github/workflows/test-build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 419315e0..5c2231d4 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -3,8 +3,6 @@ name: Test Build on: pull_request: branches: [main] - push: - branches: [dev] jobs: build-pypi: runs-on: ubuntu-latest From a5c646dde2f76046a6eb90b2a427f2a3a2826b0d Mon Sep 17 00:00:00 2001 From: "Sara A. Miskovich" Date: Mon, 19 Aug 2024 14:41:39 -0700 Subject: [PATCH 12/14] removes jobs, turns out I don't need these --- .github/workflows/build.yml | 13 ------------- .github/workflows/test-build.yml | 13 ------------- 2 files changed, 26 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d1f13a9e..699be9e8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,16 +78,3 @@ jobs: id: condaload run: | anaconda upload -u slacgismo /usr/share/miniconda3/conda-bld/noarch/solar-data-tools-${{ steps.condabuild.outputs.gitversion }}-*.tar.bz2 - - deploy-rtd: - runs-on: ubuntu-latest - needs: [build-pypi, build-conda] - environment: deployment - steps: - # Do not need to build and upload artifacts, just re-trigger to update tags/version on website - - name: Trigger RTDs build - uses: dfm/rtds-action@v1 - with: - webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} - webhook_token: ${{ secrets.RTDS_WEBHOOK_TOKEN }} - commit_ref: ${{ github.ref }} diff --git a/.github/workflows/test-build.yml b/.github/workflows/test-build.yml index 5c2231d4..5c8b0010 100644 --- a/.github/workflows/test-build.yml +++ b/.github/workflows/test-build.yml @@ -65,16 +65,3 @@ jobs: conda config --set anaconda_upload no --set solver libmamba VERSION_FROM_GIT_TAG=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)test conda build . -c mosek -c slacgismo -c conda-forge -c stanfordcvxgrp --numpy 2.0 echo "gitversion=$(git tag --list "v*[0-9]" --sort=version:refname | tail -1 | cut -c 2-)" >> $GITHUB_OUTPUT - - deploy-rtd: - runs-on: ubuntu-latest - needs: [build-pypi, build-conda] - environment: test-deployment - steps: - # Do not need to build and upload artifacts, just re-trigger to update tags/version on website - - name: Trigger RTDs build - uses: dfm/rtds-action@v1 - with: - webhook_url: ${{ secrets.RTDS_WEBHOOK_URL }} - webhook_token: ${{ secrets.RTDS_WEBHOOK_TOKEN }} - commit_ref: ${{ github.ref }} From b63c391d60c6120b9871433121057b14fe7abc0e Mon Sep 17 00:00:00 2001 From: Meyers-Im Date: Mon, 19 Aug 2024 15:24:32 -0700 Subject: [PATCH 13/14] add signal decomposition to doc pages --- docs/source/project_details/tech_details.rst | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/source/project_details/tech_details.rst b/docs/source/project_details/tech_details.rst index ff4fe183..7560983a 100644 --- a/docs/source/project_details/tech_details.rst +++ b/docs/source/project_details/tech_details.rst @@ -11,4 +11,6 @@ details specifically on the automatic loss factor analysis of the unlabeled PV e loss factors using Shapley values. The estimation of the location and orientation algorithm (also a method of the DataHandler class) is described in this -`IEEE 2021 PVSC paper `_. \ No newline at end of file +`IEEE 2021 PVSC paper `_. + +Most of the algorithms make use of a "signal decomposition" framework that was developed in parallel with this software. You can find a monograph explaining this concept `here `_ (mirrored `here `_) and a "no math, no code" tutorial on signal decomposition `here `_. From 6d9223b91a08820b8299529047579050aad03024 Mon Sep 17 00:00:00 2001 From: Meyers-Im Date: Mon, 19 Aug 2024 15:34:57 -0700 Subject: [PATCH 14/14] anonymous references --- docs/source/project_details/tech_details.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/project_details/tech_details.rst b/docs/source/project_details/tech_details.rst index 7560983a..86ac168b 100644 --- a/docs/source/project_details/tech_details.rst +++ b/docs/source/project_details/tech_details.rst @@ -13,4 +13,4 @@ loss factors using Shapley values. The estimation of the location and orientation algorithm (also a method of the DataHandler class) is described in this `IEEE 2021 PVSC paper `_. -Most of the algorithms make use of a "signal decomposition" framework that was developed in parallel with this software. You can find a monograph explaining this concept `here `_ (mirrored `here `_) and a "no math, no code" tutorial on signal decomposition `here `_. +Most of the algorithms make use of a "signal decomposition" framework that was developed in parallel with this software. You can find a monograph explaining this concept `here `__ (mirrored `here `__) and a "no math, no code" tutorial on signal decomposition `here `__.