Skip to content

Commit fb59ed5

Browse files
Merge branch 'stable-1.4'
2 parents 8141905 + ab26fda commit fb59ed5

7 files changed

Lines changed: 28 additions & 22 deletions

File tree

CITATION.cff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ abstract: >-
4141
A Python package that wraps the functionality of the C++
4242
library libsemigroups.
4343
license: GPL-3.0+
44-
version: 1.4.0
45-
date-released: "2026-02-25"
44+
version: 1.4.1
45+
date-released: "2026-03-17"

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,10 +150,10 @@ uv pip install .
150150
To build `libsemigroups_pybind11` from a release archive:
151151

152152
```console
153-
curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-1.4.0.tar.gz
154-
tar -xf libsemigroups_pybind11-1.4.0.tar.gz
155-
rm -f libsemigroups_pybind11-1.4.0.tar.gz
156-
cd libsemigroups_pybind11-1.4.0
153+
curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-1.4.1.tar.gz
154+
tar -xf libsemigroups_pybind11-1.4.1.tar.gz
155+
rm -f libsemigroups_pybind11-1.4.1.tar.gz
156+
cd libsemigroups_pybind11-1.4.1
157157
pip install .
158158
```
159159

build_tools/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (c) 2021-2024 J. D. Mitchell
1+
# Copyright (c) 2021-2026 J. D. Mitchell
22
#
33
# Distributed under the terms of the GPL license version 3.
44
#
@@ -11,4 +11,4 @@ def minimum_libsemigroups_version():
1111
"""Returns the minimum required version of libsemigroups required to build
1212
libsemigroups_pybind11.
1313
"""
14-
return "3.5.1"
14+
return "3.5.3"

docs/source/changelog-v1.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88
Changelog - version 1
99
=====================
1010

11+
v1.4.1 (released 17/03/2026)
12+
----------------------------
13+
14+
This a minor release which includes the latest version of libsemigroups_
15+
(v3.5.3), which contains a number of important bugfixes. There are also some
16+
improvements to the documentation.
17+
1118
v1.4.0 (released 25/02/2026)
1219
----------------------------
1320

docs/source/install.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ To build ``libsemigroups_pybind11`` from a release archive:
101101
102102
::
103103

104-
$ curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-1.4.0.tar.gz
105-
$ tar -xf libsemigroups_pybind11-1.4.0.tar.gz
106-
$ rm -f libsemigroups_pybind11-1.4.0.tar.gz
107-
$ cd libsemigroups_pybind11-1.4.0
104+
$ curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-1.4.1.tar.gz
105+
$ tar -xf libsemigroups_pybind11-1.4.1.tar.gz
106+
$ rm -f libsemigroups_pybind11-1.4.1.tar.gz
107+
$ cd libsemigroups_pybind11-1.4.1
108108
$ pip install .
109109

110110
Building the documentation

release.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
[authors]
22
expired_emails = []
33
author_files = ["docs/source/authors.rst"]
4-
ignore = ["dependabot"]
4+
ignore = ["dependabot", "Codex"]

src/forest.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ Check if there are any nodes in the forest. This function returns
143143
Reinitialize an existing :any:`Forest` object.
144144
145145
This function reinitializes an existing :any:`Forest` object so that it is in
146-
the same state as if it had just be constructed as ``Forest(n)``.
146+
the same state as if it had just been constructed as ``Forest(n)``.
147147
148148
:param n: the number of nodes, defaults to ``0``.
149149
:type n: int
@@ -218,8 +218,7 @@ then node *i* is a root node.
218218
thing.def("number_of_nodes",
219219
&Forest::number_of_nodes,
220220
R"pbdoc(
221-
Returns the number of nodes in the forest. Returns the number of nodes
222-
in the forest.
221+
Returns the number of nodes in the forest.
223222
224223
:returns:
225224
The number of nodes in the forest.
@@ -559,7 +558,7 @@ This function returns the number of paths in the range.
559558
R"pbdoc(
560559
Returns the underlying Forest object.
561560
562-
This function returns the :any:`Forest` object used to constructor or
561+
This function returns the :any:`Forest` object used to construct or
563562
initialise *self*.
564563
565564
:returns: A :any:`Forest` object.
@@ -744,18 +743,18 @@ does nothing.
744743
Range object for iterating through paths in a :any:`Forest`.
745744
746745
This class represents a range object that facilitates
747-
iterating through the paths from every node to the root of its subtree in a
746+
iterating through the paths from the root of each subtree to every node in a
748747
:any:`Forest` object. These nodes are taken in numerical order, so the first value
749748
returned by :any:`get` is the word to a root from node ``0``, after :any:`next`
750749
is called, :any:`get` returns the word to a root from node ``1``, and so on.
751750
The point of this class is to permit more efficient iteration over many paths
752751
in a :any:`Forest` object than :any:`path_from_root` (and its
753752
associated helper functions). :any:`path_from_root` traverses
754-
the :any:`Forest` from the given node to the root of its tree. If the path from
755-
nodes ``m`` and ``n`` to the root of their tree share a long common suffix, then
756-
this suffix will be traversed twice in two calls to :any:`path_from_root`.
753+
the :any:`Forest` from the root of a tree to a given node. If the paths to
754+
nodes ``m`` and ``n`` share a long common prefix, then this prefix will be
755+
traversed twice in two calls to :any:`path_from_root`.
757756
:any:`PathsFromRoots` avoids this by finding the least common ancestor of ``m`` and
758-
``n``, so that the suffix is not re-traversed. This works best when the nodes in
757+
``n``, so that the prefix is not re-traversed. This works best when the nodes in
759758
the :any:`Forest` are specified in a sensible order (such as via a depth-first or
760759
breadth-first traversal).)pbdoc");
761760

0 commit comments

Comments
 (0)