From 9fa1bd7025a793610a12ad9fce47ced7541ba5f0 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Thu, 19 Mar 2026 11:23:03 +0100 Subject: [PATCH 1/9] Prepare release 0.3.2 --- doc/release_notes.rst | 1 + doc/releases/0.3.2.rst | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 doc/releases/0.3.2.rst diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 69c071fd..f93343d1 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -6,6 +6,7 @@ Release notes .. toctree:: :maxdepth: 1 + releases/0.3.2.rst releases/0.3.1.rst releases/0.3.0.rst releases/0.2.28.rst diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst new file mode 100644 index 00000000..16091b80 --- /dev/null +++ b/doc/releases/0.3.2.rst @@ -0,0 +1,36 @@ +probeinterface 0.3.2 +-------------------- + +Mar, 20th 2026 + + +Features +^^^^^^^^ + +* Make shank_ids optional (None) instead of array of [""] (#391,#393) +* Enhance ``plot_probegroup`` to handle varying contact values (#397) +* Updates to Neuropixels probe features (#392, #399) +* Update ``read_openephys`` construction using catalogue probes and handle channel maps (#406, #409) + +Bug fixes +^^^^^^^^^ + +* Fixes to ``generate_cambridgeneurotech_library.py`` file name(#389, #390) +* Fix static annotation of ``pi.generate_multi_columns_probe`` (#385) +* Fix unclosed file warnings in ``json.load()`` calls (#396) +* Fix missing raise in ``Probe.set_contact_ids()`` size validation (#401) + +Deprecations +^^^^^^^^^^^^ + +* Removed deprecated ``plot_probe_group`` (#397) + +Testing +^^^^^^^ + +* Force Agg backend for tests (#395) + +Packaging +^^^^^^^^^ + +* Migrate test and docs extras to PEP 735 dependency groups (#408) From c6594128055ebb65e3448809d13260164b7744db Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 10:23:24 +0000 Subject: [PATCH 2/9] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- doc/releases/0.3.2.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst index 16091b80..56596972 100644 --- a/doc/releases/0.3.2.rst +++ b/doc/releases/0.3.2.rst @@ -25,7 +25,7 @@ Deprecations * Removed deprecated ``plot_probe_group`` (#397) -Testing +Testing ^^^^^^^ * Force Agg backend for tests (#395) From 8bc66ade3b01064c580a591291ace2a1fcb49474 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 20 Mar 2026 10:44:22 +0100 Subject: [PATCH 3/9] Add PR to release notes --- doc/releases/0.3.2.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst index 56596972..890cdf69 100644 --- a/doc/releases/0.3.2.rst +++ b/doc/releases/0.3.2.rst @@ -15,6 +15,7 @@ Features Bug fixes ^^^^^^^^^ +* Fix quad-base with custom names (#413) * Fixes to ``generate_cambridgeneurotech_library.py`` file name(#389, #390) * Fix static annotation of ``pi.generate_multi_columns_probe`` (#385) * Fix unclosed file warnings in ``json.load()`` calls (#396) From ad8dd5283db5039ff197eff0a692d27a9e242853 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 20 Mar 2026 14:56:28 +0100 Subject: [PATCH 4/9] add #414 PR --- doc/releases/0.3.2.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst index 890cdf69..69405f8d 100644 --- a/doc/releases/0.3.2.rst +++ b/doc/releases/0.3.2.rst @@ -24,6 +24,7 @@ Bug fixes Deprecations ^^^^^^^^^^^^ +* Deprecated ``contacts_kargs`` in ``plot_probe`` in favor of ``contact_kwargs`` (#414, #397) * Removed deprecated ``plot_probe_group`` (#397) Testing @@ -34,4 +35,5 @@ Testing Packaging ^^^^^^^^^ +* Support Python >= 3.10 and fix annotations (#414) * Migrate test and docs extras to PEP 735 dependency groups (#408) From f1c9c134d18249f146788176c33f5cf982af0b3a Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 20 Mar 2026 16:07:00 +0100 Subject: [PATCH 5/9] Add #410 --- doc/releases/0.3.2.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst index 69405f8d..b131eb28 100644 --- a/doc/releases/0.3.2.rst +++ b/doc/releases/0.3.2.rst @@ -7,6 +7,7 @@ Mar, 20th 2026 Features ^^^^^^^^ +* Remove legacy probe construction for ``read_imro`` path for read_imro and support NP1110 (#410) * Make shank_ids optional (None) instead of array of [""] (#391,#393) * Enhance ``plot_probegroup`` to handle varying contact values (#397) * Updates to Neuropixels probe features (#392, #399) From d37ffe16ff2685f1eeff70568df35a39097b8a96 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 20 Mar 2026 16:49:29 +0100 Subject: [PATCH 6/9] add missing PRs --- doc/releases/0.3.2.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/releases/0.3.2.rst b/doc/releases/0.3.2.rst index b131eb28..2b8dc80f 100644 --- a/doc/releases/0.3.2.rst +++ b/doc/releases/0.3.2.rst @@ -12,15 +12,18 @@ Features * Enhance ``plot_probegroup`` to handle varying contact values (#397) * Updates to Neuropixels probe features (#392, #399) * Update ``read_openephys`` construction using catalogue probes and handle channel maps (#406, #409) +* Neuropixels: Add mux information to catalogue probes (#383) +* Support double-sided probes (#382) + Bug fixes ^^^^^^^^^ * Fix quad-base with custom names (#413) +* Fix missing raise in ``Probe.set_contact_ids()`` size validation (#401) * Fixes to ``generate_cambridgeneurotech_library.py`` file name(#389, #390) * Fix static annotation of ``pi.generate_multi_columns_probe`` (#385) * Fix unclosed file warnings in ``json.load()`` calls (#396) -* Fix missing raise in ``Probe.set_contact_ids()`` size validation (#401) Deprecations ^^^^^^^^^^^^ @@ -32,6 +35,7 @@ Testing ^^^^^^^ * Force Agg backend for tests (#395) +* Add missing library marks (#384) Packaging ^^^^^^^^^ From 4235ef01784604e982b3d7ae15ccc2ecb66123e8 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 3 Jul 2026 17:38:22 +0200 Subject: [PATCH 7/9] wip --- doc/auto-release-notes.sh | 38 +++++++++++++++++++++++++ doc/release_notes.rst | 1 + doc/releases/0.4.0.rst | 58 +++++++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 doc/auto-release-notes.sh create mode 100644 doc/releases/0.4.0.rst diff --git a/doc/auto-release-notes.sh b/doc/auto-release-notes.sh new file mode 100644 index 00000000..1a814460 --- /dev/null +++ b/doc/auto-release-notes.sh @@ -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 | .[] | "* @" + .' diff --git a/doc/release_notes.rst b/doc/release_notes.rst index f93343d1..01be54e9 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -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 diff --git a/doc/releases/0.4.0.rst b/doc/releases/0.4.0.rst new file mode 100644 index 00000000..c47ad934 --- /dev/null +++ b/doc/releases/0.4.0.rst @@ -0,0 +1,58 @@ +probeinterface 0.4.0 +-------------------- + +Jul, XXX 2026 + + +Features +^^^^^^^^ + + + + +Bug fixes +^^^^^^^^^ + + + +Deprecations +^^^^^^^^^^^^ + + +Testing +^^^^^^^ + + +Packaging +^^^^^^^^^ + + + +* Preserve planar contour on ProbeGroup slicing and clarify ambiguous `select_contacts` errors (#453) +* Discard 'apps' folder when listing manufacturers (#451) +* Enhance `ProbeGroup` API and add `ProbeGroup._global_contact_order` for interleaved contacts (#446) +* Document the Neuropixels catalogue pattern (#443) +* Add Neuropixels 2.0 support to `read_spikegadgets_neuropixels` (#441) +* Rename `read_spikegadgets` to `read_spikegadgets_neuropixels` and add `has_spikegadgets_neuropixels_probes` (#440) +* Update CI actions (#438) +* Add NP2020 probe to test suite (#435) +* Add Neuropixels saturation levels estimation from probe table/metadata (#434) +* Update Neuropixels probe features (#433) +* Raise on wrong-sized `device_channel_indices` instead of silently accepting (#430) +* Auto-generate `contact_ids` when not explicitly set (#429) +* Preserve identity on `Probe.copy()` (#428) +* Rename `read_openephys` to `read_openephys_neuropixels` and add `has_neuropixels_probes` (#427) +* Add contact_sides to JSON schema (#419) +* 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) +* Fix typing, deprecations, and update to Python3.10 (#414) +* Fix quad-base with custom names (#413) +* Remove legacy probe construction path for `read_imro` and support NP1110 (#410) + +Contributors: + +* @alejoe91 +* @chrishalcrow +* @h-mayorquin +* @samuelgarcia diff --git a/pyproject.toml b/pyproject.toml index 51231d83..6f148c66 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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" }, From 0d4e20e5d6fb20d9783138983f69e7862f4c6489 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Fri, 3 Jul 2026 18:35:27 +0200 Subject: [PATCH 8/9] add last PR --- doc/releases/0.4.0.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/releases/0.4.0.rst b/doc/releases/0.4.0.rst index c47ad934..a438279c 100644 --- a/doc/releases/0.4.0.rst +++ b/doc/releases/0.4.0.rst @@ -27,7 +27,7 @@ Packaging ^^^^^^^^^ - +* Add regex validation pattern in schema version propert (#450) * Preserve planar contour on ProbeGroup slicing and clarify ambiguous `select_contacts` errors (#453) * Discard 'apps' folder when listing manufacturers (#451) * Enhance `ProbeGroup` API and add `ProbeGroup._global_contact_order` for interleaved contacts (#446) From b6a48d328e7905a6813a79bd50766be5899e8264 Mon Sep 17 00:00:00 2001 From: Alessio Buccino Date: Mon, 6 Jul 2026 11:29:02 +0200 Subject: [PATCH 9/9] docs: release notes --- doc/releases/0.4.0.rst | 51 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/doc/releases/0.4.0.rst b/doc/releases/0.4.0.rst index a438279c..9c95ef18 100644 --- a/doc/releases/0.4.0.rst +++ b/doc/releases/0.4.0.rst @@ -1,54 +1,55 @@ probeinterface 0.4.0 -------------------- -Jul, XXX 2026 +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 ^^^^^^^^^ - -* Add regex validation pattern in schema version propert (#450) -* Preserve planar contour on ProbeGroup slicing and clarify ambiguous `select_contacts` errors (#453) -* Discard 'apps' folder when listing manufacturers (#451) -* Enhance `ProbeGroup` API and add `ProbeGroup._global_contact_order` for interleaved contacts (#446) -* Document the Neuropixels catalogue pattern (#443) -* Add Neuropixels 2.0 support to `read_spikegadgets_neuropixels` (#441) -* Rename `read_spikegadgets` to `read_spikegadgets_neuropixels` and add `has_spikegadgets_neuropixels_probes` (#440) -* Update CI actions (#438) -* Add NP2020 probe to test suite (#435) -* Add Neuropixels saturation levels estimation from probe table/metadata (#434) -* Update Neuropixels probe features (#433) -* Raise on wrong-sized `device_channel_indices` instead of silently accepting (#430) -* Auto-generate `contact_ids` when not explicitly set (#429) -* Preserve identity on `Probe.copy()` (#428) -* Rename `read_openephys` to `read_openephys_neuropixels` and add `has_neuropixels_probes` (#427) -* Add contact_sides to JSON schema (#419) -* 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) * Fix typing, deprecations, and update to Python3.10 (#414) -* Fix quad-base with custom names (#413) -* Remove legacy probe construction path for `read_imro` and support NP1110 (#410) Contributors: