Skip to content

Commit 38b94a8

Browse files
committed
Bump version number to 0.24.0 and add release notes
1 parent 7067acf commit 38b94a8

3 files changed

Lines changed: 77 additions & 1 deletion

File tree

NEWS

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,80 @@
11
.. An online version of the release history can be found here:
22
.. http://pysam.readthedocs.io/en/latest/release.html
33

4+
Release 0.24.0
5+
==============
6+
7+
.. rubric:: 27 April 2026
8+
9+
This pysam release wraps htslib/samtools/bcftools version 1.23.1 (PR #1343,
10+
PR #1372, and PR #1396) and now requires Cython 3.
11+
12+
It has been tested with Python versions 3.8 through 3.14, and wheels are
13+
available via PyPI_ for all of those Python versions. Wheels are built for
14+
macOS and Linux (manylinux_2_28 and musllinux_1_2) on both ARM and x86-64.
15+
16+
This release is the first to wrap htslib 1.22 or later, which contains
17+
significant CRAM-related operational changes inherited by pysam:
18+
19+
* The default output CRAM version is now 3.1 rather than 3.0.
20+
The version can be explicitly specified by using
21+
:class:`AlignmentFile(..., "wc", format_options=["version=3.0"]) <.AlignmentFile>`.
22+
23+
* CRAM reference data is no longer fetched from EBI's server by default.
24+
Use the :envvar:`REF_CACHE` and :envvar:`REF_PATH` environment variables
25+
if necessary to set up an alternative source of CRAM reference data.
26+
27+
The final pysam release that supported Python 3.6 and 3.7 was v0.23.0.
28+
This release is expected to be the last release supporting Python 3.8.
29+
30+
Bugs fixed:
31+
32+
* Removed :attr:`.AlignedSegment.modified_bases`'s limitation of only five
33+
modification types in MM/ML fields. (#1348, reported by Leszek Pryszcz)
34+
35+
* Fixed :attr:`.AlignedSegment.modified_bases` crash when given a degenerate
36+
MM field that modifies no bases at all. (#1355, reported by Jun Mencius)
37+
38+
* Fixed type hints for :class:`.AlignmentFile` and :class:`.VariantFile`
39+
constructor `filename` and `mode` parameters. (#1405, reported by Matt Stone)
40+
41+
* Fixed coverage functionality for Python 3.13 and later. Pysam's Cython code
42+
is no longer built with Python profiling enabled by default. :ref:`Profiling
43+
<pysam-profile>` can be re-enabled by using the :envvar:`PYSAM_PROFILE`
44+
environment variable when building pysam from source.
45+
(#1350, reported by Marcus Fedarko)
46+
47+
* Fixed capturing :func:`pysam.samtools.calmd() <.samtools.command>` output,
48+
which fixed tests on 32-bit i386. Also suppressed TestBinaryCompatibility
49+
test cases on platforms where we have not calculated the expected sizes.
50+
(#1367, reported by Étienne Mollier for Debian)
51+
52+
* Adjusted :attr:`.HTSFile.add_hts_options` for Python 3: it now expects
53+
a list of :class:`str` as documented, rather than needing :class:`bytes`.
54+
This method's :attr:`format_options` argument is no longer optional.
55+
Similarly :class:`AlignmentFile(format_options=...) <.AlignmentFile>`
56+
now accepts a list of :class:`str` as documented.
57+
58+
New functionality:
59+
60+
* Updated :file:`pysam/libchtslib.pxd` declarations to the HTSlib 1.23.1 API.
61+
This is the first comprehensive update that these Cython HTSlib API
62+
declarations have received. (PR #1362)
63+
64+
* Optimized :func:`pysam.array_to_qualitystring` using Cython memoryviews,
65+
resulting in an approximately 70x-100x speed improvement in this function.
66+
(PR #1363, thanks to Josh Chorlton)
67+
68+
Documentation improvements:
69+
70+
* The numerous internal classes representing :class:`.VariantHeader` and
71+
:class:`.VariantRecord` fields are now documented.
72+
(#407 et al; PR #1358, PR #1359, PR #1361, PR #1394, thanks to Tim Dunn)
73+
74+
* Clarified :attr:`.AlignedSegment.query_alignment_length` et al
75+
behaviour for unmapped reads. (#1319, reported by Sam Chorlton)
76+
77+
478
Release 0.23.3
579
==============
680

doc/installation.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ the htslib/INSTALL file.
104104

105105
Installing from the repository will require cython_ to be installed.
106106

107+
.. _pysam-profile:
108+
107109
Profiling
108110
=========
109111

pysam/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# pysam versioning information
2-
__version__ = "0.23.3"
2+
__version__ = "0.24.0"
33

44
__samtools_version__ = "1.23.1"
55
__bcftools_version__ = "1.23.1"

0 commit comments

Comments
 (0)