[med-svn] [Git][med-team/libslow5lib][master] 8 commits: New upstream version 1.4.0+dfsg

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Sat Feb 21 16:36:36 GMT 2026



Étienne Mollier pushed to branch master at Debian Med / libslow5lib


Commits:
37ff2491 by Étienne Mollier at 2026-02-21T16:54:44+01:00
New upstream version 1.4.0+dfsg
- - - - -
fce7c3dd by Étienne Mollier at 2026-02-21T16:54:54+01:00
Update upstream source from tag 'upstream/1.4.0+dfsg'

Update to upstream version '1.4.0+dfsg'
with Debian dir 0e3c99aea3dbbb3cfb00c7367b7ea2c7b10dfcbe
- - - - -
d45e5e6b by Étienne Mollier at 2026-02-21T17:02:56+01:00
d/control: drop redundant Priority: optional.

- - - - -
000d22ec by Étienne Mollier at 2026-02-21T17:03:26+01:00
d/control: declare compliance to standards version 4.7.3.

- - - - -
aed0bc45 by Étienne Mollier at 2026-02-21T17:33:14+01:00
unshuffle-makefile.patch: forwarded upstream.

- - - - -
eee0cd63 by Étienne Mollier at 2026-02-21T17:34:43+01:00
unshuffle-makefile.patch: use short form BTS URI.

- - - - -
e330b553 by Étienne Mollier at 2026-02-21T17:35:35+01:00
d/patches/*: declare remaining changes forwarding not-needed.

- - - - -
4963fe27 by Étienne Mollier at 2026-02-21T17:36:04+01:00
d/changelog: ready for upload to unstable.

- - - - -


13 changed files:

- README.md
- debian/changelog
- debian/control
- debian/patches/enable_shared_and_static.patch
- debian/patches/fix-baseline.patch
- debian/patches/hardening.patch
- debian/patches/unshuffle-makefile.patch
- docs/pyslow5_api/pyslow5.md
- include/slow5/slow5_defs.h
- python/README.md
- python/pyslow5.pyx
- python/test.py
- setup.py


Changes:

=====================================
README.md
=====================================
@@ -14,7 +14,8 @@ SLOW5 ecosystem: https://hasindu2008.github.io/slow5<br/>
 
 [![BioConda Install](https://img.shields.io/conda/dn/bioconda/pyslow5.svg?style=flag&label=BioConda%20install)](https://anaconda.org/bioconda/pyslow5)
 [![PyPI](https://img.shields.io/pypi/v/pyslow5.svg?style=flat)](https://pypi.python.org/pypi/pyslow5)
-![PyPI - Downloads](https://img.shields.io/pypi/dm/pyslow5?label=pyslow5%20PyPi)
+![PyPI - Downloads](https://img.shields.io/pypi/dm/pyslow5?label=downloads)
+[![PyPI Downloads](https://static.pepy.tech/badge/pyslow5)](https://pepy.tech/projects/pyslow5)
 [![C CI](https://github.com/hasindu2008/slow5lib/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/hasindu2008/slow5lib/actions/workflows/c-cpp.yml)
 [![Py CI](https://github.com/hasindu2008/slow5lib/actions/workflows/python.yml/badge.svg)](https://github.com/hasindu2008/slow5lib/actions/workflows/python.yml)
 


=====================================
debian/changelog
=====================================
@@ -1,3 +1,14 @@
+libslow5lib (1.4.0+dfsg-1) unstable; urgency=medium
+
+  * New upstream version 1.4.0+dfsg
+  * d/control: drop redundant Priority: optional.
+  * d/control: declare compliance to standards version 4.7.3.
+  * unshuffle-makefile.patch: forwarded upstream.
+  * unshuffle-makefile.patch: use short form BTS URI.
+  * d/patches/*: declare remaining changes forwarding not-needed.
+
+ -- Étienne Mollier <emollier at debian.org>  Sat, 21 Feb 2026 17:35:55 +0100
+
 libslow5lib (1.3.1+dfsg-1) unstable; urgency=medium
 
   * New upstream version 1.3.1+dfsg. (Closes: #1069771, #1117756)


=====================================
debian/control
=====================================
@@ -3,7 +3,6 @@ Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.
 Uploaders: Andreas Tille <tille at debian.org>,
            Étienne Mollier <emollier at debian.org>
 Section: science
-Priority: optional
 Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13),
                cmake,
                d-shlibs (>= 0.106~),
@@ -17,7 +16,7 @@ Build-Depends: dpkg-dev (>= 1.22.5), debhelper-compat (= 13),
                python3-numpy,
                python3-numpy-dev,
                python3-wheel
-Standards-Version: 4.7.2
+Standards-Version: 4.7.3
 Vcs-Browser: https://salsa.debian.org/med-team/libslow5lib
 Vcs-Git: https://salsa.debian.org/med-team/libslow5lib.git
 Homepage: https://github.com/hasindu2008/slow5lib


=====================================
debian/patches/enable_shared_and_static.patch
=====================================
@@ -1,7 +1,7 @@
 Author: Andreas Tille <tille at debian.org>
 Last-Update: 2022-06-29
 Description: Enable static and shared library
-
+Forwarded: not-needed
 --- libslow5lib.orig/CMakeLists.txt
 +++ libslow5lib/CMakeLists.txt
 @@ -54,19 +54,34 @@


=====================================
debian/patches/fix-baseline.patch
=====================================
@@ -1,6 +1,7 @@
 Description: remove fpu flags that are not present on ancient CPUs
 Author: Nilesh Patra <nilesh at debian.org>
 Last-Update: 2022-07-02
+Forwarded: not-needed
 --- libslow5lib.orig/setup.py
 +++ libslow5lib/setup.py
 @@ -48,15 +48,6 @@


=====================================
debian/patches/hardening.patch
=====================================
@@ -1,6 +1,7 @@
 Description: Propagate hardening opts for endian_test
 Author: Nilesh Patra <nilesh at debian.org>
 Last-Update: 2022-07-02
+Forwarded: not-needed
 --- a/test/Makefile
 +++ b/test/Makefile
 @@ -28,7 +28,7 @@


=====================================
debian/patches/unshuffle-makefile.patch
=====================================
@@ -6,8 +6,8 @@ Description: fix occasional build failure due to missing test/bin.
         cc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libslow5lib-1.3.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -g -Wall -Werror -std=gnu99 -DSLOW5_USE_ZSTD -Wdate-time -D_FORTIFY_SOURCE=2 -I ../include/ -I ../src/ unit_test_enum.c -o bin/unit_test_enum -Wl,-z,relro -Wl,-z,now ../lib/libslow5.a -lm -lz -lstreamvbyte -lzstd
         /usr/bin/ld: cannot open output file bin/unit_test_enum: No such file or directory
 Author: Étienne Mollier <emollier at debian.org>
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1105533
-Forwarded: no
+Bug-Debian: https://bugs.debian.org/1105533
+Forwarded: https://github.com/hasindu2008/slow5lib/pull/101
 Last-Update: 2025-11-05
 ---
 This patch header follows DEP-3: http://dep.debian.net/deps/dep3/


=====================================
docs/pyslow5_api/pyslow5.md
=====================================
@@ -338,7 +338,7 @@ print(end_reason_labels)
 
 > ['unknown', 'partial', 'mux_change', 'unblock_mux_change', 'signal_positive', 'signal_negative']
 # or from newer datsets
-> ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error"]
+> ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error", "analysis_config_change", "paused"]
 
 readID = "r1"
 read = s5.get_read(readID, aux='all')


=====================================
include/slow5/slow5_defs.h
=====================================
@@ -44,7 +44,7 @@ The API documentation is available at https://hasindu2008.github.io/slow5tools/
 */
 
 // library version
-#define SLOW5_LIB_VERSION "1.3.1"
+#define SLOW5_LIB_VERSION "1.4.0"
 
 // maximum file version supported by this library - independent of slow5 library version above
 // if updating change all 4 below


=====================================
python/README.md
=====================================
@@ -338,7 +338,7 @@ print(end_reason_labels)
 
 > ['unknown', 'partial', 'mux_change', 'unblock_mux_change', 'signal_positive', 'signal_negative']
 # or from newer datsets
-> ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error"]
+> ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error", "analysis_config_change", "paused"]
 
 readID = "r1"
 read = s5.get_read(readID, aux='all')


=====================================
python/pyslow5.pyx
=====================================
@@ -98,6 +98,7 @@ cdef class Open:
     cdef char *num_reads_since_mux_change
     cdef char *time_since_mux_change
     cdef char *num_minknow_events
+    cdef char *open_pore_level
     cdef char **end_reason_labels
     cdef pyslow5.uint8_t end_reason_labels_len
     cdef char *channel_number_val
@@ -113,6 +114,7 @@ cdef class Open:
     cdef pyslow5.uint32_t num_reads_since_mux_change_val
     cdef float time_since_mux_change_val
     cdef pyslow5.uint64_t num_minknow_events_val
+    cdef float open_pore_level_val
     cdef char **channel_number_val_array
     cdef double *median_before_val_array
     cdef pyslow5.int32_t *read_number_val_array
@@ -126,6 +128,7 @@ cdef class Open:
     cdef pyslow5.uint32_t *num_reads_since_mux_change_val_array
     cdef float *time_since_mux_change_val_array
     cdef pyslow5.uint64_t *num_minknow_events_val_array
+    cdef float *open_pore_level_val_array
 
     cdef np.int16_t[:] temp_array 
 
@@ -205,6 +208,7 @@ cdef class Open:
         self.num_reads_since_mux_change = strdup("num_reads_since_mux_change")
         self.time_since_mux_change = strdup("time_since_mux_change")
         self.num_minknow_events = strdup("num_minknow_events")
+        self.open_pore_level = strdup("open_pore_level")
         self.end_reason_labels = NULL
         self.end_reason_labels_len = 0
         self.channel_number_val = NULL
@@ -220,6 +224,7 @@ cdef class Open:
         self.num_reads_since_mux_change_val = 0
         self.time_since_mux_change_val = 0.0
         self.num_minknow_events_val = 0
+        self.open_pore_level_val = 0.0
         self.channel_number_val_array = NULL
         self.median_before_val_array = NULL
         self.read_number_val_array = NULL
@@ -233,6 +238,7 @@ cdef class Open:
         self.num_reads_since_mux_change_val_array = NULL
         self.time_since_mux_change_val_array = NULL
         self.num_minknow_events_val_array = NULL
+        self.open_pore_level_val_array = NULL
 
 
         self.total_time_slow5_get_next = 0.0
@@ -391,6 +397,7 @@ cdef class Open:
         free(self.num_reads_since_mux_change)
         free(self.time_since_mux_change)
         free(self.num_minknow_events)
+        free(self.open_pore_level)
         
         if self.end_reason_labels is not NULL:
             for i in range(self.end_reason_labels_len):
@@ -1504,7 +1511,7 @@ cdef class Open:
 
         # end_reason_labels = ['unknown', 'partial', 'mux_change', 'unblock_mux_change', 'signal_positive', 'signal_negative']
         # update end_reason to be more likely compatible with current pod5 format & end_reasons
-        end_reason_labels = ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error"]
+        end_reason_labels = ["unknown", "mux_change", "unblock_mux_change", "data_service_unblock_mux_change", "signal_positive", "signal_negative", "api_request", "device_data_error", "analysis_config_change", "paused"]
 
         if aux:
             return header, end_reason_labels
@@ -1537,6 +1544,7 @@ cdef class Open:
                "num_reads_since_mux_change": None,
                "time_since_mux_change": None,
                "num_minknow_events": None,
+               "open_pore_level": None,
                }
 
         if aux:
@@ -1583,6 +1591,7 @@ cdef class Open:
                      "num_reads_since_mux_change": type(1),
                      "time_since_mux_change": type(1.0),
                      "num_minknow_events": type(1),
+                     "open_pore_level": type(1.0),
                      }
 
         C_aux_types = {"channel_number": SLOW5_STRING,
@@ -1598,6 +1607,7 @@ cdef class Open:
                      "num_reads_since_mux_change": SLOW5_UINT32_T,
                      "time_since_mux_change": SLOW5_FLOAT,
                      "num_minknow_events": SLOW5_UINT64_T,
+                     "open_pore_level": SLOW5_FLOAT,
                      }
 
         for a in user_aux_types:
@@ -1642,6 +1652,7 @@ cdef class Open:
                         "num_reads_since_mux_change": type(1),
                         "time_since_mux_change": type(1.0),
                         "num_minknow_events": type(1),
+                        "open_pore_level": type(1.0),
                         }
 
         new_aux = {}
@@ -1710,6 +1721,9 @@ cdef class Open:
                     elif a == "num_minknow_events":
                         self.num_minknow_events_val = <uint64_t>aux[a]
                         new_aux[a] = aux[a]
+                    elif a == "open_pore_level":
+                        self.open_pore_level_val = <float>aux[a]
+                        new_aux[a] = aux[a]
                     else:
                          self.logger.error("_record_type_validation {}: {} user aux field unknown?".format(a, aux[a]))
 
@@ -1745,6 +1759,7 @@ cdef class Open:
                         "num_reads_since_mux_change": type(1),
                         "time_since_mux_change": type(1.0),
                         "num_minknow_events": type(1),
+                        "open_pore_level": type(1.0),
                         }
 
         new_aux = {}
@@ -1800,6 +1815,8 @@ cdef class Open:
                         new_aux[a] = aux[a]
                     elif a == "num_minknow_events":
                         new_aux[a] = aux[a]
+                    elif a == "open_pore_level":
+                        new_aux[a] = aux[a]
                     else:
                         self.logger.error("_record_type_validation {}: {} user aux field unknown".format(a, aux[a]))
 
@@ -1896,6 +1913,7 @@ cdef class Open:
                      "num_reads_since_mux_change": type(1),
                      "time_since_mux_change": type(1.0),
                      "num_minknow_events": type(1),
+                     "open_pore_level": type(1.0),
                      }
         
         aux_types_keys = [
@@ -1912,6 +1930,7 @@ cdef class Open:
             "num_reads_since_mux_change",
             "time_since_mux_change",
             "num_minknow_events",
+            "open_pore_level",
         ]
 
         self.logger.debug("write_record: _record_type_validation running")
@@ -2052,6 +2071,8 @@ cdef class Open:
                     ret = slow5_aux_set(self.write, self.time_since_mux_change, <const void *>&self.time_since_mux_change_val, self.s5.header)
                 elif a == "num_minknow_events":
                     ret = slow5_aux_set(self.write, self.num_minknow_events, <const void *>&self.num_minknow_events_val, self.s5.header)
+                elif a == "open_pore_level":
+                    ret = slow5_aux_set(self.write, self.open_pore_level, <const void *>&self.open_pore_level_val, self.s5.header)
                 else:
                     ret = -1
                 if ret < 0:
@@ -2081,6 +2102,7 @@ cdef class Open:
             self.num_reads_since_mux_change_val = 0
             self.time_since_mux_change_val = 0.0
             self.num_minknow_events_val = 0
+            self.open_pore_level_val = 0
 
 
         # free memory
@@ -2114,6 +2136,7 @@ cdef class Open:
                      "num_reads_since_mux_change": type(1),
                      "time_since_mux_change": type(1.0),
                      "num_minknow_events": type(1),
+                     "open_pore_level": type(1.0),
                      }
         
         aux_types_keys = [
@@ -2130,6 +2153,7 @@ cdef class Open:
             "num_reads_since_mux_change",
             "time_since_mux_change",
             "num_minknow_events",
+            "open_pore_level",
         ]
 
         # check if empty dic was given
@@ -2165,6 +2189,7 @@ cdef class Open:
             self.num_reads_since_mux_change_val_array = <uint32_t *> malloc(sizeof(uint32_t)*batch_len)
             self.time_since_mux_change_val_array = <float *> malloc(sizeof(float)*batch_len)
             self.num_minknow_events_val_array = <uint64_t *> malloc(sizeof(uint64_t)*batch_len)
+            self.open_pore_level_val_array = <float *> malloc(sizeof(float)*batch_len)
             for i, idx in enumerate(batch):
                 if aux is not None:
                     checked_record, checked_aux = self._multi_record_type_validation(records[idx], aux[idx])
@@ -2196,6 +2221,8 @@ cdef class Open:
                             self.time_since_mux_change_val_array[i] = <float>checked_aux[a]
                         elif a == "num_minknow_events":
                             self.num_minknow_events_val_array[i] = <uint64_t>checked_aux[a]
+                        elif a == "open_pore_level":
+                            self.open_pore_level_val_array[i] = <float>checked_aux[a]
                     checked_auxs[idx] = checked_aux
                 else:
                     checked_record, checked_aux = self._record_type_validation(records[idx], aux)
@@ -2345,6 +2372,8 @@ cdef class Open:
                             ret = slow5_aux_set(self.twrite[idx], self.time_since_mux_change, <const void *>&self.time_since_mux_change_val_array[idx], self.s5.header)
                         elif a == "num_minknow_events":
                             ret = slow5_aux_set(self.twrite[idx], self.num_minknow_events, <const void *>&self.num_minknow_events_val_array[idx], self.s5.header)
+                        elif a == "open_pore_level":
+                            ret = slow5_aux_set(self.twrite[idx], self.open_pore_level, <const void *>&self.open_pore_level_val_array[idx], self.s5.header)
                         else:
                             ret = -1
                         if ret < 0:
@@ -2389,6 +2418,7 @@ cdef class Open:
                 free(self.num_reads_since_mux_change_val_array)
                 free(self.time_since_mux_change_val_array)
                 free(self.num_minknow_events_val_array)
+                free(self.open_pore_level_val_array)
 
         end_multi_write = time.time() - start_multi_write
         self.total_multi_write_time = self.total_multi_write_time + end_multi_write


=====================================
python/test.py
=====================================
@@ -409,7 +409,8 @@ class TestWriteAux(unittest.TestCase):
                "predicted_scaling_scale": None,
                "num_reads_since_mux_change": None,
                "time_since_mux_change": None,
-               "num_minknow_events": None}
+               "num_minknow_events": None,
+               "open_pore_level": None,}
         _, aux = self.F.get_empty_record(aux=True)
         for i, rec in enumerate(aux):
             with self.subTest(i=i, attr=rec):


=====================================
setup.py
=====================================
@@ -89,7 +89,7 @@ def readme():
 
 setup(
     name = 'pyslow5',
-    version='1.3.1',
+    version='1.4.0',
     url = 'https://github.com/hasindu2008/slow5lib',
     description='slow5lib python bindings',
     long_description=readme(),



View it on GitLab: https://salsa.debian.org/med-team/libslow5lib/-/compare/65592b0888bfc09c36b9bfc3b4d03bc0963005f1...4963fe274dbcf02b6151b4f8c10551ef82ad35e5

-- 
View it on GitLab: https://salsa.debian.org/med-team/libslow5lib/-/compare/65592b0888bfc09c36b9bfc3b4d03bc0963005f1...4963fe274dbcf02b6151b4f8c10551ef82ad35e5
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260221/1d08fc2d/attachment-0001.htm>


More information about the debian-med-commit mailing list