diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c0a8cbbc9..872c5ebaa 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -17,7 +17,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.15.0 with: @@ -29,7 +29,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 @@ -45,14 +45,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" @@ -62,7 +62,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 36e1955bb..54a2af93f 100644 --- a/.github/workflows/osxbinary.yml +++ b/.github/workflows/osxbinary.yml @@ -16,7 +16,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 6c8605226..803659d4b 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -21,7 +21,7 @@ jobs: python-version: ['3.9', '3.13'] steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -48,7 +48,7 @@ jobs: python-version: ['3.13'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -71,7 +71,7 @@ jobs: python-version: ['3.13'] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v6 with: @@ -94,7 +94,7 @@ jobs: python-version: ['3.13'] 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 e4c052336..373cd44bf 100644 --- a/.github/workflows/tools.yml +++ b/.github/workflows/tools.yml @@ -17,7 +17,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 @@ -44,7 +44,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 @@ -63,7 +63,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 @@ -85,7 +85,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 7a128e639..bff183887 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -17,7 +17,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 da05cf682..75d0e987c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15,7 +15,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.lcp.rst b/doc/tools.lcp.rst index 486ce6c20..377e794d0 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/gui/gameframe.cc b/src/gui/gameframe.cc index b99aa496e..b468566fb 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"), diff --git a/src/pygambit/game.pxi b/src/pygambit/game.pxi index 082b08b62..b426ff58f 100644 --- a/src/pygambit/game.pxi +++ b/src/pygambit/game.pxi @@ -1488,7 +1488,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,