diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 07b4a9f3d..7d4d52eca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: python-version: 3.7 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Set up Python uses: actions/setup-python@v6 with: diff --git a/.github/workflows/macos-package.yml b/.github/workflows/macos-package.yml index 0657b3299..5eaef84fd 100644 --- a/.github/workflows/macos-package.yml +++ b/.github/workflows/macos-package.yml @@ -10,16 +10,16 @@ on: jobs: build: - runs-on: macos-14 + runs-on: macos-15 steps: - - uses: actions/checkout@v6 - - name: Set up python + - uses: actions/checkout@v7 + - name: "Set up python (universal2: arm64 + x86_64)" env: - PYVER: '3.9.7' - PYVER_SHORT: '3.9' + PYVER: '3.11.9' + PYVER_SHORT: '3.11' run: | - wget -O python.pkg "https://www.python.org/ftp/python/${PYVER}/python-${PYVER}-macosx10.9.pkg" + wget -O python.pkg "https://www.python.org/ftp/python/${PYVER}/python-${PYVER}-macos11.pkg" sudo installer -pkg python.pkg -target / echo "/Library/Frameworks/Python.framework/Versions/${PYVER_SHORT}/bin" >> $GITHUB_PATH - name: Install dependencies @@ -67,6 +67,21 @@ jobs: PYTHONPATH="." python3 setup_osx.py py2app test -d dist/PySolFC.app zip -q -r -X PySolFC-app.zip dist + - name: Verify the app is universal2 (arm64 + x86_64) + run: | + set -euo pipefail + check_universal2() { + archs="$(lipo -archs "$1" 2>/dev/null || true)" + case "$archs" in + *arm64*x86_64*|*x86_64*arm64*) ;; + *) echo "ERROR: $1 is not universal2 (archs: ${archs:-none})"; exit 1 ;; + esac + } + check_universal2 "dist/PySolFC.app/Contents/MacOS/PySolFC" + pygame_ext=$(find dist/PySolFC.app -name 'base.cpython-*-darwin.so' -path '*/pygame/*' | head -1) + test -n "$pygame_ext" + check_universal2 "$pygame_ext" + echo "OK: app and pygame-ce are both universal2." - name: Make the .dmg for easy installation run: create-dmg --volname "Install PySolFC" diff --git a/Makefile b/Makefile index fb99baf16..fc55a2b3d 100644 --- a/Makefile +++ b/Makefile @@ -40,7 +40,7 @@ rules: pot: ./scripts/all_games.py gettext > po/games.pot - xgettext --keyword=n_ --add-comments=TRANSLATORS: -o po/pysol.pot \ + xgettext --keyword=n_ --keyword=pgettext:1c,2 --add-comments=TRANSLATORS: -o po/pysol.pot \ pysollib/*.py pysollib/*/*.py pysollib/*/*/*.py data/pysolfc.glade set -e; \ for lng in de fr pl it ru pt_BR; do \ diff --git a/NEWS.asciidoc b/NEWS.asciidoc index bcdc90f88..f321ac384 100644 --- a/NEWS.asciidoc +++ b/NEWS.asciidoc @@ -1,5 +1,10 @@ [[news]] === News +* _19 July, 2026:_ There is a new stable release +https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.6.1/[PySolFC +v3.6.1]. New in this release: +** Improved Python 3.14 support. +** Many bugfixes. * _13 June, 2026:_ There is a new stable release https://sourceforge.net/projects/pysolfc/files/PySolFC/PySolFC-3.6.0/[PySolFC v3.6.0]. New in this release: diff --git a/html-src/howtoplay.html b/html-src/howtoplay.html index b94e40dc8..6bd79e9bd 100644 --- a/html-src/howtoplay.html +++ b/html-src/howtoplay.html @@ -106,4 +106,6 @@

Undocumented key bindings

  • Ctrl-U - Play the next music song
  • Ctrl-W - Select game, using old game select window
  • F5 - Refresh the game layout +
  • Shift-Ctrl-V - Select game, using search tab +
  • Shift-Ctrl-E - Select cardset, using search tab diff --git a/html-src/index.html b/html-src/index.html index f1e0f77c0..ed7e8d0cb 100644 --- a/html-src/index.html +++ b/html-src/index.html @@ -1,7 +1,7 @@

    PySol - a Solitaire Game Collection

    diff --git a/html-src/install.html b/html-src/install.html index 8954baec4..ce46028fd 100644 --- a/html-src/install.html +++ b/html-src/install.html @@ -1,47 +1,61 @@

    Installation

    -There is no need to compile anything since the whole program is just -a Python script. Just run it, and that's all. -

    -PySol requires Python 2.3 and Tcl/Tk 8.4 or better. Both packages are -freely available for Unix, Windows and Macintosh platforms. -

    -PySol is free Open Source software distributed under the terms of the -GNU GPL. - +PySolFC is free and open source software, released under the GNU GPL. It will run on Windows, Mac, Linux, Android, etc. The easiest way to run is to use a self-contained installer, which is available for most supported operating systems. -

    Windows 95/98/ME/NT/2000

    - -PySol now ships as a completely self-contained setup file, so there's -no need to install anything else. +

    Windows

    -If you want to modify the PySol source code or write your own -Python programs you can get the development system from -http://www.python.org/download/download_windows.html +You can download the latest Windows installer from SourceForge. The installer includes the app, Python and all of the requirements to run PySolFC. A basic and a full installer are available - the full installer includes the app, plus the full set of cardsets and all of the extras. +

    Linux

    +

    +PySolFC is available from Flathub (includes the full cardsets collection). Your Linux distribution may also provide their own package, though note that these packages may not always be fully up-to-date. Additionally, you can download a tarball from SourceForge. -

    Unix

    +

    Mac

    +

    +You can download a .DMG package from SourceForge, and install it like any Mac application. Like with the Windows installer, a basic and full package are both available. -There are good chances that your system already ships with Python and Tcl/Tk.
    -Otherwise visit -http://www.python.org/download/ -for full source code. +

    Android

    -Also, installable packages exist for all major Linux distributions, -FreeBSD and HPUX. +An Android package is available to install from F-Droid. +

    Cardsets and Other Files

    +

    +Additional cardsets, music, and settings are stored under ~/.PySolFC/ (or %APPDATA%\PySolFC\ on Windows), organized as follows: +

    +

    +The app's install directory also contains bundled cardsets and data; the folders above are where per-user content and settings are stored. +

    +You can download additional content from SourceForge, though the full collection is already included if you downloaded a full Windows/Mac package or the Flathub version: +

    -

    Macintosh

    +

    Updating

    +

    +You can check for new versions on the PySolFC website, the news page in the online documentation, along with the SourceForge/Flathub/F-Droid sites. Statistics, options, and user data in your PySolFC user folder will be retained across updates. -Self installing exectuables for Python and Tcl/Tk are available from
    -http://www.python.org/download/download_mac.html +

    Running from Source

    -As I don't have access to a Mac I'd appreciate any detailed feedback on -installation and look & feel. "Porting" from X11 to Windows only required some -minor changes in the default font settings, so I hope the situation on Macs is -similar. +Developers can also run PySolFC from the source code. You can clone the GitHub repository and run +python3 pysol.py after installing Python 3.7+, Tkinter, and the pysol-cards package. See the repository's README for the full details. + +

    Running from Command Line

    -[ I have been told that PySol works fine on a Mac - just drop "pysol.py" - on the Python interpreter and that's it. But for some reason you must - assign a large amount of memory to the Python interpreter. ] +A number of command line options are available for special run options, i.e. pysol.py --game="FreeCell". Run with the --help command parameter for more details on the different options. +

    Troubleshooting

    +

    +The following errors might occur during installation: +

    diff --git a/html-src/news.html b/html-src/news.html index 0f1168cc8..478d390a0 100644 --- a/html-src/news.html +++ b/html-src/news.html @@ -1,6 +1,23 @@

    What's New?