[med-svn] [Git][med-team/cyvcf2][master] 9 commits: New upstream version 0.31.4

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Mon Nov 3 21:28:03 GMT 2025



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


Commits:
dd2cec80 by Étienne Mollier at 2025-11-03T22:17:06+01:00
New upstream version 0.31.4
- - - - -
62b89635 by Étienne Mollier at 2025-11-03T22:17:07+01:00
Update upstream source from tag 'upstream/0.31.4'

Update to upstream version '0.31.4'
with Debian dir 63ac565a696dc34d1a045c0bcb5d08f7d93b149a
- - - - -
cfc8a340 by Étienne Mollier at 2025-11-03T22:21:20+01:00
d/control: build depends on python3-numpy-dev.

- - - - -
6cba8610 by Étienne Mollier at 2025-11-03T22:24:03+01:00
i386.patch: provide dep3 header.

- - - - -
b7fb4a68 by Étienne Mollier at 2025-11-03T22:24:34+01:00
add_htslib_link_dependency.patch: dep3 header.

This change normalizes the Last-Update timestamp.

- - - - -
294dc59c by Étienne Mollier at 2025-11-03T22:25:41+01:00
d/watch: convert to v5 Github template.

- - - - -
b1f2707a by Étienne Mollier at 2025-11-03T22:26:10+01:00
d/control: declare compliance to standards version 4.7.2.

- - - - -
f0847bc4 by Étienne Mollier at 2025-11-03T22:26:46+01:00
d/control: drop redundant Rules-Requires-Root: no.

- - - - -
b41fb5d2 by Étienne Mollier at 2025-11-03T22:27:24+01:00
d/changelog: ready for upload to unstable.

- - - - -


14 changed files:

- .github/workflows/build.yml
- .github/workflows/wheels.yml
- CHANGES.md
- ci/osx-deps
- cyvcf2/__init__.py
- cyvcf2/cyvcf2.pyx
- cyvcf2/tests/test_reader.py
- debian/changelog
- debian/control
- debian/patches/add_htslib_link_dependency.patch
- debian/patches/i386.patch
- debian/watch
- pyproject.toml
- requirements.txt


Changes:

=====================================
.github/workflows/build.yml
=====================================
@@ -53,23 +53,25 @@ jobs:
     runs-on: ${{ matrix.os }}
     strategy:
       matrix:
-        os: [ubuntu-22.04, macos-12]
+        os: [ubuntu-22.04, macos-13]
         python-version:
-          ["pypy3.10", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
+          ["pypy3.10", "3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
         exclude:
           # Run only the latest versions on macOS and windows
-          - os: macos-12
+          - os: macos-13
             python-version: "pypy3.10"
-          - os: macos-12
+          - os: macos-13
             python-version: "3.7"
-          - os: macos-12
+          - os: macos-13
             python-version: "3.8"
-          - os: macos-12
+          - os: macos-13
             python-version: "3.9"
-          - os: macos-12
+          - os: macos-13
             python-version: "3.10"
-          - os: macos-12
+          - os: macos-13
             python-version: "3.11"
+          - os: macos-12
+            python-version: "3.12"
 
     steps:
       - uses: actions/checkout at v4
@@ -185,7 +187,7 @@ jobs:
     runs-on: ubuntu-22.04
     strategy:
       matrix:
-        python-version: ["3.12"]
+        python-version: ["3.14"]
 
     steps:
       - uses: actions/checkout at v4


=====================================
.github/workflows/wheels.yml
=====================================
@@ -4,6 +4,7 @@ on:
   push:
     branches:
       - main
+      - wheels
     tags:
       - "v*.*.*"
   workflow_dispatch:
@@ -27,20 +28,17 @@ jobs:
           - [ubuntu-22.04, musllinux_x86_64]
           - [ubuntu-22.04, manylinux_aarch64]
           - [ubuntu-22.04, musllinux_aarch64]
-          - [macos-12, macosx_x86_64]
+          - [macos-13, macosx_x86_64]
           - [macos-14, macosx_arm64]
-        python-version: [pp310, cp37, cp38, cp39, cp310, cp311, cp312]
+        python-version: [pp310, cp38, cp39, cp310, cp311, cp312, cp313, cp314]
         exclude:
-          # pp310, cp37, cp38 on musllinux is not support
+          # pp310, cp38 on musllinux is not support
           # cp39, cp310 on musllinux_aarch64, wheel building may hangup, ignore it
-          - buildplat: [ubuntu-22.04, musllinux_x86_64]
-            python-version: cp37
+          # drop 37 so we can use newer cibuildwheel
           - buildplat: [ubuntu-22.04, musllinux_x86_64]
             python-version: cp38
           - buildplat: [ubuntu-22.04, musllinux_x86_64]
             python-version: pp310
-          - buildplat: [ubuntu-22.04, musllinux_aarch64]
-            python-version: cp37
           - buildplat: [ubuntu-22.04, musllinux_aarch64]
             python-version: cp38
           - buildplat: [ubuntu-22.04, musllinux_aarch64]
@@ -49,14 +47,6 @@ jobs:
             python-version: cp310
           - buildplat: [ubuntu-22.04, musllinux_aarch64]
             python-version: pp310
-          # cp37 on macos arm64 is not supported
-          - buildplat: [macos-14, macosx_arm64]
-            python-version: cp37
-          # cp38 pp310 on macos arm64 have some problem
-          - buildplat: [macos-14, macosx_arm64]
-            python-version: cp38
-          - buildplat: [macos-14, macosx_arm64]
-            python-version: pp310
 
     steps:
       - uses: actions/checkout at v4
@@ -68,7 +58,7 @@ jobs:
         uses: docker/setup-qemu-action at v3
 
       - name: Build wheels
-        uses: pypa/cibuildwheel at v2.18.1
+        uses: pypa/cibuildwheel at v3.1.4
         with:
           package-dir: .
           output-dir: wheelhouse
@@ -76,6 +66,8 @@ jobs:
         env:
           # select
           CIBW_BUILD: ${{ matrix.python-version }}-${{ matrix.buildplat[1] }}
+          CIBW_ENABLE: pypy
+          CIBW_PRERELEASE_PYTHONS: 1
 
           # linux
           CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
@@ -118,7 +110,7 @@ jobs:
       - uses: actions/setup-python at v5
         name: Install Python
         with:
-          python-version: "3.12"
+          python-version: "3.14"
 
       - name: Install dependencies
         run: |


=====================================
CHANGES.md
=====================================
@@ -1,3 +1,9 @@
+# v0.31.4
++ add python 3.14 wheels (thanks @benjeffery #321)
+
+# v0.31.2
++ build fix for OSX (thanks @benjeffery #319)
+
 # v0.31.1
 + build fix for numpy 2.0.0 (#307, #308 thanks @aryarm for fixing build)
 


=====================================
ci/osx-deps
=====================================
@@ -2,24 +2,33 @@
 
 set -euo pipefail
 
-# same with python
-export MACOSX_DEPLOYMENT_TARGET=10.9
+export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-10.9}
+ARCHS="arm64;x86_64"
+COMMON_CMAKE_ARGS=(
+  -DCMAKE_OSX_DEPLOYMENT_TARGET="${MACOSX_DEPLOYMENT_TARGET}"
+  -DCMAKE_OSX_ARCHITECTURES="${ARCHS}"
+  -DCMAKE_BUILD_TYPE=Release
+)
 
 brew install automake libdeflate
 brew unlink xz
 
-# build liblzma and libdelfate for deployment target 10.9
+# build liblzma and libdeflate for deployment target
 
 XZ_VERSION=5.4.6
-curl -L -o xz-$XZ_VERSION.tar.gz "https://github.com/tukaani-project/xz/releases/download/v$XZ_VERSION/xz-$XZ_VERSION.tar.gz"
-tar -xf xz-$XZ_VERSION.tar.gz
-cd xz-$XZ_VERSION
-cmake -B build && cmake --build build
-cd ./build && sudo make install
+curl -L -o "xz-${XZ_VERSION}.tar.gz" "https://github.com/tukaani-project/xz/releases/download/v${XZ_VERSION}/xz-${XZ_VERSION}.tar.gz"
+tar -xf "xz-${XZ_VERSION}.tar.gz"
+pushd "xz-${XZ_VERSION}" >/dev/null
+cmake -S . -B build "${COMMON_CMAKE_ARGS[@]}"
+cmake --build build --config Release --parallel
+sudo cmake --install build --config Release
+popd >/dev/null
 
 LIBDEFLATE_VERSION=1.20
-curl -L -o libdeflate-v"$LIBDEFLATE_VERSION".tar.gz https://github.com/ebiggers/libdeflate/archive/refs/tags/v"$LIBDEFLATE_VERSION".tar.gz
-tar xzf libdeflate-v"$LIBDEFLATE_VERSION".tar.gz
-cd libdeflate-"$LIBDEFLATE_VERSION"
-cmake -B build && cmake --build build
-cd ./build && sudo make install
+curl -L -o "libdeflate-v${LIBDEFLATE_VERSION}.tar.gz" "https://github.com/ebiggers/libdeflate/archive/refs/tags/v${LIBDEFLATE_VERSION}.tar.gz"
+tar -xf "libdeflate-v${LIBDEFLATE_VERSION}.tar.gz"
+pushd "libdeflate-${LIBDEFLATE_VERSION}" >/dev/null
+cmake -S . -B build "${COMMON_CMAKE_ARGS[@]}"
+cmake --build build --config Release --parallel
+sudo cmake --install build --config Release
+popd >/dev/null


=====================================
cyvcf2/__init__.py
=====================================
@@ -2,4 +2,4 @@ from .cyvcf2 import (VCF, Variant, Writer, r_ as r_unphased, par_relatedness,
                      par_het)
 Reader = VCFReader = VCF
 
-__version__ = "0.31.1"
+__version__ = "0.31.4"


=====================================
cyvcf2/cyvcf2.pyx
=====================================
@@ -293,6 +293,12 @@ cdef class VCF(HTSFile):
         if threads is not None:
             self.set_threads(threads)
 
+    def __enter__(self):
+        return self
+
+    def __exit__(self, type, value, tb):
+        self.close()
+
     def set_threads(self, int n):
         v = hts_set_threads(self.hts, n)
         if v < 0:
@@ -397,7 +403,7 @@ cdef class VCF(HTSFile):
         description: str
              description of added line.
         """
-        ret = bcf_hdr_append(self.hdr, "##INFO=<ID={id},Number={number},Type={type},Description=\"{description}\">".format(id=id, type=type, number=number, description=description))
+        ret = bcf_hdr_append(self.hdr, "##INFO=<ID={id},Number={number},Type={type},Description=\"{description}\">".format(id=id, type=type, number=number, description=description).encode())
         if ret != 0:
             raise Exception("unable to update to header: %d", ret)
         ret = bcf_hdr_sync(self.hdr)


=====================================
cyvcf2/tests/test_reader.py
=====================================
@@ -1410,3 +1410,9 @@ def test_num_records_no_index(path):
     vcf = VCF(os.path.join(HERE, path))
     with pytest.raises(ValueError, match="must be indexed"):
         vcf.num_records
+
+def test_reader_context_manager():
+    with VCF(VCF_PATH) as vcf:
+        pass
+    with pytest.raises(Exception, match="attempt to iterate over closed"):
+        next(vcf)


=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+cyvcf2 (0.31.4-1) unstable; urgency=medium
+
+  * New upstream version 0.31.4  (Closes: #1119732)
+  * d/control: build depends on python3-numpy-dev.
+  * i386.patch: provide dep3 header.
+  * add_htslib_link_dependency.patch: dep3 header.
+    This change normalizes the Last-Update timestamp.
+  * d/watch: convert to v5 Github template.
+  * d/control: declare compliance to standards version 4.7.2.
+  * d/control: drop redundant Rules-Requires-Root: no.
+
+ -- Étienne Mollier <emollier at debian.org>  Mon, 03 Nov 2025 22:27:08 +0100
+
 cyvcf2 (0.31.1-2) unstable; urgency=medium
 
   * Team upload.


=====================================
debian/control
=====================================
@@ -13,6 +13,7 @@ Build-Depends: debhelper-compat (= 13),
                python3-setuptools,
                python3-all-dev,
                python3-numpy,
+               python3-numpy-dev,
                python3-coloredlogs,
                python3-click,
                python3-pytest,
@@ -21,11 +22,10 @@ Build-Depends: debhelper-compat (= 13),
                libhts-dev,
                libbz2-dev,
                help2man <!nodoc>
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
 Vcs-Browser: https://salsa.debian.org/med-team/cyvcf2
 Vcs-Git: https://salsa.debian.org/med-team/cyvcf2.git
 Homepage: https://github.com/brentp/cyvcf2
-Rules-Requires-Root: no
 
 Package: python3-cyvcf2
 Architecture: any


=====================================
debian/patches/add_htslib_link_dependency.patch
=====================================
@@ -1,5 +1,5 @@
 Author: Liubov Chuprikova <chuprikovalv at gmail.com>, Nilesh Patra <npatra974 at gmail.com>
-Last-Update: Thu, 9 July 2020 22:59:25 +0530
+Last-Update: 2020-06-09
 Description: Add missing link dependency on htslib, cythonize modules
 
 


=====================================
debian/patches/i386.patch
=====================================
@@ -1,4 +1,8 @@
 Description: I386
+ Skip test on i386 because the file ends up with a few NaN values due to
+ exceeding ranges, hence skipping
+Author: Nilesh Patra <npatra974 at gmail.com>
+Last-Update: 2021-01-26
 --- a/cyvcf2/tests/test_reader.py
 +++ b/cyvcf2/tests/test_reader.py
 @@ -16,6 +16,8 @@ import pytest


=====================================
debian/watch
=====================================
@@ -1,4 +1,5 @@
-version=4
+Version: 5
 
-opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%@PACKAGE at -$1.tar.gz%" \
-  https://github.com/brentp/cyvcf2/tags .*/.*/v?@ANY_VERSION@@ARCHIVE_EXT@
+Template: Github
+Owner: brentp
+Project: cyvcf2


=====================================
pyproject.toml
=====================================
@@ -2,7 +2,8 @@
 requires = [
   "setuptools",
   "wheel",
-  "cython>=0.23.3",
+  'cython>=0.23.3,<3; python_version < "3.9"',
+  'cython>=3; python_version >= "3.9"',
   'oldest-supported-numpy; os_name != "nt" and python_version < "3.9"',
   'numpy; os_name == "nt" and python_version < "3.9"',
   'numpy>=2.0.0; python_version >= "3.9"',


=====================================
requirements.txt
=====================================
@@ -1,4 +1,5 @@
-cython>=0.23.3
+cython>=0.23.3,<3; python_version < "3.9"
+cython>=3; python_version >= "3.9"
 coloredlogs
 click
 setuptools



View it on GitLab: https://salsa.debian.org/med-team/cyvcf2/-/compare/2465cc8c7468376e666c0b584c9ebbbe91875fe4...b41fb5d2805042fc7165b075cd9f0842d6b183d2

-- 
View it on GitLab: https://salsa.debian.org/med-team/cyvcf2/-/compare/2465cc8c7468376e666c0b584c9ebbbe91875fe4...b41fb5d2805042fc7165b075cd9f0842d6b183d2
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/20251103/f07a0884/attachment-0001.htm>


More information about the debian-med-commit mailing list