Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gap-digraphs for openSUSE:Factory 
checked in at 2025-09-11 14:41:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gap-digraphs (Old)
 and      /work/SRC/openSUSE:Factory/.gap-digraphs.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gap-digraphs"

Thu Sep 11 14:41:53 2025 rev:12 rq:1304035 version:1.12.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/gap-digraphs/gap-digraphs.changes        
2025-09-08 09:59:11.838565503 +0200
+++ /work/SRC/openSUSE:Factory/.gap-digraphs.new.1977/gap-digraphs.changes      
2025-09-11 14:47:18.460004318 +0200
@@ -1,0 +2,8 @@
+Thu Sep 11 07:53:47 UTC 2025 - Jan Engelhardt <[email protected]>
+
+- Update to release 1.12.1
+  * Fix an inconsistency in ``IsConnectedDigraph`` for a digraph
+    with no vertices.
+  * Fixed incorrect properties getting set in ``CirculantGraph``.
+
+-------------------------------------------------------------------

Old:
----
  digraphs-1.12.0.tar.gz

New:
----
  digraphs-1.12.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gap-digraphs.spec ++++++
--- /var/tmp/diff_new_pack.2tgDWj/_old  2025-09-11 14:47:18.956025278 +0200
+++ /var/tmp/diff_new_pack.2tgDWj/_new  2025-09-11 14:47:18.956025278 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gap-digraphs
-Version:        1.12.0
+Version:        1.12.1
 Release:        0
 Summary:        GAP: Digraphs and multigraphs
 License:        GPL-3.0-or-later

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.2tgDWj/_old  2025-09-11 14:47:18.984026461 +0200
+++ /var/tmp/diff_new_pack.2tgDWj/_new  2025-09-11 14:47:18.988026630 +0200
@@ -1,5 +1,5 @@
-mtime: 1757261244
-commit: 949bfd5d632c64d51e620ed993ab8d5b471fa16afd6a3f7f3e42b3c059165cd3
+mtime: 1757578335
+commit: 056bb715f52c2de67c6b6f16d2cf14965be4df817d968ae1d84fdcd8ef612df8
 url: https://src.opensuse.org/jengelh/gap-digraphs
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-09-11 10:12:30.000000000 +0200
@@ -0,0 +1 @@
+.osc

++++++ digraphs-1.12.0.tar.gz -> digraphs-1.12.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/CHANGELOG.md 
new/digraphs-1.12.1/CHANGELOG.md
--- old/digraphs-1.12.0/CHANGELOG.md    2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/CHANGELOG.md    2025-09-10 18:04:21.000000000 +0200
@@ -4,48 +4,37 @@
 
 Licensing information can be found in the `LICENSE` file.
 
+## Version 1.12.1 (released 10/09/2025)
+
+## What's Changed
+* [@wilfwilson](https://github.com/wilfwilson) fixed a bug in an 
`ImmediateMethod` for `IsConnectedDigraph` in [PR 
#819](https://github.com/digraphs/Digraphs/pull/819).
+*  [@wilfwilson](https://github.com/wilfwilson) fixed a bug in 
`CirculantGraph` in [PR #820](https://github.com/digraphs/Digraphs/pull/820) 
(reported by Grahame Erskine, aka [@grahamee](https://github.com/grahamee)).
+
+**Full Changelog**: 
<https://github.com/digraphs/Digraphs/compare/v1.12.0...v1.12.1>
+
 ## Version 1.12.0 (released 02/09/2025)
 
 ## What's Changed
-* [@wilfwilson](https://github.com/wilfwilson) added `IsDirectedForest` in
-[PR #794](https://github.com/digraphs/Digraphs/pull/794).
+* [@wilfwilson](https://github.com/wilfwilson) added `IsDirectedForest` in [PR 
#794](https://github.com/digraphs/Digraphs/pull/794).
 
-**Full Changelog**: 
https://github.com/digraphs/Digraphs/compare/v1.11.0...v1.12.0
+**Full Changelog**: 
<https://github.com/digraphs/Digraphs/compare/v1.11.0...v1.12.0>
 
 ## Version 1.11.0 (released 28/08/2025)
 
 ## What's Changed
-* Added `IsTwoEdgeTransitive` by 
[@frankiegillis](https://github.com/frankiegillis) in
-[PR #733](https://github.com/digraphs/Digraphs/pull/733).
-* [@flsmith](https://github.com/flsmith) made `RandomDigraph` more random in
-[PR #738](https://github.com/digraphs/Digraphs/pull/738).
-* Added `BurntPancakeGraph` and `BurntPancakeGraph` in
-[PR #403](https://github.com/digraphs/Digraphs/pull/403).
-* Added a new optional first argument for mutability in `CayleyDigraph` by
-[@james-d-mitchell](https://github.com/james-d-mitchell) in [PR 
#403](https://github.com/digraphs/Digraphs/pull/403).
-* Added `MinimalCyclicEdgeCut` by [@MeikeWeiss](https://github.com/MeikeWeiss) 
in
-[PR #754](https://github.com/digraphs/Digraphs/pull/754).
-* Added `DigraphAllChordlessCyclesOfMaximalLength` by 
[@MeikeWeiss](https://github.com/MeikeWeiss) in
-[PR #754](https://github.com/digraphs/Digraphs/pull/754).
-* Added `DigraphKings` and `DigraphIsKing` by [@hrj4](https://github.com/hrj4) 
in
-[PR #521](https://github.com/digraphs/Digraphs/pull/521).
-* [@wilfwilson](https://github.com/wilfwilson) improved `ViewString` for 
digraphs in
-[PR #783](https://github.com/digraphs/Digraphs/pull/783).
-* [@EwanGilligan](https://github.com/EwanGilligan) implemented Zykov's and 
Christofides's algorithms and made them
-available as options for `ChromaticNumber` in
-[PR #491](https://github.com/digraphs/Digraphs/pull/491).
-* [@ChrisJefferson](https://github.com/ChrisJefferson) sped up `OnDigraphs` 
for a digraph and a permutation in
-[PR #267](https://github.com/digraphs/Digraphs/pull/267).
-* [@pramothragavan](https://github.com/pramothragavan) added dreadnaut support 
in
-[PR #651](https://github.com/digraphs/Digraphs/pull/651), along with the 
functions
-`DreadnautString`, `DigraphFromDreadnautString`, `DIMACSString`, and
-`DigraphFromDIMACSString`; and the variables `WholeFileEncoders` and
-`WholeFileDecoders` and the functions `IsWholeFileEncoder` and
-`IsWholeFileDecoder`.
-* [@RaiyanC](https://github.com/RaiyanC) added `DigraphMaximumFlow` in
-[PR #751](https://github.com/digraphs/Digraphs/pull/751).
-* [@RaiyanC](https://github.com/RaiyanC) added 
`RandomUniqueEdgeWeightedDigraph`
-[PR #755](https://github.com/digraphs/Digraphs/pull/755).
+* Added `IsTwoEdgeTransitive` by 
[@frankiegillis](https://github.com/frankiegillis) in [PR 
#733](https://github.com/digraphs/Digraphs/pull/733).
+* [@flsmith](https://github.com/flsmith) made `RandomDigraph` more random in 
[PR #738](https://github.com/digraphs/Digraphs/pull/738).
+* Added `BurntPancakeGraph` and `BurntPancakeGraph` in [PR 
#403](https://github.com/digraphs/Digraphs/pull/403).
+* Added a new optional first argument for mutability in `CayleyDigraph` by 
[@james-d-mitchell](https://github.com/james-d-mitchell) in [PR 
#403](https://github.com/digraphs/Digraphs/pull/403).
+* Added `MinimalCyclicEdgeCut` by [@MeikeWeiss](https://github.com/MeikeWeiss) 
in [PR #754](https://github.com/digraphs/Digraphs/pull/754).
+* Added `DigraphAllChordlessCyclesOfMaximalLength` by 
[@MeikeWeiss](https://github.com/MeikeWeiss) in [PR 
#754](https://github.com/digraphs/Digraphs/pull/754).
+* Added `DigraphKings` and `DigraphIsKing` by [@hrj4](https://github.com/hrj4) 
in [PR #521](https://github.com/digraphs/Digraphs/pull/521).
+* [@wilfwilson](https://github.com/wilfwilson) improved `ViewString` for 
digraphs in [PR #783](https://github.com/digraphs/Digraphs/pull/783).
+* [@EwanGilligan](https://github.com/EwanGilligan) implemented Zykov's and 
Christofides's algorithms and made them available as options for 
`ChromaticNumber` in [PR #491](https://github.com/digraphs/Digraphs/pull/491).
+* [@ChrisJefferson](https://github.com/ChrisJefferson) sped up `OnDigraphs` 
for a digraph and a permutation in [PR 
#267](https://github.com/digraphs/Digraphs/pull/267).
+* [@pramothragavan](https://github.com/pramothragavan) added dreadnaut support 
in [PR #651](https://github.com/digraphs/Digraphs/pull/651), along with the 
functions `DreadnautString`, `DigraphFromDreadnautString`, `DIMACSString`, and 
`DigraphFromDIMACSString`; and the variables `WholeFileEncoders` and 
`WholeFileDecoders` and the functions `IsWholeFileEncoder` and 
`IsWholeFileDecoder`.
+* [@RaiyanC](https://github.com/RaiyanC) added `DigraphMaximumFlow` in [PR 
#751](https://github.com/digraphs/Digraphs/pull/751).
+* [@RaiyanC](https://github.com/RaiyanC) added 
`RandomUniqueEdgeWeightedDigraph` [PR 
#755](https://github.com/digraphs/Digraphs/pull/755).
 
 ## New Contributors
 * [@BaseMax](https://github.com/BaseMax) made their first contribution in [PR 
#749](https://github.com/digraphs/Digraphs/pull/749).
@@ -512,7 +501,7 @@
 This is a minor release that fixes some bugs related to mutability in
 `DigraphDisjointUnion` and `ViewString`.
 
-These problems were reported and fixed by [Wilf A.  Wilson][] in
+These problems were reported and fixed by [Wilf A. Wilson][] in
 [Issue #276](https://github.com/digraphs/Digraphs/issues/276) and
 [PR #277](https://github.com/digraphs/Digraphs/pull/277), respectively.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/PackageInfo.g 
new/digraphs-1.12.1/PackageInfo.g
--- old/digraphs-1.12.0/PackageInfo.g   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/PackageInfo.g   2025-09-10 18:04:21.000000000 +0200
@@ -38,8 +38,8 @@
 SetPackageInfo(rec(
 PackageName := "Digraphs",
 Subtitle := "Graphs, digraphs, and multidigraphs in GAP",
-Version := "1.12.0",
-Date := "02/09/2025",  # dd/mm/yyyy format
+Version := "1.12.1",
+Date := "10/09/2025",  # dd/mm/yyyy format
 License := "GPL-3.0-or-later",
 ArchiveFormats := ".tar.gz",
 
@@ -621,7 +621,10 @@
           on work by Max Neunh&#246;ffer, and independently Artur Sch&#228;fer.
         """)),
 
-        AbstractHTML := ~.AutoDoc.TitlePage.Abstract));
+        AbstractHTML := ReplacedString(ReplacedString(
+            ~.AutoDoc.TitlePage.Abstract,
+            "&Digraphs;", "<Strong>Digraphs</Strong>"),
+            "&GAP;", "<Strong>GAP</Strong>")));
 
 if not CompareVersionNumbers(GAPInfo.Version, "4.12") then
   Unbind(IsKernelExtensionAvailable);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/VERSIONS new/digraphs-1.12.1/VERSIONS
--- old/digraphs-1.12.0/VERSIONS        2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/VERSIONS        2025-09-10 18:04:21.000000000 +0200
@@ -8,6 +8,7 @@
 #############################################################################
 ##
 
+release 1.12.1 - 10/09/2025
 release 1.12.0 - 02/09/2025
 release 1.11.0 - 28/08/2025
 release 1.10.1 - 27/08/2025
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/_entities.xml 
new/digraphs-1.12.1/doc/_entities.xml
--- old/digraphs-1.12.0/doc/_entities.xml       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/_entities.xml       2025-09-10 18:04:21.000000000 
+0200
@@ -1,5 +1,5 @@
-<!ENTITY VERSION '1.12.0'>
-<!ENTITY ARCHIVENAME 'digraphs-1.12.0.tar.gz'>
+<!ENTITY VERSION '1.12.1'>
+<!ENTITY ARCHIVENAME 'digraphs-1.12.1.tar.gz'>
 <!ENTITY GAPVERS '4.10.0'>
 <!ENTITY IOVERS '4.5.1'>
 <!ENTITY ORBVERS '4.8.2'>
@@ -9,7 +9,8 @@
 <!ENTITY NAUTYTRACESINTERFACEVERS '0.2'>
 <!ENTITY AUTODOCVERS '2020.08.11'>
 <!ENTITY DIGRAPHS '<Package>Digraphs</Package>'>
-<!ENTITY IO '<Package>io</Package>'>
+<!ENTITY IO '<Alt Not="Text"><URL 
Text="IO">https://gap-packages.github.io/io</URL></Alt>
+    <Alt Only="Text"><Package>IO</Package></Alt>'>
 <!ENTITY ORB '<Package>orb</Package>'>
 <!ENTITY DATASTRUCTURES '<Package>datastructures</Package>'>
 <!ENTITY GAPDOC '<Alt Not="Text"><URL 
Text="GAPDoc">https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc</URL></Alt>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap0.html 
new/digraphs-1.12.1/doc/chap0.html
--- old/digraphs-1.12.0/doc/chap0.html  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap0.html  2025-09-10 18:04:21.000000000 +0200
@@ -29,10 +29,10 @@
 <h2>Graphs, digraphs, and multidigraphs in <strong 
class="pkg">GAP</strong></h2>
 
 <p>
-    1.12.0</p>
+    1.12.1</p>
 
 <p>
-    2 September 2025
+    10 September 2025
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap0.txt 
new/digraphs-1.12.1/doc/chap0.txt
--- old/digraphs-1.12.0/doc/chap0.txt   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap0.txt   2025-09-10 18:04:21.000000000 +0200
@@ -6,10 +6,10 @@
                    Graphs, digraphs, and multidigraphs in GAP 

   
   
-                                     1.12.0
+                                     1.12.1
   
   
-                                2 September 2025
+                               10 September 2025
   
   
                                   Jan De Beule
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap0_mj.html 
new/digraphs-1.12.1/doc/chap0_mj.html
--- old/digraphs-1.12.0/doc/chap0_mj.html       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/chap0_mj.html       2025-09-10 18:04:21.000000000 
+0200
@@ -32,10 +32,10 @@
 <h2>Graphs, digraphs, and multidigraphs in <strong 
class="pkg">GAP</strong></h2>
 
 <p>
-    1.12.0</p>
+    1.12.1</p>
 
 <p>
-    2 September 2025
+    10 September 2025
   </p>
 
 </div>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap1.html 
new/digraphs-1.12.1/doc/chap1.html
--- old/digraphs-1.12.0/doc/chap1.html  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap1.html  2025-09-10 18:04:21.000000000 +0200
@@ -42,7 +42,7 @@
 
 <h4>1.1 <span class="Heading">Introduction</span></h4>
 
-<p>This is the manual for version 1.12.0 of the <strong 
class="pkg">Digraphs</strong> package. This package was developed at the 
University of St Andrews by:</p>
+<p>This is the manual for version 1.12.1 of the <strong 
class="pkg">Digraphs</strong> package. This package was developed at the 
University of St Andrews by:</p>
 
 
 <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap1.txt 
new/digraphs-1.12.1/doc/chap1.txt
--- old/digraphs-1.12.0/doc/chap1.txt   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap1.txt   2025-09-10 18:04:21.000000000 +0200
@@ -4,7 +4,7 @@
   
   1.1 Introduction
   
-  This  is the manual for version 1.12.0 of the Digraphs 
package. This package
+  This  is the manual for version 1.12.1 of the Digraphs 
package. This package
   was developed at the University of St Andrews by:
   
       Jan De Beule,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap1_mj.html 
new/digraphs-1.12.1/doc/chap1_mj.html
--- old/digraphs-1.12.0/doc/chap1_mj.html       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/chap1_mj.html       2025-09-10 18:04:21.000000000 
+0200
@@ -45,7 +45,7 @@
 
 <h4>1.1 <span class="Heading">Introduction</span></h4>
 
-<p>This is the manual for version 1.12.0 of the <strong 
class="pkg">Digraphs</strong> package. This package was developed at the 
University of St Andrews by:</p>
+<p>This is the manual for version 1.12.1 of the <strong 
class="pkg">Digraphs</strong> package. This package was developed at the 
University of St Andrews by:</p>
 
 
 <ul>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap2.html 
new/digraphs-1.12.1/doc/chap2.html
--- old/digraphs-1.12.0/doc/chap2.html  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap2.html  2025-09-10 18:04:21.000000000 +0200
@@ -65,7 +65,7 @@
 
 
 <ul>
-<li><p>ensure that the <strong class="pkg">io</strong> package version 4.5.1 
or higher is available. <strong class="pkg">io</strong> must be compiled before 
<strong class="pkg">Digraphs</strong> can be loaded.</p>
+<li><p>ensure that the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package version 4.5.1 or 
higher is available. <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> must be compiled before 
<strong class="pkg">Digraphs</strong> can be loaded.</p>
 
 </li>
 <li><p>ensure that the <strong class="pkg">orb</strong> package version 4.8.2 
or higher is available. <strong class="pkg">orb</strong> has better performance 
when compiled, but although compilation is recommended, it is not required to 
be compiled for <strong class="pkg">Digraphs</strong> to be loaded.</p>
@@ -80,16 +80,16 @@
 <li><p><strong class="button">This step is optional:</strong> certain 
functions in <strong class="pkg">Digraphs</strong> require the <span 
class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 package to be available. If you want to make use of these functions, please 
ensure that the <span class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 package version 0.2 or higher is available. If <span class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 is not available, then <strong class="pkg">Digraphs</strong> can be used as 
normal with the exception that functions whose names contain <q>Nauty</q> will 
not work.</p>
 
 </li>
-<li><p>download the package archive <code 
class="file">digraphs-1.12.0.tar.gz.tar.gz</code> from <span class="URL"><a 
href="https://digraphs.github.io/Digraphs/";>the Digraphs package 
webpage</a></span>.</p>
+<li><p>download the package archive <code 
class="file">digraphs-1.12.1.tar.gz.tar.gz</code> from <span class="URL"><a 
href="https://digraphs.github.io/Digraphs/";>the Digraphs package 
webpage</a></span>.</p>
 
 </li>
-<li><p>unzip and untar the file, this should create a directory called <code 
class="file">digraphs-1.12.0.tar.gz</code>.</p>
+<li><p>unzip and untar the file, this should create a directory called <code 
class="file">digraphs-1.12.1.tar.gz</code>.</p>
 
 </li>
-<li><p>locate the <code class="file">pkg</code> directory of your <strong 
class="pkg">GAP</strong> directory, which contains the directories <code 
class="file">lib</code>, <code class="file">doc</code> and so on. Move the 
directory <code class="file">digraphs-1.12.0.tar.gz</code> into the <code 
class="file">pkg</code> directory.</p>
+<li><p>locate the <code class="file">pkg</code> directory of your <strong 
class="pkg">GAP</strong> directory, which contains the directories <code 
class="file">lib</code>, <code class="file">doc</code> and so on. Move the 
directory <code class="file">digraphs-1.12.1.tar.gz</code> into the <code 
class="file">pkg</code> directory.</p>
 
 </li>
-<li><p>it is necessary to compile the <strong class="pkg">Digraphs</strong> 
package. Inside the <code class="file">pkg/digraphs-1.12.0.tar.gz</code> 
directory, type</p>
+<li><p>it is necessary to compile the <strong class="pkg">Digraphs</strong> 
package. Inside the <code class="file">pkg/digraphs-1.12.1.tar.gz</code> 
directory, type</p>
 
 
 <div class="example"><pre>
@@ -155,7 +155,7 @@
 
 <h4>2.2 <span class="Heading">Optional package dependencies</span></h4>
 
-<p>The <strong class="pkg">Digraphs</strong> package is written in <strong 
class="pkg">GAP</strong> and C code and requires the <strong 
class="pkg">io</strong> package. The <strong class="pkg">io</strong> package is 
used to read and write transformations, partial permutations, and bipartitions 
to a file.</p>
+<p>The <strong class="pkg">Digraphs</strong> package is written in <strong 
class="pkg">GAP</strong> and C code and requires the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. The <span 
class="URL"><a href="https://gap-packages.github.io/io";>IO</a></span> package 
is used to read and write transformations, partial permutations, and 
bipartitions to a file.</p>
 
 <p><a id="X8493C7587FCF6D8B" name="X8493C7587FCF6D8B"></a></p>
 
@@ -185,7 +185,7 @@
 
 <p>It is not possible to use the <strong class="pkg">Digraphs</strong> package 
without compiling it.</p>
 
-<p>To compile the kernel component inside the <code 
class="file">pkg/digraphs-1.12.0.tar.gz</code> directory, type</p>
+<p>To compile the kernel component inside the <code 
class="file">pkg/digraphs-1.12.1.tar.gz</code> directory, type</p>
 
 
 <div class="example"><pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap2.txt 
new/digraphs-1.12.1/doc/chap2.txt
--- old/digraphs-1.12.0/doc/chap2.txt   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap2.txt   2025-09-10 18:04:21.000000000 +0200
@@ -14,7 +14,7 @@
   The  following  is  a  summary of the steps that should lead to a 
successful
   installation of Digraphs:
   
-      ensure  that  the  io package version 4.5.1 or 
higher is available. io
+      ensure  that  the  IO package version 4.5.1 or 
higher is available. IO
         must be compiled before Digraphs can be loaded.
   
       ensure  that the orb package version 4.8.2 or 
higher is available. orb
@@ -39,18 +39,18 @@
         not  available, then Digraphs can be used as normal with the 
exception
         that functions whose names contain Nauty will not 
work.
   
-      download  the  package  archive 
digraphs-1.12.0.tar.gz.tar.gz from the
+      download  the  package  archive 
digraphs-1.12.1.tar.gz.tar.gz from the
         Digraphs package webpage 
(https://digraphs.github.io/Digraphs/).
   
       unzip  and  untar  the  file,  this  should  create a 
directory called
-        digraphs-1.12.0.tar.gz.
+        digraphs-1.12.1.tar.gz.
   
       locate  the  pkg  directory  of your 
GAP directory, which contains the
         directories    lib,    doc    and    so   on.   
Move   the   directory
-        digraphs-1.12.0.tar.gz into the pkg 
directory.
+        digraphs-1.12.1.tar.gz into the pkg 
directory.
   
       it   is   necessary  to  compile  the  
Digraphs  package.  Inside  the
-        pkg/digraphs-1.12.0.tar.gz directory, type
+        pkg/digraphs-1.12.1.tar.gz directory, type
   
         
           ./configure
@@ -91,8 +91,8 @@
   
   2.2 Optional package dependencies
   
-  The  Digraphs  package  is  written  in  GAP  
and C code and requires the io
-  package.  The  io package is used to read and write 
transformations, partial
+  The  Digraphs  package  is  written  in  GAP  
and C code and requires the IO
+  package.  The  IO package is used to read and write 
transformations, partial
   permutations, and bipartitions to a file.
   
   
@@ -119,7 +119,7 @@
   
   It is not possible to use the Digraphs package without 
compiling it.
   
-  To  compile  the  kernel  component  inside  the  
pkg/digraphs-1.12.0.tar.gz
+  To  compile  the  kernel  component  inside  the  
pkg/digraphs-1.12.1.tar.gz
   directory, type
   
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap2_mj.html 
new/digraphs-1.12.1/doc/chap2_mj.html
--- old/digraphs-1.12.0/doc/chap2_mj.html       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/chap2_mj.html       2025-09-10 18:04:21.000000000 
+0200
@@ -68,7 +68,7 @@
 
 
 <ul>
-<li><p>ensure that the <strong class="pkg">io</strong> package version 4.5.1 
or higher is available. <strong class="pkg">io</strong> must be compiled before 
<strong class="pkg">Digraphs</strong> can be loaded.</p>
+<li><p>ensure that the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package version 4.5.1 or 
higher is available. <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> must be compiled before 
<strong class="pkg">Digraphs</strong> can be loaded.</p>
 
 </li>
 <li><p>ensure that the <strong class="pkg">orb</strong> package version 4.8.2 
or higher is available. <strong class="pkg">orb</strong> has better performance 
when compiled, but although compilation is recommended, it is not required to 
be compiled for <strong class="pkg">Digraphs</strong> to be loaded.</p>
@@ -83,16 +83,16 @@
 <li><p><strong class="button">This step is optional:</strong> certain 
functions in <strong class="pkg">Digraphs</strong> require the <span 
class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 package to be available. If you want to make use of these functions, please 
ensure that the <span class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 package version 0.2 or higher is available. If <span class="URL"><a 
href="https://github.com/gap-packages/NautyTracesInterface";>NautyTracesInterface</a></span>
 is not available, then <strong class="pkg">Digraphs</strong> can be used as 
normal with the exception that functions whose names contain <q>Nauty</q> will 
not work.</p>
 
 </li>
-<li><p>download the package archive <code 
class="file">digraphs-1.12.0.tar.gz.tar.gz</code> from <span class="URL"><a 
href="https://digraphs.github.io/Digraphs/";>the Digraphs package 
webpage</a></span>.</p>
+<li><p>download the package archive <code 
class="file">digraphs-1.12.1.tar.gz.tar.gz</code> from <span class="URL"><a 
href="https://digraphs.github.io/Digraphs/";>the Digraphs package 
webpage</a></span>.</p>
 
 </li>
-<li><p>unzip and untar the file, this should create a directory called <code 
class="file">digraphs-1.12.0.tar.gz</code>.</p>
+<li><p>unzip and untar the file, this should create a directory called <code 
class="file">digraphs-1.12.1.tar.gz</code>.</p>
 
 </li>
-<li><p>locate the <code class="file">pkg</code> directory of your <strong 
class="pkg">GAP</strong> directory, which contains the directories <code 
class="file">lib</code>, <code class="file">doc</code> and so on. Move the 
directory <code class="file">digraphs-1.12.0.tar.gz</code> into the <code 
class="file">pkg</code> directory.</p>
+<li><p>locate the <code class="file">pkg</code> directory of your <strong 
class="pkg">GAP</strong> directory, which contains the directories <code 
class="file">lib</code>, <code class="file">doc</code> and so on. Move the 
directory <code class="file">digraphs-1.12.1.tar.gz</code> into the <code 
class="file">pkg</code> directory.</p>
 
 </li>
-<li><p>it is necessary to compile the <strong class="pkg">Digraphs</strong> 
package. Inside the <code class="file">pkg/digraphs-1.12.0.tar.gz</code> 
directory, type</p>
+<li><p>it is necessary to compile the <strong class="pkg">Digraphs</strong> 
package. Inside the <code class="file">pkg/digraphs-1.12.1.tar.gz</code> 
directory, type</p>
 
 
 <div class="example"><pre>
@@ -158,7 +158,7 @@
 
 <h4>2.2 <span class="Heading">Optional package dependencies</span></h4>
 
-<p>The <strong class="pkg">Digraphs</strong> package is written in <strong 
class="pkg">GAP</strong> and C code and requires the <strong 
class="pkg">io</strong> package. The <strong class="pkg">io</strong> package is 
used to read and write transformations, partial permutations, and bipartitions 
to a file.</p>
+<p>The <strong class="pkg">Digraphs</strong> package is written in <strong 
class="pkg">GAP</strong> and C code and requires the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. The <span 
class="URL"><a href="https://gap-packages.github.io/io";>IO</a></span> package 
is used to read and write transformations, partial permutations, and 
bipartitions to a file.</p>
 
 <p><a id="X8493C7587FCF6D8B" name="X8493C7587FCF6D8B"></a></p>
 
@@ -188,7 +188,7 @@
 
 <p>It is not possible to use the <strong class="pkg">Digraphs</strong> package 
without compiling it.</p>
 
-<p>To compile the kernel component inside the <code 
class="file">pkg/digraphs-1.12.0.tar.gz</code> directory, type</p>
+<p>To compile the kernel component inside the <code 
class="file">pkg/digraphs-1.12.1.tar.gz</code> directory, type</p>
 
 
 <div class="example"><pre>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap3.html 
new/digraphs-1.12.1/doc/chap3.html
--- old/digraphs-1.12.0/doc/chap3.html  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap3.html  2025-09-10 18:04:21.000000000 +0200
@@ -2686,7 +2686,7 @@
 
 <p>If <var class="Arg">par</var> is <span class="SimpleMath">[1]</span>, then 
the graph is the <var class="Arg">n</var>th cyclic graph. If <var 
class="Arg">par</var> is <code class="code">[1,2,...,Int(<var 
class="Arg">n</var>/2)]</code>, then the graph is the complete graph on <var 
class="Arg">n</var> vertices. If <var class="Arg">n</var> is at least 4 and 
<var class="Arg">par</var> is <code class="code">[1,<var 
class="Arg">n</var>]</code> then the graph is the <var class="Arg">n</var>th 
Mobius ladder graph.</p>
 
-<p>A circulant graph is biconnected, cyclic, Hamiltonian, regular, and vertex 
transitive.</p>
+<p>A circulant graph is vertex transitive, but is not necessarily connected 
(consider <code class="code">CirculantGraph(4, [2])</code>, for example). 
However, a <em>connected</em> circulant graph is also Hamiltonian and 
biconnected.</p>
 
 <p>See <span class="URL"><a 
href="https://mathworld.wolfram.com/CirculantGraph.html";>https://mathworld.wolfram.com/CirculantGraph.html</a></span>
 for further details.</p>
 
@@ -2694,10 +2694,19 @@
 
 
 <div class="example"><pre>
-<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [1, 2, 3]);</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [2]);</span>
+&lt;immutable vertex-transitive symmetric digraph with 6 vertices, 12 edg\
+es&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">DigraphNrConnectedComponents(D);</span>
+2
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [2, 3]);</span>
 &lt;immutable Hamiltonian biconnected vertex-transitive symmetric digraph\
- with 6 vertices, 30 edges&gt;
-<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">IsIsomorphicDigraph(D, CompleteDigraph(6));</span>
+ with 6 vertices, 18 edges&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">AutomorphismGroup(D) = DihedralGroup(IsPermGroup, 12);</span>
+true
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">HamiltonianPath(D);</span>
+[ 1, 3, 5, 2, 6, 4 ]
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">IsCompleteDigraph(CirculantGraph(6, [1, 2, 3]));</span>
 true</pre></div>
 
 <p><a id="X812417E278198D9C" name="X812417E278198D9C"></a></p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap3.txt 
new/digraphs-1.12.1/doc/chap3.txt
--- old/digraphs-1.12.0/doc/chap3.txt   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap3.txt   2025-09-10 18:04:21.000000000 +0200
@@ -2893,8 +2893,9 @@
   is  at  least  4  and  par  is [1,n] 
then the graph is the nth Mobius ladder
   graph.
   
-  A  circulant  graph is biconnected, cyclic, Hamiltonian, regular, 
and vertex
-  transitive.
+  A  circulant  graph  is  vertex transitive, but is not 
necessarily connected
+  (consider   CirculantGraph(4,  [2]),  for  example).  However,  a 
 connected
+  circulant graph is also Hamiltonian and biconnected.
   
   See https://mathworld.wolfram.com/CirculantGraph.html 
for further details.
   
@@ -2906,10 +2907,19 @@
   IsImmutableDigraph (3.1-3) is used by default.
   
     Example  
-    gap> D := CirculantGraph(6, [1, 2, 3]);
+    gap> D := CirculantGraph(6, [2]);
+    <immutable vertex-transitive symmetric digraph with 6 vertices, 
12 edg\
+    es>
+    gap> DigraphNrConnectedComponents(D);
+    2
+    gap> D := CirculantGraph(6, [2, 3]);
     <immutable Hamiltonian biconnected vertex-transitive symmetric 
digraph\
-     with 6 vertices, 30 edges>
-    gap> IsIsomorphicDigraph(D, 
CompleteDigraph(6));
+     with 6 vertices, 18 edges>
+    gap> AutomorphismGroup(D) = DihedralGroup(IsPermGroup, 
12);
+    true
+    gap> HamiltonianPath(D);
+    [ 1, 3, 5, 2, 6, 4 ]
+    gap> IsCompleteDigraph(CirculantGraph(6, [1, 2, 
3]));
     true
   
   
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap3_mj.html 
new/digraphs-1.12.1/doc/chap3_mj.html
--- old/digraphs-1.12.0/doc/chap3_mj.html       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/chap3_mj.html       2025-09-10 18:04:21.000000000 
+0200
@@ -2689,7 +2689,7 @@
 
 <p>If <var class="Arg">par</var> is <span class="SimpleMath">\([1]\)</span>, 
then the graph is the <var class="Arg">n</var>th cyclic graph. If <var 
class="Arg">par</var> is <code class="code">[1,2,...,Int(<var 
class="Arg">n</var>/2)]</code>, then the graph is the complete graph on <var 
class="Arg">n</var> vertices. If <var class="Arg">n</var> is at least 4 and 
<var class="Arg">par</var> is <code class="code">[1,<var 
class="Arg">n</var>]</code> then the graph is the <var class="Arg">n</var>th 
Mobius ladder graph.</p>
 
-<p>A circulant graph is biconnected, cyclic, Hamiltonian, regular, and vertex 
transitive.</p>
+<p>A circulant graph is vertex transitive, but is not necessarily connected 
(consider <code class="code">CirculantGraph(4, [2])</code>, for example). 
However, a <em>connected</em> circulant graph is also Hamiltonian and 
biconnected.</p>
 
 <p>See <span class="URL"><a 
href="https://mathworld.wolfram.com/CirculantGraph.html";>https://mathworld.wolfram.com/CirculantGraph.html</a></span>
 for further details.</p>
 
@@ -2697,10 +2697,19 @@
 
 
 <div class="example"><pre>
-<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [1, 2, 3]);</span>
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [2]);</span>
+&lt;immutable vertex-transitive symmetric digraph with 6 vertices, 12 edg\
+es&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">DigraphNrConnectedComponents(D);</span>
+2
+<span class="GAPprompt">gap&gt;</span> <span class="GAPinput">D := 
CirculantGraph(6, [2, 3]);</span>
 &lt;immutable Hamiltonian biconnected vertex-transitive symmetric digraph\
- with 6 vertices, 30 edges&gt;
-<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">IsIsomorphicDigraph(D, CompleteDigraph(6));</span>
+ with 6 vertices, 18 edges&gt;
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">AutomorphismGroup(D) = DihedralGroup(IsPermGroup, 12);</span>
+true
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">HamiltonianPath(D);</span>
+[ 1, 3, 5, 2, 6, 4 ]
+<span class="GAPprompt">gap&gt;</span> <span 
class="GAPinput">IsCompleteDigraph(CirculantGraph(6, [1, 2, 3]));</span>
 true</pre></div>
 
 <p><a id="X812417E278198D9C" name="X812417E278198D9C"></a></p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap9.html 
new/digraphs-1.12.1/doc/chap9.html
--- old/digraphs-1.12.0/doc/chap9.html  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap9.html  2025-09-10 18:04:21.000000000 +0200
@@ -688,7 +688,7 @@
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; DigraphFile</code>( <var 
class="Arg">filename</var>[, <var class="Arg">coder</var>][, <var 
class="Arg">mode</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
 <p>Returns: An IO file object.</p>
 
-<p>If <var class="Arg">filename</var> is a string representing the name of a 
file, then <code class="code">DigraphFile</code> returns an <strong 
class="pkg">io</strong> package file object for that file.</p>
+<p>If <var class="Arg">filename</var> is a string representing the name of a 
file, then <code class="code">DigraphFile</code> returns an <span 
class="URL"><a href="https://gap-packages.github.io/io";>IO</a></span> package 
file object for that file.</p>
 
 <p>If the optional argument <var class="Arg">coder</var> is specified and is a 
function which either encodes a digraph as a string, or decodes a string into a 
digraph, then this function will be used when reading or writing to the 
returned file object. If the optional argument <var class="Arg">coder</var> is 
not specified, then the encoding of the digraphs in the returned file object 
must be specified in the the file extension. The file extension must be one of: 
<code class="code">.g6</code>, <code class="code">.s6</code>, <code 
class="code">.d6</code>, <code class="code">.ds6</code>, <code 
class="code">.txt</code>, <code class="code">.p</code>, or <code 
class="code">.pickle</code>; more details of these file formats is given 
below.</p>
 
@@ -725,7 +725,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
@@ -758,7 +758,7 @@
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; ReadDigraphs</code>( <var 
class="Arg">filename</var>[, <var class="Arg">decoder</var>][, <var 
class="Arg">n</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
 <p>Returns: A digraph, or a list of digraphs.</p>
 
-<p>If <var class="Arg">filename</var> is a string containing the name of a 
file containing encoded digraphs or an <strong class="pkg">io</strong> file 
object created using <code class="func">DigraphFile</code> (<a 
href="chap9.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">ReadDigraphs</code> returns the digraphs encoded in the 
file as a list. Note that if <var class="Arg">filename</var> is a compressed 
file, which has been compressed appropriately to give a filename extension of 
<code class="code">.gz</code>, <code class="code">.bz2</code>, or <code 
class="code">.xz</code>, then <code class="code">ReadDigraphs</code> can read 
<var class="Arg">filename</var> without it first needing to be decompressed.</p>
+<p>If <var class="Arg">filename</var> is a string containing the name of a 
file containing encoded digraphs or an <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> file object created 
using <code class="func">DigraphFile</code> (<a 
href="chap9.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">ReadDigraphs</code> returns the digraphs encoded in the 
file as a list. Note that if <var class="Arg">filename</var> is a compressed 
file, which has been compressed appropriately to give a filename extension of 
<code class="code">.gz</code>, <code class="code">.bz2</code>, or <code 
class="code">.xz</code>, then <code class="code">ReadDigraphs</code> can read 
<var class="Arg">filename</var> without it first needing to be decompressed.</p>
 
 <p>If the optional argument <var class="Arg">decoder</var> is specified and is 
a function which decodes a string into a digraph, then <code 
class="code">ReadDigraphs</code> will use <var class="Arg">decoder</var> to 
decode the digraphs contained in <var class="Arg">filename</var>.</p>
 
@@ -793,7 +793,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
@@ -835,7 +835,7 @@
 <h5>9.2-8 WriteDigraphs</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; WriteDigraphs</code>( <var 
class="Arg">filename</var>, <var class="Arg">digraphs</var>[, <var 
class="Arg">encoder</var>][, <var class="Arg">mode</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p>If <var class="Arg">digraphs</var> is a list of digraphs or a digraph and 
<var class="Arg">filename</var> is a string or an <strong 
class="pkg">io</strong> file object created using <code 
class="func">DigraphFile</code> (<a href="chap9.html#X7845ACDA7D4D333D"><span 
class="RefLink">9.2-6</span></a>), then <code class="code">WriteDigraphs</code> 
writes the digraphs to the file represented by <var class="Arg">filename</var>. 
If the supplied filename ends in one of the extensions <code 
class="code">.gz</code>, <code class="code">.bz2</code>, or <code 
class="code">.xz</code>, then the file will be compressed appropriately. 
Excluding these extensions, if the file ends with an extension in the list 
below, the corresponding graph format will be used to encode it. If such an 
extension is not included, an appropriate format will be chosen intelligently, 
and an extension appended, to minimise file size.</p>
+<p>If <var class="Arg">digraphs</var> is a list of digraphs or a digraph and 
<var class="Arg">filename</var> is a string or an <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> file object created 
using <code class="func">DigraphFile</code> (<a 
href="chap9.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">WriteDigraphs</code> writes the digraphs to the file 
represented by <var class="Arg">filename</var>. If the supplied filename ends 
in one of the extensions <code class="code">.gz</code>, <code 
class="code">.bz2</code>, or <code class="code">.xz</code>, then the file will 
be compressed appropriately. Excluding these extensions, if the file ends with 
an extension in the list below, the corresponding graph format will be used to 
encode it. If such an extension is not included, an appropriate format will be 
chosen intelligently, and an extension appended, to minimise file size.</p>
 
 <p>For more verbose information on the progress of the function, set the info 
level of <var class="Arg">InfoDigraphs</var> to 1 or higher, using <code 
class="code">SetInfoLevel</code>.</p>
 
@@ -866,7 +866,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) is 
non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap9.txt 
new/digraphs-1.12.1/doc/chap9.txt
--- old/digraphs-1.12.0/doc/chap9.txt   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/chap9.txt   2025-09-10 18:04:21.000000000 +0200
@@ -768,7 +768,7 @@
   Returns:  An IO file object.
   
   If  filename  is  a string representing the name of a 
file, then DigraphFile
-  returns an io package file object for that file.
+  returns an IO package file object for that file.
   
   If  the  optional argument coder is specified and is a 
function which either
   encodes a digraph as a string, or decodes a string into a digraph, then this
@@ -828,7 +828,7 @@
         digraphs in a plain text file.
   
   pickled (.p or .pickle)
-        Digraphs  are  pickled using the io package. This 
is particularly good
+        Digraphs  are  pickled using the IO package. This 
is particularly good
         when the DigraphGroup (7.2-10) is 
non-trivial.
   
   dreadnaut (.dre)
@@ -863,7 +863,7 @@
   Returns:  A digraph, or a list of digraphs.
   
   If  filename  is  a  string containing the name of a 
file containing encoded
-  digraphs  or  an  io  file  object  created  using 
DigraphFile (9.2-6), then
+  digraphs  or  an  IO  file  object  created  using 
DigraphFile (9.2-6), then
   ReadDigraphs  returns  the digraphs encoded in the file as a 
list. Note that
   if filename is a compressed file, which has been compressed 
appropriately to
   give  a  filename extension of .gz, .bz2, or 
.xz, then ReadDigraphs can read
@@ -918,7 +918,7 @@
         digraphs in a plain text file.
   
   pickled (.p or .pickle)
-        Digraphs  are  pickled using the io package. This 
is particularly good
+        Digraphs  are  pickled using the IO package. This 
is particularly good
         when the DigraphGroup (7.2-10) is 
non-trivial.
   
   dreadnaut (.dre)
@@ -964,7 +964,7 @@
   WriteDigraphs( filename, 
digraphs[, encoder][, mode] )  function
   
   If  digraphs  is a list of digraphs or a digraph and 
filename is a string or
-  an  io  file  object  created  using DigraphFile 
(9.2-6), then WriteDigraphs
+  an  IO  file  object  created  using DigraphFile 
(9.2-6), then WriteDigraphs
   writes  the  digraphs  to  the file represented by filename. If 
the supplied
   filename ends in one of the extensions .gz, .bz2, or 
.xz, then the file will
   be  compressed  appropriately.  Excluding these extensions, if the file ends
@@ -1011,7 +1011,7 @@
         digraphs in a plain text file.
   
   pickled (.p or .pickle)
-        Digraphs  are  pickled using the io package. This 
is particularly good
+        Digraphs  are  pickled using the IO package. This 
is particularly good
         when the DigraphGroup (7.2-10) is 
non-trivial.
   
   dreadnaut (.dre)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/chap9_mj.html 
new/digraphs-1.12.1/doc/chap9_mj.html
--- old/digraphs-1.12.0/doc/chap9_mj.html       2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/chap9_mj.html       2025-09-10 18:04:21.000000000 
+0200
@@ -691,7 +691,7 @@
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; DigraphFile</code>( <var 
class="Arg">filename</var>[, <var class="Arg">coder</var>][, <var 
class="Arg">mode</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
 <p>Returns: An IO file object.</p>
 
-<p>If <var class="Arg">filename</var> is a string representing the name of a 
file, then <code class="code">DigraphFile</code> returns an <strong 
class="pkg">io</strong> package file object for that file.</p>
+<p>If <var class="Arg">filename</var> is a string representing the name of a 
file, then <code class="code">DigraphFile</code> returns an <span 
class="URL"><a href="https://gap-packages.github.io/io";>IO</a></span> package 
file object for that file.</p>
 
 <p>If the optional argument <var class="Arg">coder</var> is specified and is a 
function which either encodes a digraph as a string, or decodes a string into a 
digraph, then this function will be used when reading or writing to the 
returned file object. If the optional argument <var class="Arg">coder</var> is 
not specified, then the encoding of the digraphs in the returned file object 
must be specified in the the file extension. The file extension must be one of: 
<code class="code">.g6</code>, <code class="code">.s6</code>, <code 
class="code">.d6</code>, <code class="code">.ds6</code>, <code 
class="code">.txt</code>, <code class="code">.p</code>, or <code 
class="code">.pickle</code>; more details of these file formats is given 
below.</p>
 
@@ -728,7 +728,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
@@ -761,7 +761,7 @@
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; ReadDigraphs</code>( <var 
class="Arg">filename</var>[, <var class="Arg">decoder</var>][, <var 
class="Arg">n</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
 <p>Returns: A digraph, or a list of digraphs.</p>
 
-<p>If <var class="Arg">filename</var> is a string containing the name of a 
file containing encoded digraphs or an <strong class="pkg">io</strong> file 
object created using <code class="func">DigraphFile</code> (<a 
href="chap9_mj.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">ReadDigraphs</code> returns the digraphs encoded in the 
file as a list. Note that if <var class="Arg">filename</var> is a compressed 
file, which has been compressed appropriately to give a filename extension of 
<code class="code">.gz</code>, <code class="code">.bz2</code>, or <code 
class="code">.xz</code>, then <code class="code">ReadDigraphs</code> can read 
<var class="Arg">filename</var> without it first needing to be decompressed.</p>
+<p>If <var class="Arg">filename</var> is a string containing the name of a 
file containing encoded digraphs or an <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> file object created 
using <code class="func">DigraphFile</code> (<a 
href="chap9_mj.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">ReadDigraphs</code> returns the digraphs encoded in the 
file as a list. Note that if <var class="Arg">filename</var> is a compressed 
file, which has been compressed appropriately to give a filename extension of 
<code class="code">.gz</code>, <code class="code">.bz2</code>, or <code 
class="code">.xz</code>, then <code class="code">ReadDigraphs</code> can read 
<var class="Arg">filename</var> without it first needing to be decompressed.</p>
 
 <p>If the optional argument <var class="Arg">decoder</var> is specified and is 
a function which decodes a string into a digraph, then <code 
class="code">ReadDigraphs</code> will use <var class="Arg">decoder</var> to 
decode the digraphs contained in <var class="Arg">filename</var>.</p>
 
@@ -796,7 +796,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
@@ -838,7 +838,7 @@
 <h5>9.2-8 WriteDigraphs</h5>
 
 <div class="func"><table class="func" width="100%"><tr><td 
class="tdleft"><code class="func">&#8227; WriteDigraphs</code>( <var 
class="Arg">filename</var>, <var class="Arg">digraphs</var>[, <var 
class="Arg">encoder</var>][, <var class="Arg">mode</var>] )</td><td 
class="tdright">(&nbsp;function&nbsp;)</td></tr></table></div>
-<p>If <var class="Arg">digraphs</var> is a list of digraphs or a digraph and 
<var class="Arg">filename</var> is a string or an <strong 
class="pkg">io</strong> file object created using <code 
class="func">DigraphFile</code> (<a 
href="chap9_mj.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">WriteDigraphs</code> writes the digraphs to the file 
represented by <var class="Arg">filename</var>. If the supplied filename ends 
in one of the extensions <code class="code">.gz</code>, <code 
class="code">.bz2</code>, or <code class="code">.xz</code>, then the file will 
be compressed appropriately. Excluding these extensions, if the file ends with 
an extension in the list below, the corresponding graph format will be used to 
encode it. If such an extension is not included, an appropriate format will be 
chosen intelligently, and an extension appended, to minimise file size.</p>
+<p>If <var class="Arg">digraphs</var> is a list of digraphs or a digraph and 
<var class="Arg">filename</var> is a string or an <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> file object created 
using <code class="func">DigraphFile</code> (<a 
href="chap9_mj.html#X7845ACDA7D4D333D"><span class="RefLink">9.2-6</span></a>), 
then <code class="code">WriteDigraphs</code> writes the digraphs to the file 
represented by <var class="Arg">filename</var>. If the supplied filename ends 
in one of the extensions <code class="code">.gz</code>, <code 
class="code">.bz2</code>, or <code class="code">.xz</code>, then the file will 
be compressed appropriately. Excluding these extensions, if the file ends with 
an extension in the list below, the corresponding graph format will be used to 
encode it. If such an extension is not included, an appropriate format will be 
chosen intelligently, and an extension appended, to minimise file size.</p>
 
 <p>For more verbose information on the progress of the function, set the info 
level of <var class="Arg">InfoDigraphs</var> to 1 or higher, using <code 
class="code">SetInfoLevel</code>.</p>
 
@@ -869,7 +869,7 @@
 
 </dd>
 <dt><strong class="Mark">pickled (<code class="file">.p</code> or <code 
class="file">.pickle</code>)</strong></dt>
-<dd><p>Digraphs are pickled using the <strong class="pkg">io</strong> package. 
This is particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
+<dd><p>Digraphs are pickled using the <span class="URL"><a 
href="https://gap-packages.github.io/io";>IO</a></span> package. This is 
particularly good when the <code class="func">DigraphGroup</code> (<a 
href="chap7_mj.html#X803ACEDA7BBAC5B3"><span class="RefLink">7.2-10</span></a>) 
is non-trivial.</p>
 
 </dd>
 <dt><strong class="Mark">dreadnaut (.dre)</strong></dt>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/examples.xml 
new/digraphs-1.12.1/doc/examples.xml
--- old/digraphs-1.12.0/doc/examples.xml        2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/doc/examples.xml        2025-09-10 18:04:21.000000000 
+0200
@@ -1044,8 +1044,9 @@
     <A>par</A> is <C>[1,<A>n</A>]</C> then the graph is the <A>n</A>th Mobius
     ladder graph.<P/>
 
-    A circulant graph is biconnected, cyclic, Hamiltonian, regular, and vertex
-    transitive.<P/>
+    A circulant graph is vertex transitive, but is not necessarily connected
+    (consider <C>CirculantGraph(4, [2])</C>, for example).  However, a
+    <E>connected</E> circulant graph is also Hamiltonian and biconnected.<P/>
 
     See <URL>https://mathworld.wolfram.com/CirculantGraph.html</URL> for 
further
     details.<P/>
@@ -1053,10 +1054,19 @@
     &STANDARD_FILT_TEXT;
 
 <Example><![CDATA[
-gap> D := CirculantGraph(6, [1, 2, 3]);
+gap> D := CirculantGraph(6, [2]);
+<immutable vertex-transitive symmetric digraph with 6 vertices, 12 edg\
+es>
+gap> DigraphNrConnectedComponents(D);
+2
+gap> D := CirculantGraph(6, [2, 3]);
 <immutable Hamiltonian biconnected vertex-transitive symmetric digraph\
- with 6 vertices, 30 edges>
-gap> IsIsomorphicDigraph(D, CompleteDigraph(6));
+ with 6 vertices, 18 edges>
+gap> AutomorphismGroup(D) = DihedralGroup(IsPermGroup, 12);
+true
+gap> HamiltonianPath(D);
+[ 1, 3, 5, 2, 6, 4 ]
+gap> IsCompleteDigraph(CirculantGraph(6, [1, 2, 3]));
 true]]></Example>
   </Description>
 </ManSection>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/main.tex 
new/digraphs-1.12.1/doc/main.tex
--- old/digraphs-1.12.0/doc/main.tex    2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/main.tex    2025-09-10 18:04:21.000000000 +0200
@@ -101,8 +101,8 @@
 {\Huge \textbf{ Graphs, digraphs, and multidigraphs in \textsf{GAP} \mbox{}}}\\
 \vfill
 
-{\Huge  1.12.0 \mbox{}}\\[1cm]
-{ 2 September 2025 \mbox{}}\\[1cm]
+{\Huge  1.12.1 \mbox{}}\\[1cm]
+{ 10 September 2025 \mbox{}}\\[1cm]
 \mbox{}\\[2cm]
 {\Large \textbf{ Jan De Beule\\
     \mbox{}}}\\
@@ -504,7 +504,7 @@
 \section{\textcolor{Chapter }{Introduction}}\logpage{[ 1, 1, 0 ]}
 \hyperdef{L}{X7DFB63A97E67C0A1}{}
 {
- This is the manual for version 1.12.0 of the \textsf{Digraphs} package. This 
package was developed at the University of St Andrews by: 
+ This is the manual for version 1.12.1 of the \textsf{Digraphs} package. This 
package was developed at the University of St Andrews by: 
 \begin{itemize}
 \item Jan De Beule,
 \item Julius Jonu{\v s}as,
@@ -582,17 +582,17 @@
  The following is a summary of the steps that should lead to a successful
 installation of \textsf{Digraphs}: 
 \begin{itemize}
-\item  ensure that the \textsf{io} package version 4.5.1 or higher is 
available. \textsf{io} must be compiled before \textsf{Digraphs} can be loaded. 
+\item  ensure that the \href{https://gap-packages.github.io/io} {IO}  package 
version 4.5.1 or higher is available. \href{https://gap-packages.github.io/io} 
{IO}  must be compiled before \textsf{Digraphs} can be loaded. 
 \item  ensure that the \textsf{orb} package version 4.8.2 or higher is 
available. \textsf{orb} has better performance when compiled, but although 
compilation is recommended,
 it is not required to be compiled for \textsf{Digraphs} to be loaded. 
 \item  ensure that the \textsf{datastructures} package version 0.2.5 or higher 
is available. 
 \item  \textsc{This step is optional:} certain functions in \textsf{Digraphs} 
require the \href{https://gap-packages.github.io/grape} {GRAPE}  package to be 
available; see Section \ref{The Grape package} for full details. To use these 
functions make sure that the \href{https://gap-packages.github.io/grape} 
{GRAPE}  package version 4.8.1 or higher is available. If 
\href{https://gap-packages.github.io/grape} {GRAPE}  is not available, then 
\textsf{Digraphs} can be used as normal with the exception that the functions 
listed in
 Subsection \ref{The Grape package} will not work. 
 \item  \textsc{This step is optional:} certain functions in \textsf{Digraphs} 
require the \href{https://github.com/gap-packages/NautyTracesInterface} 
{NautyTracesInterface}  package to be available.  If you want to make use of 
these functions, please ensure that the 
\href{https://github.com/gap-packages/NautyTracesInterface} 
{NautyTracesInterface}  package version 0.2 or higher is available. If 
\href{https://github.com/gap-packages/NautyTracesInterface} 
{NautyTracesInterface}  is not available, then \textsf{Digraphs} can be used as 
normal with the exception that functions whose names contain ``Nauty'' will not 
work. 
-\item  download the package archive 
\texttt{digraphs\texttt{\symbol{45}}1.12.0.tar.gz.tar.gz} from 
\href{https://digraphs.github.io/Digraphs/} {the Digraphs package webpage}. 
-\item  unzip and untar the file, this should create a directory called 
\texttt{digraphs\texttt{\symbol{45}}1.12.0.tar.gz}. 
-\item  locate the \texttt{pkg} directory of your \textsf{GAP} directory, which 
contains the directories \texttt{lib}, \texttt{doc} and so on. Move the 
directory \texttt{digraphs\texttt{\symbol{45}}1.12.0.tar.gz} into the 
\texttt{pkg} directory. 
-\item  it is necessary to compile the \textsf{Digraphs} package. Inside the 
\texttt{pkg/digraphs\texttt{\symbol{45}}1.12.0.tar.gz} directory, type 
+\item  download the package archive 
\texttt{digraphs\texttt{\symbol{45}}1.12.1.tar.gz.tar.gz} from 
\href{https://digraphs.github.io/Digraphs/} {the Digraphs package webpage}. 
+\item  unzip and untar the file, this should create a directory called 
\texttt{digraphs\texttt{\symbol{45}}1.12.1.tar.gz}. 
+\item  locate the \texttt{pkg} directory of your \textsf{GAP} directory, which 
contains the directories \texttt{lib}, \texttt{doc} and so on. Move the 
directory \texttt{digraphs\texttt{\symbol{45}}1.12.1.tar.gz} into the 
\texttt{pkg} directory. 
+\item  it is necessary to compile the \textsf{Digraphs} package. Inside the 
\texttt{pkg/digraphs\texttt{\symbol{45}}1.12.1.tar.gz} directory, type 
 \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=]
   ./configure
   make
@@ -641,7 +641,7 @@
 \logpage{[ 2, 2, 0 ]}
 \hyperdef{L}{X780AA9D97EBCA95D}{}
 {
-   The \textsf{Digraphs} package is written in \textsf{GAP} and C code and 
requires the \textsf{io} package. The \textsf{io} package is used to read and 
write transformations, partial permutations, and
+   The \textsf{Digraphs} package is written in \textsf{GAP} and C code and 
requires the \href{https://gap-packages.github.io/io} {IO}  package. The 
\href{https://gap-packages.github.io/io} {IO}  package is used to read and 
write transformations, partial permutations, and
 bipartitions to a file. 
 
   
@@ -670,7 +670,7 @@
 
  It is not possible to use the \textsf{Digraphs} package without compiling it.
 
- To compile the kernel component inside the 
\texttt{pkg/digraphs\texttt{\symbol{45}}1.12.0.tar.gz} directory, type 
+ To compile the kernel component inside the 
\texttt{pkg/digraphs\texttt{\symbol{45}}1.12.1.tar.gz} directory, type 
 \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=]
   
   ./configure
@@ -3974,8 +3974,8 @@
 
  If \mbox{\texttt{\mdseries\slshape par}} is $[1]$, then the graph is the 
\mbox{\texttt{\mdseries\slshape n}}th cyclic graph. If 
\mbox{\texttt{\mdseries\slshape par}} is 
\texttt{[1,2,...,Int(\mbox{\texttt{\mdseries\slshape n}}/2)]}, then the graph 
is the complete graph on \mbox{\texttt{\mdseries\slshape n}} vertices. If 
\mbox{\texttt{\mdseries\slshape n}} is at least 4 and 
\mbox{\texttt{\mdseries\slshape par}} is 
\texttt{[1,\mbox{\texttt{\mdseries\slshape n}}]} then the graph is the 
\mbox{\texttt{\mdseries\slshape n}}th Mobius ladder graph.
 
- A circulant graph is biconnected, cyclic, Hamiltonian, regular, and vertex
-transitive.
+ A circulant graph is vertex transitive, but is not necessarily connected
+(consider \texttt{CirculantGraph(4, [2])}, for example). However, a 
\emph{connected} circulant graph is also Hamiltonian and biconnected.
 
  See \href{https://mathworld.wolfram.com/CirculantGraph.html} 
{\texttt{https://mathworld.wolfram.com/CirculantGraph.html}} for further 
details.
 
@@ -3984,10 +3984,19 @@
 
  
 \begin{Verbatim}[commandchars=!@|,fontsize=\small,frame=single,label=Example]
-  !gapprompt@gap>| !gapinput@D := CirculantGraph(6, [1, 2, 3]);|
+  !gapprompt@gap>| !gapinput@D := CirculantGraph(6, [2]);|
+  <immutable vertex-transitive symmetric digraph with 6 vertices, 12 edg\
+  es>
+  !gapprompt@gap>| !gapinput@DigraphNrConnectedComponents(D);|
+  2
+  !gapprompt@gap>| !gapinput@D := CirculantGraph(6, [2, 3]);|
   <immutable Hamiltonian biconnected vertex-transitive symmetric digraph\
-   with 6 vertices, 30 edges>
-  !gapprompt@gap>| !gapinput@IsIsomorphicDigraph(D, CompleteDigraph(6));|
+   with 6 vertices, 18 edges>
+  !gapprompt@gap>| !gapinput@AutomorphismGroup(D) = DihedralGroup(IsPermGroup, 
12);|
+  true
+  !gapprompt@gap>| !gapinput@HamiltonianPath(D);|
+  [ 1, 3, 5, 2, 6, 4 ]
+  !gapprompt@gap>| !gapinput@IsCompleteDigraph(CirculantGraph(6, [1, 2, 3]));|
   true
 \end{Verbatim}
  }
@@ -14876,7 +14885,7 @@
 
 
 
- If \mbox{\texttt{\mdseries\slshape filename}} is a string representing the 
name of a file, then \texttt{DigraphFile} returns an \textsf{io} package file 
object for that file. 
+ If \mbox{\texttt{\mdseries\slshape filename}} is a string representing the 
name of a file, then \texttt{DigraphFile} returns an 
\href{https://gap-packages.github.io/io} {IO}  package file object for that 
file. 
 
  If the optional argument \mbox{\texttt{\mdseries\slshape coder}} is specified 
and is a function which either encodes a digraph as a string, or
 decodes a string into a digraph, then this function will be used when reading
@@ -14918,7 +14927,7 @@
  See \texttt{ReadPlainTextDigraph} (\ref{ReadPlainTextDigraph}) for a more 
flexible way to store digraphs in a plain text file. 
 
  
-\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \textsf{io} package. This is particularly good when the 
\texttt{DigraphGroup} (\ref{DigraphGroup}) is non\texttt{\symbol{45}}trivial. 
+\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \href{https://gap-packages.github.io/io} {IO}  package. This is 
particularly good when the \texttt{DigraphGroup} (\ref{DigraphGroup}) is 
non\texttt{\symbol{45}}trivial. 
 \item[{dreadnaut (.dre)}]  A graph format designed for directed and undirected 
graphs. The format
 supports loops but multiple edges are ignored. The format consists of an
 initial section that defines the graph's structural properties, such as the
@@ -14958,7 +14967,7 @@
 
 
 
- If \mbox{\texttt{\mdseries\slshape filename}} is a string containing the name 
of a file containing encoded digraphs or an \textsf{io} file object created 
using \texttt{DigraphFile} (\ref{DigraphFile}), then \texttt{ReadDigraphs} 
returns the digraphs encoded in the file as a list. Note that if 
\mbox{\texttt{\mdseries\slshape filename}} is a compressed file, which has been 
compressed appropriately to give a
+ If \mbox{\texttt{\mdseries\slshape filename}} is a string containing the name 
of a file containing encoded digraphs or an 
\href{https://gap-packages.github.io/io} {IO}  file object created using 
\texttt{DigraphFile} (\ref{DigraphFile}), then \texttt{ReadDigraphs} returns 
the digraphs encoded in the file as a list. Note that if 
\mbox{\texttt{\mdseries\slshape filename}} is a compressed file, which has been 
compressed appropriately to give a
 filename extension of \texttt{.gz}, \texttt{.bz2}, or \texttt{.xz}, then 
\texttt{ReadDigraphs} can read \mbox{\texttt{\mdseries\slshape filename}} 
without it first needing to be decompressed. 
 
  If the optional argument \mbox{\texttt{\mdseries\slshape decoder}} is 
specified and is a function which decodes a string into a digraph, then 
\texttt{ReadDigraphs} will use \mbox{\texttt{\mdseries\slshape decoder}} to 
decode the digraphs contained in \mbox{\texttt{\mdseries\slshape filename}}.
@@ -14993,7 +15002,7 @@
  See \texttt{ReadPlainTextDigraph} (\ref{ReadPlainTextDigraph}) for a more 
flexible way to store digraphs in a plain text file. 
 
   
-\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \textsf{io} package. This is particularly good when the 
\texttt{DigraphGroup} (\ref{DigraphGroup}) is non\texttt{\symbol{45}}trivial. 
+\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \href{https://gap-packages.github.io/io} {IO}  package. This is 
particularly good when the \texttt{DigraphGroup} (\ref{DigraphGroup}) is 
non\texttt{\symbol{45}}trivial. 
 
  
 \item[{dreadnaut (.dre)}]  A graph format designed for directed and undirected 
graphs. The format
@@ -15044,7 +15053,7 @@
 }\hfill{\scriptsize (function)}}\\
 
 
- If \mbox{\texttt{\mdseries\slshape digraphs}} is a list of digraphs or a 
digraph and \mbox{\texttt{\mdseries\slshape filename}} is a string or an 
\textsf{io} file object created using \texttt{DigraphFile} (\ref{DigraphFile}), 
then \texttt{WriteDigraphs} writes the digraphs to the file represented by 
\mbox{\texttt{\mdseries\slshape filename}}. If the supplied filename ends in 
one of the extensions \texttt{.gz}, \texttt{.bz2}, or \texttt{.xz}, then the 
file will be compressed appropriately. Excluding these extensions,
+ If \mbox{\texttt{\mdseries\slshape digraphs}} is a list of digraphs or a 
digraph and \mbox{\texttt{\mdseries\slshape filename}} is a string or an 
\href{https://gap-packages.github.io/io} {IO}  file object created using 
\texttt{DigraphFile} (\ref{DigraphFile}), then \texttt{WriteDigraphs} writes 
the digraphs to the file represented by \mbox{\texttt{\mdseries\slshape 
filename}}. If the supplied filename ends in one of the extensions 
\texttt{.gz}, \texttt{.bz2}, or \texttt{.xz}, then the file will be compressed 
appropriately. Excluding these extensions,
 if the file ends with an extension in the list below, the corresponding graph
 format will be used to encode it. If such an extension is not included, an
 appropriate format will be chosen intelligently, and an extension appended, to
@@ -15079,7 +15088,7 @@
  See \texttt{ReadPlainTextDigraph} (\ref{ReadPlainTextDigraph}) for a more 
flexible way to store digraphs in a plain text file. 
 
   
-\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \textsf{io} package. This is particularly good when the 
\texttt{DigraphGroup} (\ref{DigraphGroup}) is non\texttt{\symbol{45}}trivial. 
+\item[{pickled (\texttt{.p} or \texttt{.pickle})}]  Digraphs are pickled using 
the \href{https://gap-packages.github.io/io} {IO}  package. This is 
particularly good when the \texttt{DigraphGroup} (\ref{DigraphGroup}) is 
non\texttt{\symbol{45}}trivial. 
 \item[{dreadnaut (.dre)}]  A graph format designed for directed and undirected 
graphs. The format
 supports loops but multiple edges are ignored. The format consists of an
 initial section that defines the graph's structural properties, such as the
Binary files old/digraphs-1.12.0/doc/manual.pdf and 
new/digraphs-1.12.1/doc/manual.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/manual.six 
new/digraphs-1.12.1/doc/manual.six
--- old/digraphs-1.12.0/doc/manual.six  2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/manual.six  2025-09-10 18:04:21.000000000 +0200
@@ -507,91 +507,91 @@
       "chaindigraph", "X870594FC866AC88E" ], 
   [ "\033[2XCirculantGraph\033[102X", "3.5-12", [ 3, 5, 12 ], 2881, 58, 
       "circulantgraph", "X7DB5AB657A797CF2" ], 
-  [ "\033[2XCompleteDigraph\033[102X", "3.5-13", [ 3, 5, 13 ], 2916, 59, 
+  [ "\033[2XCompleteDigraph\033[102X", "3.5-13", [ 3, 5, 13 ], 2926, 59, 
       "completedigraph", "X812417E278198D9C" ], 
-  [ "\033[2XCompleteBipartiteDigraph\033[102X", "3.5-14", [ 3, 5, 14 ], 2938, 
+  [ "\033[2XCompleteBipartiteDigraph\033[102X", "3.5-14", [ 3, 5, 14 ], 2948, 
       59, "completebipartitedigraph", "X8795B0AD856014FA" ], 
   [ "\033[2XCompleteMultipartiteDigraph\033[102X", "3.5-15", [ 3, 5, 15 ], 
-      2965, 60, "completemultipartitedigraph", "X873F29CC863241F8" ], 
-  [ "\033[2XCycleDigraph\033[102X", "3.5-16", [ 3, 5, 16 ], 2989, 60, 
+      2975, 60, "completemultipartitedigraph", "X873F29CC863241F8" ], 
+  [ "\033[2XCycleDigraph\033[102X", "3.5-16", [ 3, 5, 16 ], 2999, 60, 
       "cycledigraph", "X80C29DDE876FFBEB" ], 
-  [ "\033[2XDigraphCycle\033[102X", "3.5-16", [ 3, 5, 16 ], 2989, 60, 
+  [ "\033[2XDigraphCycle\033[102X", "3.5-16", [ 3, 5, 16 ], 2999, 60, 
       "digraphcycle", "X80C29DDE876FFBEB" ], 
-  [ "\033[2XCycleGraph\033[102X", "3.5-17", [ 3, 5, 17 ], 3018, 60, 
+  [ "\033[2XCycleGraph\033[102X", "3.5-17", [ 3, 5, 17 ], 3028, 61, 
       "cyclegraph", "X7F6EC0AE81531C3C" ], 
-  [ "\033[2XEmptyDigraph\033[102X", "3.5-18", [ 3, 5, 18 ], 3044, 61, 
+  [ "\033[2XEmptyDigraph\033[102X", "3.5-18", [ 3, 5, 18 ], 3054, 61, 
       "emptydigraph", "X80DAE31A79FEFD40" ], 
-  [ "\033[2XNullDigraph\033[102X", "3.5-18", [ 3, 5, 18 ], 3044, 61, 
+  [ "\033[2XNullDigraph\033[102X", "3.5-18", [ 3, 5, 18 ], 3054, 61, 
       "nulldigraph", "X80DAE31A79FEFD40" ], 
-  [ "\033[2XGearGraph\033[102X", "3.5-19", [ 3, 5, 19 ], 3071, 61, 
+  [ "\033[2XGearGraph\033[102X", "3.5-19", [ 3, 5, 19 ], 3081, 61, 
       "geargraph", "X7CE45E2B782ADE9A" ], 
-  [ "\033[2XHaarGraph\033[102X", "3.5-20", [ 3, 5, 20 ], 3103, 62, 
+  [ "\033[2XHaarGraph\033[102X", "3.5-20", [ 3, 5, 20 ], 3113, 62, 
       "haargraph", "X795B62398767E313" ], 
-  [ "\033[2XHalvedCubeGraph\033[102X", "3.5-21", [ 3, 5, 21 ], 3133, 62, 
+  [ "\033[2XHalvedCubeGraph\033[102X", "3.5-21", [ 3, 5, 21 ], 3143, 62, 
       "halvedcubegraph", "X801024F57DDC8A39" ], 
-  [ "\033[2XHanoiGraph\033[102X", "3.5-22", [ 3, 5, 22 ], 3167, 63, 
+  [ "\033[2XHanoiGraph\033[102X", "3.5-22", [ 3, 5, 22 ], 3177, 63, 
       "hanoigraph", "X7C43BDE47DF6553A" ], 
-  [ "\033[2XHelmGraph\033[102X", "3.5-23", [ 3, 5, 23 ], 3200, 63, 
+  [ "\033[2XHelmGraph\033[102X", "3.5-23", [ 3, 5, 23 ], 3210, 63, 
       "helmgraph", "X782ABFCE812B020A" ], 
-  [ "\033[2XHypercubeGraph\033[102X", "3.5-24", [ 3, 5, 24 ], 3224, 64, 
+  [ "\033[2XHypercubeGraph\033[102X", "3.5-24", [ 3, 5, 24 ], 3234, 64, 
       "hypercubegraph", "X7EE552F88609B1A2" ], 
-  [ "\033[2XJohnsonDigraph\033[102X", "3.5-25", [ 3, 5, 25 ], 3252, 64, 
+  [ "\033[2XJohnsonDigraph\033[102X", "3.5-25", [ 3, 5, 25 ], 3262, 64, 
       "johnsondigraph", "X80ED9CE785819607" ], 
-  [ "\033[2XKellerGraph\033[102X", "3.5-26", [ 3, 5, 26 ], 3287, 65, 
+  [ "\033[2XKellerGraph\033[102X", "3.5-26", [ 3, 5, 26 ], 3297, 65, 
       "kellergraph", "X79483C677AF65688" ], 
-  [ "\033[2XKingsGraph\033[102X", "3.5-27", [ 3, 5, 27 ], 3323, 65, 
+  [ "\033[2XKingsGraph\033[102X", "3.5-27", [ 3, 5, 27 ], 3333, 65, 
       "kingsgraph", "X80576A8C861512FD" ], 
-  [ "\033[2XKneserGraph\033[102X", "3.5-28", [ 3, 5, 28 ], 3380, 66, 
+  [ "\033[2XKneserGraph\033[102X", "3.5-28", [ 3, 5, 28 ], 3390, 66, 
       "knesergraph", "X8655BA8584B3ACD0" ], 
-  [ "\033[2XKnightsGraph\033[102X", "3.5-29", [ 3, 5, 29 ], 3420, 67, 
+  [ "\033[2XKnightsGraph\033[102X", "3.5-29", [ 3, 5, 29 ], 3430, 67, 
       "knightsgraph", "X84609DCA79FD9B56" ], 
-  [ "\033[2XLindgrenSousselierGraph\033[102X", "3.5-30", [ 3, 5, 30 ], 3469, 
+  [ "\033[2XLindgrenSousselierGraph\033[102X", "3.5-30", [ 3, 5, 30 ], 3479, 
       68, "lindgrensousseliergraph", "X7F61140C822880DA" ], 
-  [ "\033[2XLollipopGraph\033[102X", "3.5-31", [ 3, 5, 31 ], 3502, 68, 
+  [ "\033[2XLollipopGraph\033[102X", "3.5-31", [ 3, 5, 31 ], 3512, 68, 
       "lollipopgraph", "X832E82CF87BF5D43" ], 
-  [ "\033[2XMobiusLadderGraph\033[102X", "3.5-32", [ 3, 5, 32 ], 3532, 69, 
+  [ "\033[2XMobiusLadderGraph\033[102X", "3.5-32", [ 3, 5, 32 ], 3542, 69, 
       "mobiusladdergraph", "X853613228110588E" ], 
-  [ "\033[2XMycielskiGraph\033[102X", "3.5-33", [ 3, 5, 33 ], 3569, 69, 
+  [ "\033[2XMycielskiGraph\033[102X", "3.5-33", [ 3, 5, 33 ], 3579, 69, 
       "mycielskigraph", "X825943547FD7A687" ], 
-  [ "\033[2XOddGraph\033[102X", "3.5-34", [ 3, 5, 34 ], 3604, 70, "oddgraph", 
+  [ "\033[2XOddGraph\033[102X", "3.5-34", [ 3, 5, 34 ], 3614, 70, "oddgraph", 
       "X7904BB2982014ADA" ], 
-  [ "\033[2XPathGraph\033[102X", "3.5-35", [ 3, 5, 35 ], 3638, 70, 
+  [ "\033[2XPathGraph\033[102X", "3.5-35", [ 3, 5, 35 ], 3648, 70, 
       "pathgraph", "X815055168405B7F0" ], 
-  [ "\033[2XPermutationStarGraph\033[102X", "3.5-36", [ 3, 5, 36 ], 3662, 71, 
+  [ "\033[2XPermutationStarGraph\033[102X", "3.5-36", [ 3, 5, 36 ], 3672, 71, 
       "permutationstargraph", "X7A38DFC47AAE4A96" ], 
-  [ "\033[2XPetersenGraph\033[102X", "3.5-37", [ 3, 5, 37 ], 3697, 71, 
+  [ "\033[2XPetersenGraph\033[102X", "3.5-37", [ 3, 5, 37 ], 3707, 71, 
       "petersengraph", "X823F43217A6C375D" ], 
-  [ "\033[2XGeneralisedPetersenGraph\033[102X", "3.5-38", [ 3, 5, 38 ], 3726, 
+  [ "\033[2XGeneralisedPetersenGraph\033[102X", "3.5-38", [ 3, 5, 38 ], 3736, 
       72, "generalisedpetersengraph", "X7B5441F386BD105E" ], 
-  [ "\033[2XPrismGraph\033[102X", "3.5-39", [ 3, 5, 39 ], 3765, 72, 
+  [ "\033[2XPrismGraph\033[102X", "3.5-39", [ 3, 5, 39 ], 3775, 72, 
       "prismgraph", "X85425DC5847E6D20" ], 
-  [ "\033[2XStackedPrismGraph\033[102X", "3.5-40", [ 3, 5, 40 ], 3798, 73, 
+  [ "\033[2XStackedPrismGraph\033[102X", "3.5-40", [ 3, 5, 40 ], 3808, 73, 
       "stackedprismgraph", "X817982877B48D5BD" ], 
-  [ "\033[2XQueensGraph\033[102X", "3.5-41", [ 3, 5, 41 ], 3827, 73, 
+  [ "\033[2XQueensGraph\033[102X", "3.5-41", [ 3, 5, 41 ], 3837, 73, 
       "queensgraph", "X785C3F1F7D690151" ], 
-  [ "\033[2XQueenGraph\033[102X", "3.5-41", [ 3, 5, 41 ], 3827, 73, 
+  [ "\033[2XQueenGraph\033[102X", "3.5-41", [ 3, 5, 41 ], 3837, 73, 
       "queengraph", "X785C3F1F7D690151" ], 
-  [ "\033[2XRooksGraph\033[102X", "3.5-42", [ 3, 5, 42 ], 3880, 74, 
+  [ "\033[2XRooksGraph\033[102X", "3.5-42", [ 3, 5, 42 ], 3890, 74, 
       "rooksgraph", "X7A6DD11881874F51" ], 
-  [ "\033[2XRookGraph\033[102X", "3.5-42", [ 3, 5, 42 ], 3880, 74, 
+  [ "\033[2XRookGraph\033[102X", "3.5-42", [ 3, 5, 42 ], 3890, 74, 
       "rookgraph", "X7A6DD11881874F51" ], 
-  [ "\033[2XSquareGridGraph\033[102X", "3.5-43", [ 3, 5, 43 ], 3930, 75, 
+  [ "\033[2XSquareGridGraph\033[102X", "3.5-43", [ 3, 5, 43 ], 3940, 75, 
       "squaregridgraph", "X8404987F849D7CF2" ], 
-  [ "\033[2XGridGraph\033[102X", "3.5-43", [ 3, 5, 43 ], 3930, 75, 
+  [ "\033[2XGridGraph\033[102X", "3.5-43", [ 3, 5, 43 ], 3940, 75, 
       "gridgraph", "X8404987F849D7CF2" ], 
-  [ "\033[2XTriangularGridGraph\033[102X", "3.5-44", [ 3, 5, 44 ], 3965, 75, 
+  [ "\033[2XTriangularGridGraph\033[102X", "3.5-44", [ 3, 5, 44 ], 3975, 75, 
       "triangulargridgraph", "X8234361278E8816F" ], 
-  [ "\033[2XStarGraph\033[102X", "3.5-45", [ 3, 5, 45 ], 4001, 76, 
+  [ "\033[2XStarGraph\033[102X", "3.5-45", [ 3, 5, 45 ], 4011, 76, 
       "stargraph", "X78F78C077CBAE1EC" ], 
-  [ "\033[2XTadpoleGraph\033[102X", "3.5-46", [ 3, 5, 46 ], 4032, 76, 
+  [ "\033[2XTadpoleGraph\033[102X", "3.5-46", [ 3, 5, 46 ], 4042, 77, 
       "tadpolegraph", "X81D59C4D809F4AD3" ], 
-  [ "\033[2XWalshHadamardGraph\033[102X", "3.5-47", [ 3, 5, 47 ], 4063, 77, 
+  [ "\033[2XWalshHadamardGraph\033[102X", "3.5-47", [ 3, 5, 47 ], 4073, 77, 
       "walshhadamardgraph", "X7BFA33067F83F8B0" ], 
-  [ "\033[2XWebGraph\033[102X", "3.5-48", [ 3, 5, 48 ], 4094, 77, "webgraph", 
+  [ "\033[2XWebGraph\033[102X", "3.5-48", [ 3, 5, 48 ], 4104, 78, "webgraph", 
       "X84F3B70A82EEE780" ], 
-  [ "\033[2XWheelGraph\033[102X", "3.5-49", [ 3, 5, 49 ], 4117, 78, 
+  [ "\033[2XWheelGraph\033[102X", "3.5-49", [ 3, 5, 49 ], 4127, 78, 
       "wheelgraph", "X817EA60D828A765E" ], 
-  [ "\033[2XWindmillGraph\033[102X", "3.5-50", [ 3, 5, 50 ], 4147, 78, 
+  [ "\033[2XWindmillGraph\033[102X", "3.5-50", [ 3, 5, 50 ], 4157, 78, 
       "windmillgraph", "X7BE44CA27AA5F8DB" ], 
   [ "\033[10X=\033[110X (for digraphs)", "4.1", [ 4, 1, 0 ], 4, 80, 
       "= for digraphs", "X84E0B5B88358C96B" ], 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/doc/title.xml 
new/digraphs-1.12.1/doc/title.xml
--- old/digraphs-1.12.0/doc/title.xml   2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/doc/title.xml   2025-09-10 18:04:21.000000000 +0200
@@ -9,7 +9,7 @@
     Graphs, digraphs, and multidigraphs in &GAP;
   </Subtitle>
   <Version>
-    1.12.0
+    1.12.1
   </Version>
   <Author>
     Jan De Beule<Alt Only="LaTeX"><Br/></Alt>
@@ -310,7 +310,7 @@
 
   </Author>
   <Date>
-    2 September 2025
+    10 September 2025
   </Date>
   <Abstract>
     The &Digraphs; package is a &GAP; package containing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/gap/examples.gi 
new/digraphs-1.12.1/gap/examples.gi
--- old/digraphs-1.12.0/gap/examples.gi 2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/gap/examples.gi 2025-09-10 18:04:21.000000000 +0200
@@ -1103,8 +1103,7 @@
     ErrorNoReturn("arguments must be an integer <n> greater ",
                   "than 1 and a list of integers between 1 and n,");
   fi;
-  D := Digraph(IsMutableDigraph, []);
-  DigraphAddVertices(D, n);
+  D := EmptyDigraph(IsMutableDigraph, n);
   for i in [1 .. n] do
     for j in par do
       if (i - j) mod n = 0 then
@@ -1130,11 +1129,14 @@
   D := MakeImmutable(CirculantGraphCons(IsMutableDigraph, n, par));
   SetIsMultiDigraph(D, false);
   SetIsSymmetricDigraph(D, true);
-  SetIsUndirectedTree(D, false);
-  SetIsRegularDigraph(D, true);
   SetIsVertexTransitive(D, true);
-  SetIsHamiltonianDigraph(D, true);
-  SetIsBiconnectedDigraph(D, true);
+  SetIsUndirectedTree(D, false);
+  SetIsUndirectedForest(D, IsEmpty(par) or
+                           (IsEvenInt(n) and Unique(par) = [n / 2]));
+  if Gcd(Concatenation([n], par)) = 1 then
+    SetIsHamiltonianDigraph(D, true);
+    SetIsBiconnectedDigraph(D, true);
+  fi;
   return D;
 end);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/gap/prop.gi 
new/digraphs-1.12.1/gap/prop.gi
--- old/digraphs-1.12.0/gap/prop.gi     2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/gap/prop.gi     2025-09-10 18:04:21.000000000 +0200
@@ -214,7 +214,7 @@
 
 InstallImmediateMethod(IsConnectedDigraph,
 IsDigraph and HasDigraphConnectedComponents, 0,
-D -> Length(DigraphConnectedComponents(D).comps) = 1);
+D -> Length(DigraphConnectedComponents(D).comps) <= 1);
 
 InstallMethod(IsConnectedDigraph, "for a digraph", [IsDigraph],
 function(D)
@@ -231,7 +231,7 @@
 InstallImmediateMethod(IsConnectedDigraph,
 "for a digraph with known number of connected components",
 IsDigraph and HasDigraphNrConnectedComponents, 0,
-D -> DigraphNrConnectedComponents(D) < 2);
+D -> DigraphNrConnectedComponents(D) <= 1);
 
 InstallImmediateMethod(IsAcyclicDigraph, "for a reflexive digraph",
 IsReflexiveDigraph, 0,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/gap/utils.gi 
new/digraphs-1.12.1/gap/utils.gi
--- old/digraphs-1.12.0/gap/utils.gi    2025-09-02 02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/gap/utils.gi    2025-09-10 18:04:21.000000000 +0200
@@ -240,7 +240,7 @@
 InstallGlobalFunction(DigraphsTestManualExamples,
 function(arg...)
   local exlists, indices, omit, oldscr, passed, pad, total, l, sp, bad, s,
-  start_time, test, end_time, elapsed, pex, str, j, ex, i;
+  start_time, test, end_time, elapsed, pex, str, j, ex, i, first;
 
   exlists := DIGRAPHS_ManualExamples();
   if Length(arg) > 0 then
@@ -256,11 +256,21 @@
   else
     omit := DIGRAPHS_OmitFromTests;
     if Length(omit) > 0 then
-      Print("# not testing examples containing the strings:");
+      if Length(omit) = 1 then
+        Print("# not testing examples containing the string ");
+      else
+        Print("# not testing examples containing the strings: ");
+      fi;
+      first := true;
       for str in omit do
         exlists := Filtered(exlists,
                             x -> PositionSublist(x[1][1], str) = fail);
-        Print(", \"", str, "\"");
+        if first then
+          first := false;
+        else
+          Print(", ");
+        fi;
+        Print("\"", str, "\"");
       od;
       Print(" . . .\n");
     fi;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/tst/standard/examples.tst 
new/digraphs-1.12.1/tst/standard/examples.tst
--- old/digraphs-1.12.0/tst/standard/examples.tst       2025-09-02 
02:48:56.000000000 +0200
+++ new/digraphs-1.12.1/tst/standard/examples.tst       2025-09-10 
18:04:21.000000000 +0200
@@ -546,6 +546,18 @@
  vertices, 30 edges>
 gap> IsIsomorphicDigraph(D, MobiusLadderGraph(5));
 true
+gap> Set(Filtered(Combinations([1 .. 6]),
+> x -> IsUndirectedForest(DigraphCopy(CirculantGraph(6, x)))));
+[ [  ], [ 3 ] ]
+gap> Set(Filtered(Combinations([1 .. 6]),
+> x -> IsUndirectedForest(CirculantGraph(6, x))));
+[ [  ], [ 3 ] ]
+gap> D := CirculantGraph(6, [3]);
+<immutable undirected forest with 6 vertices>
+gap> IsUndirectedForest(D);
+true
+gap> IsUndirectedForest(DigraphCopy(D));
+true
 
 # CycleGraph
 gap> IsIsomorphicDigraph(CycleGraph(5), 
DigraphSymmetricClosure(CycleDigraph(5)));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/tst/testinstall.tst 
new/digraphs-1.12.1/tst/testinstall.tst
--- old/digraphs-1.12.0/tst/testinstall.tst     2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/tst/testinstall.tst     2025-09-10 18:04:21.000000000 
+0200
@@ -472,6 +472,39 @@
 gap> Length(SubdigraphsMonomorphisms(CompleteMultipartiteDigraph([2, 3]), d));
 4
 
+# Issue #764 Disconnected CirculantGraphs are not Hamiltonian, etc
+gap> D := CirculantGraph(12, [2, 4]);
+<immutable vertex-transitive symmetric digraph with 12 vertices, 48 edges>
+gap> IsHamiltonianDigraph(D) or IsBiconnectedDigraph(D);
+false
+gap> D := DigraphCopy(D);;
+gap> IsHamiltonianDigraph(D) or IsBiconnectedDigraph(D);
+false
+gap> IsVertexTransitive(D);
+true
+gap> D := CirculantGraph(4, [2]);
+<immutable undirected forest with 4 vertices>
+gap> IsHamiltonianDigraph(D) or IsBiconnectedDigraph(D);
+false
+gap> D := CirculantGraph(6, [2]);
+<immutable vertex-transitive symmetric digraph with 6 vertices, 12 edges>
+gap> IsHamiltonianDigraph(D) or IsBiconnectedDigraph(D);
+false
+gap> D := DigraphCopy(CirculantGraph(9, [3]));
+<immutable digraph with 9 vertices, 18 edges>
+gap> IsHamiltonianDigraph(D) or IsBiconnectedDigraph(D);
+false
+
+# Issue #818 IsConnectedDigraph for a digraph without vertices
+gap> D := Digraph([]);;
+gap> IsConnectedDigraph(D);
+true
+gap> D := Digraph([]);;
+gap> DigraphConnectedComponents(D);
+rec( comps := [  ], id := [  ] )
+gap> IsConnectedDigraph(D);
+true
+
 #  DIGRAPHS_UnbindVariables
 gap> Unbind(C);
 gap> Unbind(D);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/digraphs-1.12.0/tst/teststandard.g 
new/digraphs-1.12.1/tst/teststandard.g
--- old/digraphs-1.12.0/tst/teststandard.g      2025-09-02 02:48:56.000000000 
+0200
+++ new/digraphs-1.12.1/tst/teststandard.g      2025-09-10 18:04:21.000000000 
+0200
@@ -8,16 +8,11 @@
 #############################################################################
 ##
 LoadPackage("digraphs", false);;
-# The "{No} errors detected" lines currently have to be printed in this way
-# to satisfy the automated GAP testing system that runs on Jenkins.
-# This requirement will hopefully go soon.
 if SizeBlist([DigraphsTestInstall(),
               DigraphsTestStandard(rec(earlyStop := false)),
               DIGRAPHS_RunTest(DigraphsTestManualExamples)]) = 3 then
-  Print("#I  No errors detected while testing\n\n");
   QUIT_GAP(0);
 else
-  Print("#I  Errors detected while testing\n\n");
   QUIT_GAP(1);
 fi;
 FORCE_QUIT_GAP(1); # if we ever get here, there was an error

Reply via email to