add t-distribution to SpatialKernel, fix up kernel code #952
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# It's useful to use yamllint to find problems with this file; | |
# pip install --user yamllint, python3 -m yamllint <file> | |
# | |
# It is quite aggressive by default, though, so I've disabled some rules | |
# | |
# yamllint disable rule:document-start | |
# yamllint disable rule:line-length | |
# yamllint disable rule:brackets | |
# yamllint disable rule:braces | |
name: tests | |
on: [push, pull_request] # yamllint disable-line rule:truthy | |
jobs: | |
canceller: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Cancel previous runs | |
uses: styfle/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
CLI: | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Ubuntu with the oldest supported GCC (used to be 4.8, but with 20.04 it is 7, sadly). | |
- os: ubuntu-20.04 | |
gcc: 7 | |
python: 3.8 | |
# Ubuntu with the most recent GCC (on 22.04, that is 12). | |
- os: ubuntu-22.04 | |
gcc: 12 | |
python: 3.9 | |
# macOS, oldest supported version (macos-10.15 was removed by GitHub) | |
- os: macos-11 | |
python: 3.8 | |
# macOS, newest supported version (macos-13 does not work yet) | |
- os: macos-12 | |
python: 3.9 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Choose GCC | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
# Install specific GCC version as the default. | |
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }} | |
sudo update-alternatives \ | |
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \ | |
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }} | |
- name: Cache conda and dependancies | |
id: cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
c:\Miniconda\envs\anaconda-client-env | |
/usr/share/miniconda/envs/anaconda-client-env | |
~/osx-conda | |
~/.profile | |
key: ${{ runner.os }}-${{ matrix.python }}-conda-v13-${{ hashFiles('treerec/tests/conda-requirements.txt') }}-${{ hashFiles('treerec/tests/pip-requirements.txt') }} | |
- name: Install Conda | |
uses: conda-incubator/setup-miniconda@v2 | |
if: steps.cache.outputs.cache-hit != 'true' | |
with: | |
activate-environment: anaconda-client-env | |
python-version: ${{ matrix.python }} | |
channels: conda-forge | |
channel-priority: strict | |
auto-update-conda: true | |
use-only-tar-bz2: true | |
- name: Install conda deps | |
if: steps.cache.outputs.cache-hit != 'true' | |
shell: bash -l {0} # We need a login shell to get conda | |
run: conda install --yes --file=treerec/tests/conda-requirements.txt | |
- name: Install pip deps | |
if: steps.cache.outputs.cache-hit != 'true' | |
shell: bash -l {0} | |
run: | | |
pip3 install -r treerec/tests/pip-requirements.txt | |
- name: Fix OSX Cache Write # OSX Won't let the cache restore due to file perms | |
if: steps.cache.outputs.cache-hit != 'true' && startsWith(matrix.os, 'macos') | |
run: | | |
cp -r /usr/local/miniconda/envs/anaconda-client-env ~/osx-conda | |
- name: Fix OSX Cache Restore | |
if: steps.cache.outputs.cache-hit == 'true' && startsWith(matrix.os, 'macos') | |
run: | | |
sudo mkdir -p /usr/local/miniconda/envs | |
sudo cp -r ~/osx-conda /usr/local/miniconda/envs/anaconda-client-env | |
- name: Install pyslim | |
shell: bash -l {0} | |
run: | | |
# TODO: uncomment when pyslim 1.0 on conda | |
source ~/.profile | |
# conda activate anaconda-client-env | |
# pip install pyslim | |
git clone https://github.com/tskit-dev/pyslim.git | |
cd pyslim | |
pip3 install . | |
- name: Build (Debug) | |
run: | | |
mkdir Debug | |
cd Debug | |
cmake -D CMAKE_BUILD_TYPE=Debug .. | |
make -j 2 | |
- name: Test (Debug) | |
run: | | |
cd Debug | |
./eidos -testEidos | |
./slim -testEidos | |
./slim -testSLiM | |
- name: Build (Release) | |
run: | | |
mkdir Release | |
cd Release | |
cmake -D CMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
- name: Test (Release) | |
run: | | |
cd Release | |
./eidos -testEidos | |
./slim -testEidos | |
./slim -testSLiM | |
- name: Treesequence tests | |
run: | | |
source ~/.profile | |
conda activate anaconda-client-env | |
export PATH=$PATH:$PWD/Release | |
echo $PATH | |
cd treerec/tests && python -m pytest -xv | |
GUI: | |
runs-on: ${{ matrix.os }} | |
env: | |
CXXFLAGS: -D NO_QT_VERSION_ERROR | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# Ubuntu with the oldest supported Qt and GCC. | |
- os: ubuntu-20.04 | |
qt: 5.9.5 | |
gcc: 7 | |
# Ubuntu with the most recent Qt and GCC. | |
- os: ubuntu-20.04 | |
qt: 5.15.2 | |
gcc: 11 | |
# Ubuntu with the most recent Qt and GCC. | |
- os: ubuntu-22.04 | |
qt: 5.15.2 | |
gcc: 12 | |
# old macOS with oldest supported Qt. | |
- os: macos-11 | |
qt: 5.9.5 | |
# new macOS with most recent Qt (macos-13 does not work yet) | |
- os: macos-12 | |
qt: 5.15.2 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Choose GCC | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get install gcc-${{ matrix.gcc }} g++-${{ matrix.gcc }} | |
sudo update-alternatives \ | |
--install /usr/bin/gcc gcc /usr/bin/gcc-${{ matrix.gcc }} 100 \ | |
--slave /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.gcc }} | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: ${{ matrix.qt }} | |
setup-python: true | |
- name: Build (cmake) | |
run: | | |
# Just do a release build. | |
mkdir Release | |
cd Release | |
cmake -D BUILD_SLIMGUI=ON -D CMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
- name: Build (qmake) | |
run: | | |
mkdir QtSLiM_QMAKE | |
cd QtSLiM_QMAKE | |
qmake .. | |
make -j 2 | |
# test windows-latest compilation | |
tests-windows-latest-CLI: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, env: x86_64, python: 3.8 } | |
- { sys: ucrt64, env: ucrt-x86_64, python: 3.8 } | |
name: Windows CLI (${{ matrix.sys }}, ${{ matrix.env }}) | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Setup MSYS2 ${{matrix.sys}} | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
git | |
base-devel | |
msys2-devel | |
mingw-w64-${{matrix.env}}-toolchain | |
mingw-w64-${{matrix.env}}-cmake | |
- name: Cache conda and dependancies | |
id: cache | |
uses: actions/cache@v2 | |
with: | |
path: | | |
c:\Miniconda\envs\anaconda-client-env | |
~/.bash_profile | |
~/.profile | |
key: ${{ runner.os }}-${{ matrix.python}}-conda-v16-${{ hashFiles('treerec/tests/conda-requirements.txt') }}-${{ hashFiles('treerec/tests/pip-requirements.txt') }} | |
- name: Install Conda | |
uses: conda-incubator/setup-miniconda@v2 | |
if: steps.cache.outputs.cache-hit != 'true' | |
with: | |
activate-environment: anaconda-client-env | |
python-version: ${{ matrix.python }} | |
channels: conda-forge | |
channel-priority: strict | |
auto-update-conda: true | |
use-only-tar-bz2: true | |
- name: Install conda deps | |
if: steps.cache.outputs.cache-hit != 'true' | |
shell: bash -l {0} | |
run: | | |
conda install --yes --file=treerec/tests/conda-requirements.txt | |
- name: Install pip deps | |
if: steps.cache.outputs.cache-hit != 'true' | |
shell: bash -l {0} | |
run: | | |
pip install -r treerec/tests/pip-requirements.txt | |
- name: Install pyslim | |
shell: bash -l {0} | |
run: | | |
# TODO: uncomment when pyslim 1.0 is on conda | |
# conda install -c conda-forge pyslim | |
git clone https://github.com/tskit-dev/pyslim.git | |
cd pyslim | |
pip3 install . | |
- name: Debug | |
run: | | |
cd windows_compat/gnulib | |
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in | |
cd ../.. | |
mkdir Debug | |
cd Debug | |
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug .. | |
make -j 2 | |
- name: Build (Release) | |
run: | | |
cd windows_compat/gnulib | |
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in | |
cd ../.. | |
mkdir Release | |
cd Release | |
cmake -G"MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
- name: Test (Release) | |
run: | | |
cd Release | |
./eidos -testEidos | |
./slim -testEidos | |
./slim -testSLiM | |
- name: Treesequence tests | |
shell: bash -l {0} | |
run: | | |
export PATH=$PATH:$(pwd)/Release | |
cd treerec/tests | |
python -m pytest -xv | |
tests-windows-latest-GUI: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, env: x86_64 } | |
- { sys: ucrt64, env: ucrt-x86_64 } | |
name: Windows GUI (${{ matrix.sys }}, ${{ matrix.env }}) | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Setup MSYS2 ${{matrix.sys}} | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
git | |
base-devel | |
msys2-devel | |
mingw-w64-${{matrix.env}}-toolchain | |
mingw-w64-${{matrix.env}}-cmake | |
mingw-w64-${{matrix.env}}-qt5-base | |
- name: Build (cmake) | |
run: | | |
cd . | |
cd windows_compat/gnulib | |
touch --date="`date`" aclocal.m4 Makefile.am configure configure.ac config.h.in Makefile.in | |
cd ../.. | |
# Just do a release build. | |
mkdir Release | |
cd Release | |
cmake -G"MSYS Makefiles" -DBUILD_SLIMGUI=ON -DCMAKE_BUILD_TYPE=Release .. | |
make -j 2 | |
tests-windows-latest-pacman: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, env: x86_64 } | |
- { sys: ucrt64, env: ucrt-x86_64 } | |
name: Windows pacman (${{ matrix.sys }}, ${{ matrix.env }}) | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Setup MSYS2 ${{matrix.sys}} | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
mingw-w64-${{matrix.env}}-slim-simulator | |
- name: Test | |
run: | | |
eidos -testEidos | |
slim -testEidos | |
slim -testSLiM |