diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 05c57459a..72efdd0cc 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.16.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.14" @@ -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 3d2b8a09b..ed83ba815 100644 --- a/.github/workflows/osxbinary.yml +++ b/.github/workflows/osxbinary.yml @@ -12,7 +12,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 diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 8e53f722a..5e23dff61 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -13,7 +13,7 @@ jobs: python-version: ['3.10', '3.14'] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -42,7 +42,7 @@ jobs: python-version: ['3.14'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -67,7 +67,7 @@ jobs: python-version: ['3.14'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -92,7 +92,7 @@ jobs: python-version: ['3.14'] 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 92e67ce2b..67c1bc04d 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-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 @@ -55,7 +55,7 @@ jobs: 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 + - 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 b5a4fa517..867b4f21a 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -13,7 +13,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: diff --git a/ChangeLog b/ChangeLog index d087d961d..5b014fd15 100644 --- a/ChangeLog +++ b/ChangeLog @@ -30,7 +30,7 @@ (and as a result from the `enumpure`, `lp`, and `lcp` command-line tools); this will be replaced with new and more customisable approaches. (#639) -## [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 @@ -45,7 +45,7 @@ mixed behavior profiles (#616) -## [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/doc/tools.gnm.rst b/doc/tools.gnm.rst index d992074f2..9c167f2fa 100644 --- a/doc/tools.gnm.rst +++ b/doc/tools.gnm.rst @@ -86,7 +86,6 @@ the reduced strategic form of the example in Figure 2 of Selten (International Journal of Game Theory, 1975) $ 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 |release|, Copyright (C) 1994-2025, The Gambit Project diff --git a/doc/tools.ipa.rst b/doc/tools.ipa.rst index 6bc1b8227..bbd2bcfbb 100644 --- a/doc/tools.ipa.rst +++ b/doc/tools.ipa.rst @@ -53,7 +53,6 @@ the reduced strategic form of the example in Figure 2 of Selten (International Journal of Game Theory, 1975) $ 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 |release|, Copyright (C) 1994-2025, The Gambit Project diff --git a/doc/tools.lcp.rst b/doc/tools.lcp.rst index 4de443aa7..439c98f6c 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]_. diff --git a/src/pygambit/game.pxi b/src/pygambit/game.pxi index 1ed7fff42..0b1735c0f 100644 --- a/src/pygambit/game.pxi +++ b/src/pygambit/game.pxi @@ -1497,7 +1497,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,