Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare 0.101.0 release #3163

Merged
merged 17 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from 12 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
4 changes: 2 additions & 2 deletions .github/import_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
time_taken_list.append(time_taken)

for time in time_taken_list:
import_time_threshold = 2.0 # Most of the times is sub-second but there outliers
import_time_threshold = 3.0 # Most of the times is sub-second but there outliers
if time >= import_time_threshold:
exceptions.append(
f"Importing {import_statement} took: {time:.2f} s. Should be <: {import_time_threshold} s."
Expand All @@ -59,7 +59,7 @@
times_list_str = ", ".join(f"{time:.2f}" for time in time_taken_list)
markdown_output += f"| `{import_statement}` | {avg_time:.2f} | {std_time:.2f} | {times_list_str} |\n"

import_time_threshold = 1.0
import_time_threshold = 2.0
if avg_time > import_time_threshold:
exceptions.append(
f"Importing {import_statement} took: {avg_time:.2f} s in average. Should be <: {import_time_threshold} s."
Expand Down
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,13 @@
[![Twitter](https://img.shields.io/badge/@spikeinterface-%231DA1F2.svg?style=for-the-badge&logo=Twitter&logoColor=white)](https://twitter.com/spikeinterface) [![Mastodon](https://img.shields.io/badge/-@spikeinterface-%232B90D9?style=for-the-badge&logo=mastodon&logoColor=white)](https://fosstodon.org/@spikeinterface)


> :warning::warning::warning:
> **New features under construction!** 🚧🚧🚧: after the 0.100.0 release (and related bug fixes), the next release will contain
> a major API improvement: the `SortingAnalyzer`. To read more about this, checkout the
> [enhancement proposal](https://github.com/SpikeInterface/spikeinterface/issues/2282).
> Please refer to the stable documentation [here](https://spikeinterface.readthedocs.io/en/0.100.4)
> :rocket::rocket::rocket:
alejoe91 marked this conversation as resolved.
Show resolved Hide resolved
> **New features!**: after months of development and testing, we are happy to announce that
> the latest release (0.101.0) includes a major API improvement: the `SortingAnalyzer`!
> To read more about why we did this, checkout the
> [SpikeInterface Enhancement Proposal](https://github.com/SpikeInterface/spikeinterface/issues/2282).
> Please follow this guide to transition from the old API to the new one:
> [Updating from legacy](https://spikeinterface.readthedocs.io/en/0.101.0/tutorials/waveform_extractor_to_sorting_analyzer.html).


SpikeInterface is a Python framework designed to unify preexisting spike sorting technologies into a single code base.
Expand All @@ -74,12 +76,14 @@ With SpikeInterface, users can:

## Documentation

Detailed documentation of the latest PyPI release of SpikeInterface can be found [here](https://spikeinterface.readthedocs.io/en/0.100.1).
Detailed documentation of the latest PyPI release of SpikeInterface can be found [here](https://spikeinterface.readthedocs.io/en/stable).

Detailed documentation of the development version of SpikeInterface can be found [here](https://spikeinterface.readthedocs.io/en/latest).

Several tutorials to get started can be found in [spiketutorials](https://github.com/SpikeInterface/spiketutorials).

Checkout our YouTube channel for video tutorials: [SpikeInterface YouTube Channel](https://www.youtube.com/@Spikeinterface).

There are also some useful notebooks [on our blog](https://spikeinterface.github.io) that cover advanced benchmarking
and sorting components.

Expand Down Expand Up @@ -128,3 +132,6 @@ If you find SpikeInterface useful in your research, please cite:
publisher={eLife Sciences Publications Limited}
}
```

Please also cite other relevant papers for the specific components you use.
For a ful list of references, please check the [references](https://spikeinterface.readthedocs.io/en/latest/references.html) page.
Binary file modified doc/images/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
16 changes: 16 additions & 0 deletions doc/releases/0.100.8.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
.. _release0.100.8:

SpikeInterface 0.100.8 release notes
------------------------------------

24th June 2024

Minor release with bug fixes

* Remove separate default job_kwarg n_jobs for sorters (#2712)
* Fix math error in sd_ratio (#2964)
* Add `whiteningRange` added as Kilosort 2/2.5/3 parameter (#2997)
* Make sure we check `is_filtered()`` rather than bound method during run basesorter (#3037)
* Numpy 2.0 cap Fix most egregorious deprecated behavior and cap version (#3032, #3056)
* Add support for kilosort>=4.0.12 (#3055)
* Check start_frame/end_frame in BaseRecording.get_traces() (#3059)
370 changes: 370 additions & 0 deletions doc/releases/0.101.0.rst

Large diffs are not rendered by default.

41 changes: 41 additions & 0 deletions doc/scripts/auto-release-notes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 START_DATE END_DATE [LABEL] [BRANCH1,BRANCH2] [LIMIT]"
exit 1
fi

START_DATE="$1"
END_DATE="$2"

if [ -z "$3" ] || [ "$3" = "all" ]; then
LABELS=("core" "extractors" "sorters" "postprocessing" "qualitymetrics" "curation" "widgets" "generation" "hybrid" "sortingcomponents" "motion correction" "documentation" "continuous integration" "packaging" "testing")
else
LABELS=("$3")
fi

if [ -n "$4" ]; then
IFS=',' read -ra BRANCHES <<< "$4"
fi

if [ -n "$5" ]; then
LIMIT=$5
else
LIMIT=300
fi

for LABEL in "${LABELS[@]}"; do
echo "$LABEL:"
echo ""
for BRANCH in "${BRANCHES[@]}"; do
gh pr list --repo SpikeInterface/spikeinterface --limit $LIMIT --label "$LABEL" --base "$BRANCH" --state merged --json number,title,mergedAt \
| jq -r --arg start_date "${START_DATE}T00:00:00Z" --arg end_date "${END_DATE}T00:00:00Z" \
'.[] | select(.mergedAt >= $start_date and .mergedAt <= $end_date) | "* \(.title) (#\(.number))"'
done
echo ""
done

echo "Contributors:"
echo ""
gh pr list --repo SpikeInterface/spikeinterface --limit 1000 --base main --state merged --json number,title,author,mergedAt \
| jq -r --arg start_date "${START_DATE}T00:00:00Z" --arg end_date "${END_DATE}T00:00:00Z" \
'[.[] | select(.mergedAt >= $start_date and .mergedAt <= $end_date) | .author.login] | unique | .[] | "* @" + .'
18 changes: 15 additions & 3 deletions doc/whatisnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ Release notes
.. toctree::
:maxdepth: 1

releases/0.101.0.rst
releases/0.100.8.rst
releases/0.100.7.rst
releases/0.100.6.rst
releases/0.100.5.rst
Expand Down Expand Up @@ -41,10 +43,20 @@ Release notes
releases/0.9.1.rst


(PRE-RELEASE) Version 0.101.0rc0
================================
Version 0.101.0
===============

* Implementation of `SortingAnalyzer`` (#2398)
* Added framework for hybrid recording generation (#2436, #2769, #2857)
* Improved auto-merging functions and enable `SortingAnalyzer` to merge units and extensions (#2934, #3043, #3154)
* Refactored motion correction with addition of DREDGE AP and LFP (#2915, #3062)
* Better handling of time information (#3118, #3119, #3120)


* Major release with `SortingAnalyzer`
Version 0.100.8
===============

* Minor release with bug fixes

Version 0.100.7
===============
Expand Down
10 changes: 5 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "spikeinterface"
version = "0.101.0rc0"
version = "0.101.0"
authors = [
{ name="Alessio Buccino", email="[email protected]" },
{ name="Samuel Garcia", email="[email protected]" },
Expand Down Expand Up @@ -125,16 +125,16 @@ test_core = [

# for github test : probeinterface and neo from master
# for release we need pypi, so this need to be commented
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
]

test_extractors = [
# Functions to download data in neo test suite
"pooch>=1.8.2",
"datalad>=1.0.2",
"probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
"neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
# "probeinterface @ git+https://github.com/SpikeInterface/probeinterface.git",
# "neo @ git+https://github.com/NeuralEnsemble/python-neo.git",
]

test_preprocessing = [
Expand Down
4 changes: 2 additions & 2 deletions src/spikeinterface/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@
# This flag must be set to False for release
# This avoids using versioning that contains ".dev0" (and this is a better choice)
# This is mainly useful when using run_sorter in a container and spikeinterface install
DEV_MODE = True
# DEV_MODE = False
# DEV_MODE = True
DEV_MODE = False
Loading