Skip to content
Draft
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
38 changes: 38 additions & 0 deletions doc/auto-release-notes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/bin/bash
if [ $# -eq 0 ]; then
echo "Usage: $0 START_DATE (format: YEAR-MM-DD) END_DATE [LABEL] [BRANCH1,BRANCH2] [LIMIT]"
exit 1
fi

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

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

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

OUTPUT=""
for BRANCH in "${BRANCHES[@]}"; do
OUTPUT+=$(gh pr list --repo SpikeInterface/probeinterface --limit $LIMIT --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
if [ -n "$OUTPUT" ]; then
echo ""
echo "$OUTPUT"
echo ""
fi

echo "Contributors:"
echo ""
gh pr list --repo SpikeInterface/probeinterface --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 and .author.login != "app/pre-commit-ci") | .author.login] | unique | .[] | "* @" + .'
1 change: 1 addition & 0 deletions doc/release_notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Release notes
.. toctree::
:maxdepth: 1

releases/0.4.0.rst
releases/0.3.2.rst
releases/0.3.1.rst
releases/0.3.0.rst
Expand Down
59 changes: 59 additions & 0 deletions doc/releases/0.4.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
probeinterface 0.4.0
--------------------

Jul, 6th 2026


Features
^^^^^^^^

* Add regex validation pattern in schema version propert (#450)
* Enhance `ProbeGroup` API and add `ProbeGroup._global_contact_order` for interleaved contacts (#446)
* Add Neuropixels 2.0 support to `read_spikegadgets_neuropixels` (#441)
* Add Neuropixels saturation levels estimation from probe table/metadata (#434)
* Auto-generate `contact_ids` when not explicitly set (#429)
* Migrate `read_spikegadgets` to the catalogue pattern (#418)
* Make `_parse_imro_string` self-contained by deriving IMRO field schemas from the catalogue (#417)
* Implement copy/get_slice/get_global_contact_positions for probegroup (#416)
* Remove legacy probe construction path for `read_imro` and support NP1110 (#410)

Bug fixes
^^^^^^^^^

* Preserve planar contour on ProbeGroup slicing and clarify ambiguous `select_contacts` errors (#453)
* Discard 'apps' folder when listing manufacturers (#451)
* Raise on wrong-sized `device_channel_indices` instead of silently accepting (#430)
* Preserve identity on `Probe.copy()` (#428)
* Add contact_sides to JSON schema (#419)
* Fix quad-base with custom names (#413)


Deprecations
^^^^^^^^^^^^

* Rename `read_spikegadgets` to `read_spikegadgets_neuropixels` and add `has_spikegadgets_neuropixels_probes` (#440)
* Rename `read_openephys` to `read_openephys_neuropixels` and add `has_neuropixels_probes` (#427)


Testing
^^^^^^^

* Update CI actions (#438)
* Add NP2020 probe to test suite (#435)

Docs
^^^

* Document the Neuropixels catalogue pattern (#443)

Packaging
^^^^^^^^^

* Fix typing, deprecations, and update to Python3.10 (#414)

Contributors:

* @alejoe91
* @chrishalcrow
* @h-mayorquin
* @samuelgarcia
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "probeinterface"
version = "0.3.2"
version = "0.4.0"
authors = [
{ name="Samuel Garcia", email="sam.garcia.die@gmail.com" },
{ name="Alessio Buccino", email="alessiop.buccino@gmail.com" },
Expand Down
Loading