From 42e6e9c4579fea6dda401f853820558cbd4f9449 Mon Sep 17 00:00:00 2001 From: rahulsavani Date: Tue, 4 Nov 2025 12:55:24 +0000 Subject: [PATCH 1/9] bug fix in _resolve_infoset --- src/pygambit/game.pxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pygambit/game.pxi b/src/pygambit/game.pxi index 5806cf6bf..90a044ffe 100644 --- a/src/pygambit/game.pxi +++ b/src/pygambit/game.pxi @@ -1533,7 +1533,7 @@ class Game: except KeyError: raise KeyError(f"{funcname}(): no information set with label '{infoset}'") raise TypeError( - f"{funcname}(): {argname} must be Infoset or str, not {node.__class__.__name__}" + f"{funcname}(): {argname} must be Infoset or str, not {infoset.__class__.__name__}" ) def _resolve_action(self, From 455d603b6a95cb6dbbd39dabc0b4eea06a10b5b0 Mon Sep 17 00:00:00 2001 From: Rahul Savani Date: Wed, 5 Nov 2025 09:47:45 +0000 Subject: [PATCH 2/9] typo in tools.lcp.rst (#581) --- doc/tools.lcp.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/tools.lcp.rst b/doc/tools.lcp.rst index 14795d9bf..c17e636d8 100644 --- a/doc/tools.lcp.rst +++ b/doc/tools.lcp.rst @@ -9,7 +9,7 @@ computes Nash equilibria by finding solutions to a linear complementarity problem. For extensive games, the program uses the sequence form representation of the extensive game, as defined by Koller, Megiddo, and von Stengel [KolMegSte94]_, and applies the -algorithm developed by Lemke. For strategic games, the program using +algorithm developed by Lemke. For strategic games, the program uses the method of Lemke and Howson [LemHow64]_. There exist strategic games for which some equilibria cannot be located by this method; see Shapley [Sha74]_. From 32367e411766ee8ab233b97993fac325a1c08004 Mon Sep 17 00:00:00 2001 From: Ted Turocy Date: Mon, 24 Nov 2025 10:26:56 +0000 Subject: [PATCH 3/9] Bump actions/checkout to v6 (#640) --- .github/workflows/lint.yml | 10 +++++----- .github/workflows/osxbinary.yml | 2 +- .github/workflows/python.yml | 8 ++++---- .github/workflows/tools.yml | 8 ++++---- .github/workflows/wheels.yml | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b4a86f896..5b42ef36d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -9,7 +9,7 @@ jobs: name: clang-format runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Run clang-format style check for C/C++ uses: jidicula/clang-format-action@v4.14.0 with: @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install dependencies run: | sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc @@ -37,14 +37,14 @@ jobs: runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: chartboost/ruff-action@v1 flake8: runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions/setup-python@v6 with: python-version: "3.12" @@ -54,7 +54,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Setup Python uses: actions/setup-python@v6 with: diff --git a/.github/workflows/osxbinary.yml b/.github/workflows/osxbinary.yml index 80ac080df..dd7cd3392 100644 --- a/.github/workflows/osxbinary.yml +++ b/.github/workflows/osxbinary.yml @@ -12,7 +12,7 @@ jobs: runs-on: macos-13 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install dependencies run: | brew install automake autoconf diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index cdd472130..2dcea90b6 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -13,7 +13,7 @@ jobs: python-version: ['3.9', '3.12'] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -40,7 +40,7 @@ jobs: python-version: ['3.12'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -63,7 +63,7 @@ jobs: python-version: ['3.12'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -86,7 +86,7 @@ jobs: python-version: ['3.12'] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index 96601f36d..dbb4bce18 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install dependencies run: | sudo apt-key adv --fetch-keys http://repos.codelite.org/CodeLite.asc @@ -36,7 +36,7 @@ jobs: runs-on: macos-13 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install dependencies run: brew install automake autoconf wxwidgets - run: aclocal @@ -55,7 +55,7 @@ jobs: runs-on: macos-14 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install dependencies run: brew install automake autoconf wxwidgets - run: aclocal @@ -77,7 +77,7 @@ jobs: run: shell: msys2 {0} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: msys2/setup-msys2@v2 with: install: mingw-w64-x86_64-toolchain make automake autoconf diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index aaf8cdcf0..0485a15b9 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -12,7 +12,7 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python uses: actions/setup-python@v6 with: From 4bc65d57fcc8dba61180b1758a4c18556792ec5c Mon Sep 17 00:00:00 2001 From: Ted Turocy Date: Thu, 4 Dec 2025 09:47:35 +0000 Subject: [PATCH 4/9] Disable View->Strategic game if game is in strategic form (#662) On a strategic game the View->Strategic game menu option was (a) available and (b) unchecked. Selecting it would result in program termination. This corrects the situation: It is now (a) disabled but (b) checked. --- src/gui/gameframe.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/gameframe.cc b/src/gui/gameframe.cc index c528405ec..b247052bb 100644 --- a/src/gui/gameframe.cc +++ b/src/gui/gameframe.cc @@ -489,6 +489,10 @@ void gbtGameFrame::MakeMenus() viewMenu->Append(GBT_MENU_VIEW_STRATEGIC, _("&Strategic game"), wxT("Display the reduced strategic representation ") wxT("of the game"), true); + if (!m_doc->GetGame()->IsTree()) { + viewMenu->Check(GBT_MENU_VIEW_STRATEGIC, true); + viewMenu->Enable(GBT_MENU_VIEW_STRATEGIC, false); + } auto *formatMenu = new wxMenu; AppendBitmapItem(formatMenu, GBT_MENU_FORMAT_LAYOUT, _("&Layout"), From 0ac821a51781067c3d2cec06bdda49a860728312 Mon Sep 17 00:00:00 2001 From: Ted Turocy Date: Thu, 4 Dec 2025 12:05:11 +0000 Subject: [PATCH 5/9] Bump version number to 16.3.2. (#667) --- ChangeLog | 2 +- contrib/mac/Info.plist | 8 ++++---- doc/conf.py | 2 +- doc/index.rst | 2 +- doc/tools.convert.rst | 4 ++-- doc/tools.enummixed.rst | 4 ++-- doc/tools.enumpoly.rst | 2 +- doc/tools.enumpure.rst | 6 +++--- doc/tools.gnm.rst | 2 +- doc/tools.ipa.rst | 2 +- doc/tools.lcp.rst | 2 +- doc/tools.liap.rst | 2 +- doc/tools.logit.rst | 2 +- doc/tools.lp.rst | 2 +- doc/tools.simpdiv.rst | 2 +- setup.py | 2 +- src/pygambit/__init__.py | 2 +- 17 files changed, 24 insertions(+), 24 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1c860d664..ebd78d68d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ # Changelog -## [16.3.2] - unreleased +## [16.3.2] - 2025-12-04 ### Fixed - Parsing of output of `gambit-logit` in the graphical interface did not handle the diff --git a/contrib/mac/Info.plist b/contrib/mac/Info.plist index e6720c969..35754f84e 100644 --- a/contrib/mac/Info.plist +++ b/contrib/mac/Info.plist @@ -19,13 +19,13 @@ CFBundleSignature ???? CFBundleVersion - 16.3.1 + 16.3.2 CFBundleShortVersionString - 16.3.1 + 16.3.2 CFBundleGetInfoString - Gambit version 16.3.1, (c) 1994-2025 The Gambit Project + Gambit version 16.3.2, (c) 1994-2025 The Gambit Project CFBundleLongVersionString - 16.3.1, (c) 1994-2025 The Gambit Project + 16.3.2, (c) 1994-2025 The Gambit Project NSHumanReadableCopyright Copyright 1994-2025 The Gambit Project LSRequiresCarbon diff --git a/doc/conf.py b/doc/conf.py index 532628e7b..9ba105cfe 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -51,7 +51,7 @@ # The short X.Y version. version = "16.3" # The full version, including alpha/beta/rc tags. -release = "16.3.1" +release = "16.3.2" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/index.rst b/doc/index.rst index 5788ba252..b5cf3f2cd 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -33,7 +33,7 @@ made. If you are citing Gambit in a paper, we suggest a citation of the form: Savani, Rahul and Turocy, Theodore L. (2025) - Gambit: The package for computation in game theory, Version 16.3.1. + Gambit: The package for computation in game theory, Version 16.3.2. https://www.gambit-project.org. Replace the version number and year as appropriate if you use a diff --git a/doc/tools.convert.rst b/doc/tools.convert.rst index 143ff6625..ea7ad58ee 100644 --- a/doc/tools.convert.rst +++ b/doc/tools.convert.rst @@ -40,7 +40,7 @@ Example invocation for HTML output:: $ gambit-convert -O html 2x2.nfg Convert games among various file formats - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL

Two person 2 x 2 game with unique mixed equilibrium

@@ -55,7 +55,7 @@ Example invocation for LaTeX output:: $ gambit-convert -O sgame 2x2.nfg Convert games among various file formats - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL \begin{game}{2}{2}[Player 1][Player 2] diff --git a/doc/tools.enummixed.rst b/doc/tools.enummixed.rst index 4ebc304b0..71b6b27d1 100644 --- a/doc/tools.enummixed.rst +++ b/doc/tools.enummixed.rst @@ -70,7 +70,7 @@ in Figure 2 of Selten (International Journal of Game Theory, $ gambit-enummixed e02.nfg Compute Nash equilibria by enumerating extreme points - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 @@ -82,7 +82,7 @@ information using the `-c` switch:: $ gambit-enummixed -c e02.nfg Compute Nash equilibria by enumerating extreme points - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 diff --git a/doc/tools.enumpoly.rst b/doc/tools.enumpoly.rst index 60a3bebde..29c5e40b6 100644 --- a/doc/tools.enumpoly.rst +++ b/doc/tools.enumpoly.rst @@ -98,7 +98,7 @@ Computing equilibria of the strategic game :download:`e01.nfg $ gambit-enumpoly e01.nfg Compute Nash equilibria by solving polynomial systems - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1.000000,0.000000,1.000000,0.000000,0.000000,1.000000 diff --git a/doc/tools.enumpure.rst b/doc/tools.enumpure.rst index 3800e799c..55a66677c 100644 --- a/doc/tools.enumpure.rst +++ b/doc/tools.enumpure.rst @@ -66,7 +66,7 @@ Computing the pure-strategy equilibria of extensive game :download:`e02.efg $ gambit-enumpure e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,0,1,0 @@ -77,7 +77,7 @@ strategies:: $ gambit-enumpure -S e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 @@ -88,7 +88,7 @@ only one information set; therefore the set of solutions is larger:: $ gambit-enumpure -A e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,1,0,1,0 diff --git a/doc/tools.gnm.rst b/doc/tools.gnm.rst index f9d568e18..9578e5685 100644 --- a/doc/tools.gnm.rst +++ b/doc/tools.gnm.rst @@ -88,7 +88,7 @@ the reduced strategic form of the example in Figure 2 of Selten $ gambit-gnm e02.nfg Compute Nash equilibria using a global Newton method Gametracer version 0.2, Copyright (C) 2002, Ben Blum and Christian Shelton - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,2.99905e-12,0.5,0.5 diff --git a/doc/tools.ipa.rst b/doc/tools.ipa.rst index 02ae7e42e..dac2367c6 100644 --- a/doc/tools.ipa.rst +++ b/doc/tools.ipa.rst @@ -55,7 +55,7 @@ the reduced strategic form of the example in Figure 2 of Selten $ gambit-ipa e02.nfg Compute Nash equilibria using iterated polymatrix approximation Gametracer version 0.2, Copyright (C) 2002, Ben Blum and Christian Shelton - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1.000000,0.000000,0.000000,1.000000,0.000000 diff --git a/doc/tools.lcp.rst b/doc/tools.lcp.rst index c17e636d8..4ccb6dad9 100644 --- a/doc/tools.lcp.rst +++ b/doc/tools.lcp.rst @@ -79,7 +79,7 @@ Computing an equilibrium of extensive game :download:`e02.efg $ gambit-lcp e02.efg Compute Nash equilibria by solving a linear complementarity program - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,1/2,1/2,1/2,1/2 diff --git a/doc/tools.liap.rst b/doc/tools.liap.rst index ee486239e..09e85e01e 100644 --- a/doc/tools.liap.rst +++ b/doc/tools.liap.rst @@ -85,7 +85,7 @@ Computing an equilibrium in mixed strategies of :download:`e02.efg $ gambit-liap e02.nfg Compute Nash equilibria by minimizing the Lyapunov function - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,0.998701,0.000229,0.001070,0.618833,0.381167 diff --git a/doc/tools.logit.rst b/doc/tools.logit.rst index 32cbf444d..be421e8f9 100644 --- a/doc/tools.logit.rst +++ b/doc/tools.logit.rst @@ -108,7 +108,7 @@ in Figure 2 of Selten (International Journal of Game Theory, $ gambit-logit e02.nfg Compute a branch of the logit equilibrium correspondence - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL 0.000000,0.333333,0.333333,0.333333,0.5,0.5 diff --git a/doc/tools.lp.rst b/doc/tools.lp.rst index 89d490da6..2d28abd40 100644 --- a/doc/tools.lp.rst +++ b/doc/tools.lp.rst @@ -65,7 +65,7 @@ strategies each, with a unique equilibrium in mixed strategies:: $ gambit-lp 2x2const.nfg Compute Nash equilibria by solving a linear program - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1/3,2/3,1/3,2/3 diff --git a/doc/tools.simpdiv.rst b/doc/tools.simpdiv.rst index a9f10b4cf..6c65e8017 100644 --- a/doc/tools.simpdiv.rst +++ b/doc/tools.simpdiv.rst @@ -92,7 +92,7 @@ Computing an equilibrium in mixed strategies of :download:`e02.efg $ gambit-simpdiv e02.nfg Compute Nash equilibria using simplicial subdivision - Gambit version 16.3.1, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.3.2, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 diff --git a/setup.py b/setup.py index 727cf7efd..f8bfb26b2 100644 --- a/setup.py +++ b/setup.py @@ -107,7 +107,7 @@ def readme(): setuptools.setup( name="pygambit", - version="16.3.1", + version="16.3.2", description="The package for computation in game theory", long_description=readme(), classifiers=[ diff --git a/src/pygambit/__init__.py b/src/pygambit/__init__.py index 76bb2201c..5b814e1a5 100644 --- a/src/pygambit/__init__.py +++ b/src/pygambit/__init__.py @@ -28,4 +28,4 @@ supports, # noqa: F401 ) -__version__ = "16.3.1" +__version__ = "16.3.2" From dac782eec74f0839069d9e63a4e23b97b858d720 Mon Sep 17 00:00:00 2001 From: Ted Turocy Date: Mon, 8 Dec 2025 20:53:15 +0000 Subject: [PATCH 6/9] Update MacOS version for GitHub runners. (#684) Closes #646. --- .github/workflows/osxbinary.yml | 4 ++-- .github/workflows/python.yml | 4 ++-- .github/workflows/tools.yml | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/osxbinary.yml b/.github/workflows/osxbinary.yml index 025da0132..36e1955bb 100644 --- a/.github/workflows/osxbinary.yml +++ b/.github/workflows/osxbinary.yml @@ -13,7 +13,7 @@ on: jobs: macos-13: - runs-on: macos-13 + runs-on: macos-14 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - uses: actions/checkout@v5 @@ -37,5 +37,5 @@ jobs: - run: make osx-dmg - uses: actions/upload-artifact@v5 with: - name: artifact-osx-13 + name: artifact-osx-14 path: "*.dmg" diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 44af9bb9b..6c8605226 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -41,7 +41,7 @@ jobs: run: pytest macos-13: - runs-on: macos-13 + runs-on: macos-14 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name strategy: matrix: @@ -64,7 +64,7 @@ jobs: run: pytest macos-14: - runs-on: macos-14 + runs-on: macos-15 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name strategy: matrix: diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml index 4cd26bc61..e4c052336 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -41,7 +41,7 @@ jobs: sudo make install macos: - runs-on: macos-13 + runs-on: macos-14 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - uses: actions/checkout@v5 @@ -56,11 +56,11 @@ jobs: - run: make osx-dmg - uses: actions/upload-artifact@v5 with: - name: artifact-osx-13 + name: artifact-osx-14 path: "*.dmg" macos-14: - runs-on: macos-14 + runs-on: macos-15 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - uses: actions/checkout@v5 @@ -75,7 +75,7 @@ jobs: - run: make osx-dmg - uses: actions/upload-artifact@v5 with: - name: artifact-osx-14 + name: artifact-osx-15 path: "*.dmg" windows: From 71fe205f491770a7e01707fbdff3fbd84616c368 Mon Sep 17 00:00:00 2001 From: Theodore Turocy Date: Fri, 12 Dec 2025 12:21:53 +0000 Subject: [PATCH 7/9] Backport new runner for building OSX binary (required for release) --- .github/workflows/osxbinary.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/osxbinary.yml b/.github/workflows/osxbinary.yml index dd7cd3392..80a36bd0e 100644 --- a/.github/workflows/osxbinary.yml +++ b/.github/workflows/osxbinary.yml @@ -9,7 +9,7 @@ on: jobs: macos-13: - runs-on: macos-13 + runs-on: macos-14 if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name steps: - uses: actions/checkout@v6 @@ -33,5 +33,5 @@ jobs: - run: make osx-dmg - uses: actions/upload-artifact@v5 with: - name: artifact-osx-13 + name: artifact-osx-14 path: "*.dmg" From 2f83beec0f6eb00abcc1a5d22424dd8ba88cf4ca Mon Sep 17 00:00:00 2001 From: Theodore Turocy Date: Fri, 12 Dec 2025 12:50:43 +0000 Subject: [PATCH 8/9] Fix missed version bump --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index a034be75a..6e7d4ac86 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl -AC_INIT([gambit],[16.3.1]) +AC_INIT([gambit],[16.3.2]) AC_CONFIG_SRCDIR([src/gambit.h]) AM_INIT_AUTOMAKE([subdir-objects foreign]) dnl AC_CONFIG_MACRO_DIR([m4]) From c728e89b728a9f28d09b5f450ed3516a331a8cec Mon Sep 17 00:00:00 2001 From: Theodore Turocy Date: Wed, 17 Dec 2025 14:47:30 +0000 Subject: [PATCH 9/9] Bump version number to 16.4.1 --- ChangeLog | 2 +- configure.ac | 2 +- contrib/mac/Info.plist | 8 ++++---- doc/conf.py | 2 +- doc/tools.convert.rst | 4 ++-- doc/tools.enummixed.rst | 4 ++-- doc/tools.enumpoly.rst | 2 +- doc/tools.enumpure.rst | 6 +++--- doc/tools.gnm.rst | 2 +- doc/tools.ipa.rst | 2 +- doc/tools.lcp.rst | 2 +- doc/tools.liap.rst | 2 +- doc/tools.logit.rst | 2 +- doc/tools.lp.rst | 2 +- doc/tools.simpdiv.rst | 2 +- gambit.wxs | 2 +- pyproject.toml | 2 +- src/pygambit/__init__.py | 2 +- 18 files changed, 25 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 75d0e987c..118118491 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ # Changelog -## [16.4.1] - unreleased +## [16.4.1] - 2025-12-17 ### Fixed - Fixed a regression in which null outcomes in strategic game tables were not handled correctly diff --git a/configure.ac b/configure.ac index e0170be0b..1266f5e8a 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. dnl -AC_INIT([gambit],[16.4.0]) +AC_INIT([gambit],[16.4.1]) AC_CONFIG_SRCDIR([src/gambit.h]) AM_INIT_AUTOMAKE([subdir-objects foreign]) dnl AC_CONFIG_MACRO_DIR([m4]) diff --git a/contrib/mac/Info.plist b/contrib/mac/Info.plist index a17bd7905..15deeb647 100644 --- a/contrib/mac/Info.plist +++ b/contrib/mac/Info.plist @@ -19,13 +19,13 @@ CFBundleSignature ???? CFBundleVersion - 16.4.0 + 16.4.1 CFBundleShortVersionString - 16.4.0 + 16.4.1 CFBundleGetInfoString - Gambit version 16.4.0, (c) 1994-2025 The Gambit Project + Gambit version 16.4.1, (c) 1994-2025 The Gambit Project CFBundleLongVersionString - 16.4.0, (c) 1994-2025 The Gambit Project + 16.4.1, (c) 1994-2025 The Gambit Project NSHumanReadableCopyright Copyright 1994-2025 The Gambit Project LSRequiresCarbon diff --git a/doc/conf.py b/doc/conf.py index 57de0b53a..35d034efa 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -55,7 +55,7 @@ # The short X.Y version. version = "16.4" # The full version, including alpha/beta/rc tags. -release = "16.4.0" +release = "16.4.1" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/doc/tools.convert.rst b/doc/tools.convert.rst index 7db467c7c..3c4f8d416 100644 --- a/doc/tools.convert.rst +++ b/doc/tools.convert.rst @@ -40,7 +40,7 @@ Example invocation for HTML output:: $ gambit-convert -O html 2x2.nfg Convert games among various file formats - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL

Two person 2 x 2 game with unique mixed equilibrium

@@ -55,7 +55,7 @@ Example invocation for LaTeX output:: $ gambit-convert -O sgame 2x2.nfg Convert games among various file formats - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL \begin{game}{2}{2}[Player 1][Player 2] diff --git a/doc/tools.enummixed.rst b/doc/tools.enummixed.rst index 8a2432672..0ad3abd0e 100644 --- a/doc/tools.enummixed.rst +++ b/doc/tools.enummixed.rst @@ -70,7 +70,7 @@ in Figure 2 of Selten (International Journal of Game Theory, $ gambit-enummixed e02.nfg Compute Nash equilibria by enumerating extreme points - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 @@ -82,7 +82,7 @@ information using the `-c` switch:: $ gambit-enummixed -c e02.nfg Compute Nash equilibria by enumerating extreme points - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 diff --git a/doc/tools.enumpoly.rst b/doc/tools.enumpoly.rst index f3c46bd9a..2e211c885 100644 --- a/doc/tools.enumpoly.rst +++ b/doc/tools.enumpoly.rst @@ -98,7 +98,7 @@ Computing equilibria of the strategic game :download:`e01.nfg $ gambit-enumpoly e01.nfg Compute Nash equilibria by solving polynomial systems - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1.000000,0.000000,1.000000,0.000000,0.000000,1.000000 diff --git a/doc/tools.enumpure.rst b/doc/tools.enumpure.rst index 407461fd0..a179a267e 100644 --- a/doc/tools.enumpure.rst +++ b/doc/tools.enumpure.rst @@ -66,7 +66,7 @@ Computing the pure-strategy equilibria of extensive game :download:`e02.efg $ gambit-enumpure e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,0,1,0 @@ -77,7 +77,7 @@ strategies:: $ gambit-enumpure -S e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 @@ -88,7 +88,7 @@ only one information set; therefore the set of solutions is larger:: $ gambit-enumpure -A e02.efg Search for Nash equilibria in pure strategies - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,1,0,1,0 diff --git a/doc/tools.gnm.rst b/doc/tools.gnm.rst index 88ca23eb4..2051b07b0 100644 --- a/doc/tools.gnm.rst +++ b/doc/tools.gnm.rst @@ -88,7 +88,7 @@ the reduced strategic form of the example in Figure 2 of Selten $ gambit-gnm e02.nfg Compute Nash equilibria using a global Newton method Gametracer version 0.2, Copyright (C) 2002, Ben Blum and Christian Shelton - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,2.99905e-12,0.5,0.5 diff --git a/doc/tools.ipa.rst b/doc/tools.ipa.rst index 219faa95b..e4054fbc3 100644 --- a/doc/tools.ipa.rst +++ b/doc/tools.ipa.rst @@ -55,7 +55,7 @@ the reduced strategic form of the example in Figure 2 of Selten $ gambit-ipa e02.nfg Compute Nash equilibria using iterated polymatrix approximation Gametracer version 0.2, Copyright (C) 2002, Ben Blum and Christian Shelton - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1.000000,0.000000,0.000000,1.000000,0.000000 diff --git a/doc/tools.lcp.rst b/doc/tools.lcp.rst index 377e794d0..b106a101e 100644 --- a/doc/tools.lcp.rst +++ b/doc/tools.lcp.rst @@ -79,7 +79,7 @@ Computing an equilibrium of extensive game :download:`e02.efg $ gambit-lcp e02.efg Compute Nash equilibria by solving a linear complementarity program - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,1/2,1/2,1/2,1/2 diff --git a/doc/tools.liap.rst b/doc/tools.liap.rst index 561059d45..d341d4dac 100644 --- a/doc/tools.liap.rst +++ b/doc/tools.liap.rst @@ -85,7 +85,7 @@ Computing an equilibrium in mixed strategies of :download:`e02.efg $ gambit-liap e02.nfg Compute Nash equilibria by minimizing the Lyapunov function - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,0.998701,0.000229,0.001070,0.618833,0.381167 diff --git a/doc/tools.logit.rst b/doc/tools.logit.rst index 59eaf7e52..172633e07 100644 --- a/doc/tools.logit.rst +++ b/doc/tools.logit.rst @@ -108,7 +108,7 @@ in Figure 2 of Selten (International Journal of Game Theory, $ gambit-logit e02.nfg Compute a branch of the logit equilibrium correspondence - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL 0.000000,0.333333,0.333333,0.333333,0.5,0.5 diff --git a/doc/tools.lp.rst b/doc/tools.lp.rst index f032fee9e..75edf2ebb 100644 --- a/doc/tools.lp.rst +++ b/doc/tools.lp.rst @@ -65,7 +65,7 @@ strategies each, with a unique equilibrium in mixed strategies:: $ gambit-lp 2x2const.nfg Compute Nash equilibria by solving a linear program - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1/3,2/3,1/3,2/3 diff --git a/doc/tools.simpdiv.rst b/doc/tools.simpdiv.rst index 324025dd6..5ebfe3087 100644 --- a/doc/tools.simpdiv.rst +++ b/doc/tools.simpdiv.rst @@ -92,7 +92,7 @@ Computing an equilibrium in mixed strategies of :download:`e02.efg $ gambit-simpdiv e02.nfg Compute Nash equilibria using simplicial subdivision - Gambit version 16.4.0, Copyright (C) 1994-2025, The Gambit Project + Gambit version 16.4.1, Copyright (C) 1994-2025, The Gambit Project This is free software, distributed under the GNU GPL NE,1,0,0,1,0 diff --git a/gambit.wxs b/gambit.wxs index 7563a8404..1c83e6b5f 100644 --- a/gambit.wxs +++ b/gambit.wxs @@ -1,6 +1,6 @@ - + diff --git a/pyproject.toml b/pyproject.toml index 1206c9a1b..0172c6986 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pygambit" -version = "16.4.0" +version = "16.4.1" description = "The package for computation in game theory" readme = "src/README.rst" requires-python = ">=3.9" diff --git a/src/pygambit/__init__.py b/src/pygambit/__init__.py index 7c7607874..3ad1cc43b 100644 --- a/src/pygambit/__init__.py +++ b/src/pygambit/__init__.py @@ -28,4 +28,4 @@ supports, # noqa: F401 ) -__version__ = "16.4.0" +__version__ = "16.4.1"