Repository: ImperialCollegeLondon/sharpy (language: python)

Issue:
Hotfix for documentation search
https://github.com/readthedocs/sphinx_rtd_theme/pull/1448
https://github.com/readthedocs/sphinx_rtd_theme/issues/1452
readthedocs sphinx_rtd_theme update to 1.2.2 to fix loading of sphinx-contrib-jquery to fix doc search


Discussion / hints:

Fix patch:
diff --git a/Dockerfile b/Dockerfile
index 90c0450d7..e6ca1d9df 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -3,7 +3,7 @@ FROM centos:8
 ENV PYTHONDONTWRITEBYTECODE=true
 ENV BASH_ENV ~/.bashrc
 SHELL ["/bin/bash", "-c"]
-ENV PATH=${PATH}:/miniconda3/bin
+ENV PATH=${PATH}:/mamba/bin
 
 # CENTOS 8 has reached end of life - Not yet an updated Docker base for CentOS stream
 # Point to the CentOS 8 vault in order to download dependencies
@@ -17,31 +17,32 @@ RUN yum groupinstall "Development Tools" -y --nogpgcheck && \
     yum install -y --nogpgcheck mesa-libGL libXt libXt-devel wget gcc-gfortran lapack vim tmux && \
     yum clean all
 
-# Install miniconda
-RUN wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /miniconda.sh && \
-    chmod +x /miniconda.sh && \
-    /miniconda.sh -b -p /miniconda3/ && \
-    rm /miniconda.sh && hash -r
+# Install Mamba
+# Swapped from Conda to Mamba due to Github runner memory constraint
+RUN wget --no-check-certificate https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh -O /mamba.sh && \
+    chmod +x /mamba.sh && \
+    /mamba.sh -b -p /mamba/ && \
+    rm /mamba.sh && hash -r
 
 ADD / /sharpy_dir/
 
-# Update conda and make it run with no user interaction
-# Cleanup conda installation
-RUN conda init bash && \
-    conda config --set always_yes yes --set changeps1 no && \
-    conda update -q conda && \
-    conda config --set auto_activate_base false && \
-    conda env create -f /sharpy_dir/utils/environment.yml && conda clean -afy && \
+# Update mamba and make it run with no user interaction
+# Cleanup mamba installation
+RUN mamba init bash
+RUN mamba config --set always_yes yes --set changeps1 no
+RUN mamba update -q conda
+RUN mamba config --set auto_activate_base false
+RUN mamba env create -f /sharpy_dir/utils/environment.yml && mamba clean -afy && \
 
-    find /miniconda3/ -follow -type f -name '*.a' -delete && \
-    find /miniconda3/ -follow -type f -name '*.pyc' -delete && \
-    find /miniconda3/ -follow -type f -name '*.js.map' -delete
+    find /mamba/ -follow -type f -name '*.a' -delete && \
+    find /mamba/ -follow -type f -name '*.pyc' -delete && \
+    find /mamba/ -follow -type f -name '*.js.map' -delete
 
 #COPY /utils/docker/* /root/
 RUN ln -s /sharpy_dir/utils/docker/* /root/
 
 RUN cd sharpy_dir && \
-    conda activate sharpy && \
+    mamba activate sharpy && \
     git submodule update --init --recursive && \
     mkdir build && \
     cd build && \
diff --git a/docs/source/content/example_notebooks/linear_goland_flutter.ipynb b/docs/source/content/example_notebooks/linear_goland_flutter.ipynb
index f3ddf9490..63cd87273 100644
--- a/docs/source/content/example_notebooks/linear_goland_flutter.ipynb
+++ b/docs/source/content/example_notebooks/linear_goland_flutter.ipynb
@@ -23,7 +23,7 @@
     "* Evaluate the stability of the linearised aeroelastic system at different velocities and plot the results.\n",
     "\n",
     "## Wing properties\n",
-    "Span: b=20 ft., chord: c=6 ft., weight: 4 psi., radius of gyration about CG: .25c, elastic axis: 0.33c,, centre of gravity: 0.43c\n",
+    "Span: b=20 ft., chord: c=6 ft., weight: 4 psi., radius of gyration about CG: .25c, elastic axis: 0.33c, centre of gravity: 0.43c\n",
     "\n",
     "### References\n",
     "\n",
@@ -79,7 +79,7 @@
    "outputs": [],
    "source": [
     "u_inf = 1.\n",
-    "alpha_deg = 2.  # Define antle of attack for static aeroelastic analsis.\n",
+    "alpha_deg = 2.  # Define angle of attack for static aeroelastic analysis.\n",
     "rho = 1.02      # Air density."
    ]
   },
@@ -100,8 +100,8 @@
    "source": [
     "M = 16             # Number of chordwise panels\n",
     "N = 32             # Number of spanwise panels\n",
-    "M_star_fact = 10   # Length of the  chords in chords.\n",
-    "num_modes =  8     # Mumber of vibration modes retained in the structural model."
+    "M_star_fact = 10   # Length of the wake in chords.\n",
+    "num_modes =  8     # Number of vibration modes retained in the structural model."
    ]
   },
   {
@@ -531,7 +531,7 @@
    "source": [
     "### Stability \n",
     "\n",
-    "The stability of the Goland wing is now analysed under changing free stream velocity. The flutter modes involves the two lowest frequency modes near the imaginar axis (1st bending and 1st torsion if aerodynamics is removed). The two modes are seen quite separated at 100 m/s. As speed is increased, the damping of the torsion mode decreases until it crosses the imaginary axis onto the right hand plane and flutter begins."
+    "The stability of the Goland wing is now analysed under changing free stream velocity. The flutter modes involves the two lowest frequency modes near the imaginary axis (1st bending and 1st torsion if aerodynamics is removed). The two modes are seen quite separated at 100 m/s. As speed is increased, the damping of the torsion mode decreases until it crosses the imaginary axis onto the right hand plane and flutter begins."
    ]
   },
   {


Test patch:
diff --git a/.github/workflows/sharpy_tests.yaml b/.github/workflows/sharpy_tests.yaml
index d5dff4462..5b8b1d546 100644
--- a/.github/workflows/sharpy_tests.yaml
+++ b/.github/workflows/sharpy_tests.yaml
@@ -31,28 +31,25 @@ jobs:
         with:
           version: 10
           platform: x64
-      - name: Setup conda
-        uses: s-weigand/setup-conda@v1
-        with:
-          python-version: 3.9
+        #Swapped from Conda to Mamba due to Github runner memory constraint
+      - name: Setup Mamba
+        uses: mamba-org/setup-micromamba@v1
       - name: Pre-Install dependencies
         run: |
           gfortran --version
-          wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
-          # wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh -O miniconda.sh;
-          bash miniconda.sh -b -p $HOME/miniconda
-          export PATH="$HOME/miniconda/bin:$PATH"
+          wget --no-check-certificate https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh -O mamba.sh
+          bash mamba.sh -b -p $HOME/mamba
+          export PATH="$HOME/mamba/bin:$PATH"
           hash -r
-          conda config --set always_yes yes --set changeps1 no
-          # conda config --append channels conda-forge
-          conda update --name base conda
-          conda list --name base conda
-          conda init bash
+          mamba config --set always_yes yes --set changeps1 no
+          mamba update --name base mamba
+          mamba list --name base mamba
+          mamba init bash
           hash -r
           export QT_QPA_PLATFORM='offscreen'
           sudo apt install libeigen3-dev
-          conda env create -f utils/environment.yml
-          conda init bash
+          mamba env create -f utils/environment.yml
+          mamba init bash
           source activate sharpy
           git submodule init
           git submodule update