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
10 changes: 5 additions & 5 deletions .github/actions/build-test-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@ runs:
run: |
git config --global user.email "CI@example.com"
git config --global user.name "CI Almighty"
pip install tabulate # This produces summaries at the end
pip install -e .[test,extractors,streaming_extractors,test_extractors,full]
uv pip install --system tabulate # This produces summaries at the end
uv pip install --system -e .[test,extractors,streaming_extractors,test_extractors,full]
shell: bash
- name: Install git-annex
shell: bash
run: |
pip install datalad-installer
uv pip install --system datalad-installer
datalad-installer --sudo ok git-annex --method datalad/packages
git config --global filter.annex.process "git-annex filter-process" # recommended for efficiency
- name: Force installation of latest dev from key-packages when running dev (not release)
run: |
spikeinterface_is_dev_version=$(python -c "import spikeinterface; print(spikeinterface.DEV_MODE)")
if [ $spikeinterface_is_dev_version = "True" ]; then
echo "Running spikeinterface dev version"
pip install --no-cache-dir git+https://github.com/NeuralEnsemble/python-neo
pip install --no-cache-dir git+https://github.com/SpikeInterface/probeinterface
uv pip install --system git+https://github.com/NeuralEnsemble/python-neo
uv pip install --system git+https://github.com/SpikeInterface/probeinterface
fi
echo "Running tests for release, using pyproject.toml versions of neo and probeinterface"
shell: bash
72 changes: 38 additions & 34 deletions .github/workflows/all-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,13 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
enable-cache: true

- name: Free space
if: runner.os == 'Linux'
Expand Down Expand Up @@ -83,20 +87,20 @@ jobs:

- name: Install packages
run: |
pip install -e .[test_core]
uv pip install --system -e .[test_core]
shell: bash

- name: Pip list
run: pip list
run: uv pip list --system

- name: Test core
run: pytest -m "core"
shell: bash

- name: Install Dependencies for Timing Display
run: |
pip install tabulate
pip install pandas
uv pip install --system tabulate
uv pip install --system pandas
shell: bash

- name: Get current hash (SHA) of the ephy_testing_data repo
Expand All @@ -117,7 +121,7 @@ jobs:
shell: bash
if: env.RUN_EXTRACTORS_TESTS == 'true' || env.RUN_PREPROCESSING_TESTS == 'true'
run: |
pip install datalad-installer
uv pip install --system datalad-installer
if [ ${{ runner.os }} = 'Linux' ]; then
datalad-installer --sudo ok git-annex --method datalad/packages
elif [ ${{ runner.os }} = 'macOS' ]; then
Expand All @@ -141,78 +145,78 @@ jobs:
HDF5_PLUGIN_PATH: ${{ github.workspace }}/hdf5_plugin_path_maxwell
if: env.RUN_EXTRACTORS_TESTS == 'true'
run: |
pip install -e .[extractors,streaming_extractors,test_extractors]
pip list
uv pip install --system -e .[extractors,streaming_extractors,test_extractors]
uv pip list --system
./.github/run_tests.sh "extractors and not streaming_extractors" --no-virtual-env

- name: Test streaming extractors
shell: bash
if: env.RUN_STREAMING_EXTRACTORS_TESTS == 'true'
run: |
pip install -e .[streaming_extractors,test_extractors]
pip list
uv pip install --system -e .[streaming_extractors,test_extractors]
uv pip list --system
./.github/run_tests.sh "streaming_extractors" --no-virtual-env

- name: Test preprocessing
shell: bash
if: env.RUN_PREPROCESSING_TESTS == 'true'
run: |
pip install -e .[preprocessing,test_preprocessing]
pip list
uv pip install --system -e .[preprocessing,test_preprocessing]
uv pip list --system
./.github/run_tests.sh "preprocessing and not deepinterpolation" --no-virtual-env

- name: Install remaining testing dependencies # TODO: Remove this step once we have better modularization
shell: bash
run: |
pip install -e .[test]
pip list
uv pip install --system -e .[test]
uv pip list --system

- name: Test postprocessing
shell: bash
if: env.RUN_POSTPROCESSING_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh postprocessing --no-virtual-env

- name: Test metrics
shell: bash
if: env.RUN_METRICS_TESTS == 'true'
run: |
pip install -e .[metrics]
pip list
uv pip install --system -e .[metrics]
uv pip list --system
./.github/run_tests.sh metrics --no-virtual-env

- name: Test comparison
shell: bash
if: env.RUN_COMPARISON_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh comparison --no-virtual-env

- name: Test core sorters
shell: bash
if: env.RUN_SORTERS_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh sorters --no-virtual-env

- name: Test internal sorters
shell: bash
if: env.RUN_INTERNAL_SORTERS_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh sorters_internal --no-virtual-env

- name: Test curation
shell: bash
if: env.RUN_CURATION_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh curation --no-virtual-env

- name: Test widgets
Expand All @@ -221,24 +225,24 @@ jobs:
env:
KACHERY_ZONE: "scratch"
run: |
pip install -e .[full,widgets]
pip list
uv pip install --system -e .[full,widgets]
uv pip list --system
./.github/run_tests.sh widgets --no-virtual-env -s

- name: Test exporters
shell: bash
if: env.RUN_EXPORTERS_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh exporters --no-virtual-env

- name: Test sortingcomponents
shell: bash
if: env.RUN_SORTINGCOMPONENTS_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system

# Internal shell check for platform and env var
if [[ "$RUNNER_OS" == "macOS" ]]; then
Expand All @@ -258,6 +262,6 @@ jobs:
shell: bash
if: env.RUN_GENERATION_TESTS == 'true'
run: |
pip install -e .[full]
pip list
uv pip install --system -e .[full]
uv pip list --system
./.github/run_tests.sh generation --no-virtual-env
11 changes: 7 additions & 4 deletions .github/workflows/caches_cron_job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,13 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.11'
enable-cache: true
- name: Create the directory to store the data
run: |
mkdir -p ~/spikeinterface_datasets/ephy_testing_data/
Expand All @@ -45,16 +49,15 @@ jobs:
run: |
git config --global user.email "CI@example.com"
git config --global user.name "CI Almighty"
python -m pip install -U pip # Official recommended way
pip install datalad-installer
uv pip install --system datalad-installer
if [ ${{ runner.os }} == 'Linux' ]; then
datalad-installer --sudo ok git-annex --method datalad/packages
elif [ ${{ runner.os }} == 'macOS' ]; then
datalad-installer --sudo ok git-annex --method brew
elif [ ${{ runner.os }} == 'Windows' ]; then
datalad-installer --sudo ok git-annex --method datalad/git-annex:release
fi
pip install datalad
uv pip install --system datalad
git config --global filter.annex.process "git-annex filter-process" # recommended for efficiency
shell: bash
- name: Download dataset
Expand Down
13 changes: 8 additions & 5 deletions .github/workflows/core-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,26 @@ jobs:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.11'
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.11'
enable-cache: true
- name: Install dependencies
run: |
git config --global user.email "CI@example.com"
git config --global user.name "CI Almighty"
python -m pip install -U pip # Official recommended way
pip install -e .[test_core]
uv pip install --system -e .[test_core]
- name: Test core with pytest
run: |
pytest -m "core" -vv -ra --durations=0 --durations-min=0.001 | tee report.txt; test $? -eq 0 || exit 1
shell: bash # Necessary for pipeline to work on windows
- name: Build test summary
run: |
pip install pandas
pip install tabulate
uv pip install --system pandas
uv pip install --system tabulate
echo "# Timing profile of core tests in ${{matrix.os}}" >> $GITHUB_STEP_SUMMARY
# Outputs markdown summary to standard output
python ./.github/scripts/build_job_summary.py report.txt >> $GITHUB_STEP_SUMMARY
Expand Down
17 changes: 10 additions & 7 deletions .github/workflows/deepinterpolation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,13 @@ jobs:
os: ["ubuntu-latest"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.10'
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.10'
enable-cache: false
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v46.0.1
Expand All @@ -38,16 +42,15 @@ jobs:
- name: Install dependencies
if: ${{ steps.modules-changed.outputs.DEEPINTERPOLATION_CHANGED == 'true' }}
run: |
python -m pip install -U pip # Official recommended way
# install deepinteprolation
pip install tensorflow==2.8.4
pip install deepinterpolation@git+https://github.com/AllenInstitute/deepinterpolation.git
pip install numpy==1.26.4
pip install -e .[full,test_core]
uv pip install --system tensorflow==2.8.4
uv pip install --system deepinterpolation@git+https://github.com/AllenInstitute/deepinterpolation.git
uv pip install --system numpy==1.26.4
uv pip install --system -e .[full,test_core]
- name: Pip list
if: ${{ steps.modules-changed.outputs.DEEPINTERPOLATION_CHANGED == 'true' }}
run: |
pip list
uv pip list --system
- name: Test DeepInterpolation with pytest
if: ${{ steps.modules-changed.outputs.DEEPINTERPOLATION_CHANGED == 'true' }}
run: |
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/full-test-with-codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,13 @@ jobs:
os: ["ubuntu-latest", ]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.12'
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.12'
enable-cache: true
- name: Free space
run: |
sudo rm -rf /usr/local/lib/android
Expand Down Expand Up @@ -50,7 +54,7 @@ jobs:
- name: Install packages
uses: ./.github/actions/build-test-environment
- name: Pip list
run: pip list
run: uv pip list --system
- name: run tests
env:
HDF5_PLUGIN_PATH: ${{ github.workspace }}/hdf5_plugin_path_maxwell
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/installation-tips-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ on:
schedule:
- cron: "0 12 * * 0" # Weekly at noon UTC on Sundays

env:
UV_SYSTEM_PYTHON: 1

jobs:
installation-tips-testing:
name: Test uv installation on ${{ matrix.os }} OS
Expand All @@ -21,14 +18,17 @@ jobs:
- os: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: '3.12'
- name: Install uv
uses: astral-sh/setup-uv@v6
uses: astral-sh/setup-uv@v7
with:
python-version: '3.12'
enable-cache: true

- name: Install requirements
run: uv pip install -r ./installation_tips/beginner_requirements_stable.txt
run: uv pip install --system -r ./installation_tips/beginner_requirements_stable.txt
- name: Check Installation Tips (mac)
if: ${{ matrix.os == 'macos-latest' }}
run: python ./installation_tips/check_your_install.py --ci --short --skip-kilosort4 # ci flag turns off gui
Expand Down
15 changes: 9 additions & 6 deletions .github/workflows/publish-to-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,19 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.12'
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.12'
enable-cache: true
- name: Install dependencies for testing
run: |
python -m pip install -U pip # Official recommended way
pip install pytest
pip install zarr
pip install setuptools wheel twine build
pip install -e .[test_core]
uv pip install --system pytest
uv pip install --system zarr
uv pip install --system setuptools wheel twine build
uv pip install --system -e .[test_core]
- name: Test core with pytest
run: |
pytest -v src/spikeinterface/core
Expand Down
Loading
Loading