Repository: repobee/repobee (language: python)

Issue:
Add support for Python 3.12 and 3.13
There's at least one test failure in the dist tests when running with Python 3.12, so Python 3.12 support needs to be investigated a bit.


Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index dd4b3ccb..26802bf0 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
 [![Code Coverage](https://codecov.io/gh/repobee/repobee/branch/master/graph/badge.svg)](https://codecov.io/gh/repobee/repobee)
 [![Documentation Status](https://readthedocs.org/projects/repobee/badge/?version=stable)](http://repobee.readthedocs.io/en/stable/)
 [![PyPi Version](https://badge.fury.io/py/repobee.svg)](https://badge.fury.io/py/repobee)
-![Supported Python Versions](https://img.shields.io/badge/python-3.9%2C%203.10%2C%203.11-blue.svg)
+![Supported Python Versions](https://img.shields.io/badge/python-3.9%2C%203.10%2C%203.11%2C%203.12%2C%203.13-blue.svg)
 ![Supported Platforms](https://img.shields.io/badge/platforms-Linux%2C%20macOS-blue.svg)
 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
 [![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)
diff --git a/scripts/install.sh b/scripts/install.sh
index 4c00bfb3..732ff696 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -23,7 +23,7 @@ REPOBEE_COMPLETION="$REPOBEE_INSTALL_DIR/completion"
 REPOBEE_BASH_COMPLETION="$REPOBEE_COMPLETION/bash_completion.sh"
 REGISTER_PYTHON_ARGCOMPLETE="$REPOBEE_INSTALL_DIR/env/bin/register-python-argcomplete"
 
-MIN_PYTHON_VERSION=8
+MIN_PYTHON_VERSION=9
 
 function install() {
     repobee_pip_uri=$1
@@ -95,7 +95,7 @@ function install_repobee() {
 
 function find_python() {
     # Find an appropriate python executable
-    for exec_suffix in "3.11" "3.10" "3.9" "3" ""; do
+    for exec_suffix in "3.13" "3.12" "3.11" "3.10" "3.9" "3" ""; do
         python_exec="python$exec_suffix"
         minor_version=$(get_minor_python3_version "$python_exec")
         if [ "$minor_version" -ge "$MIN_PYTHON_VERSION" ]; then
diff --git a/setup.py b/setup.py
index 6aab98c9..6da08a55 100644
--- a/setup.py
+++ b/setup.py
@@ -84,6 +84,8 @@ def read_requirements(requirements_file_name: str) -> list[str]:
         "Programming Language :: Python :: 3.9",
         "Programming Language :: Python :: 3.10",
         "Programming Language :: Python :: 3.11",
+        "Programming Language :: Python :: 3.12",
+        "Programming Language :: Python :: 3.13",
         "Programming Language :: Python :: Implementation :: CPython",
         "License :: OSI Approved :: MIT License",
         "Operating System :: POSIX",


Test patch:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index a4aca3e8..afdbbec1 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -20,13 +20,17 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest, macos-latest]
-        python-version: [3.9, '3.10', '3.11']
+        python-version: [3.9, '3.10', '3.11', '3.12', '3.13']
         core-commands-as-plugins: [false]
         exclude:
           - os: macos-latest
             python-version: 3.10
           - os: macos-latest
             python-version: 3.11
+          - os: macos-latest
+            python-version: 3.12
+          - os: macos-latest
+            python-version: 3.13
         include:
           - os: ubuntu-latest
             python-version: 3.9
diff --git a/tests/integration_tests/test_dist.py b/tests/integration_tests/test_dist.py
index 1e468999..aaf77d45 100644
--- a/tests/integration_tests/test_dist.py
+++ b/tests/integration_tests/test_dist.py
@@ -227,7 +227,7 @@ def test_auto_updates_pip(self):
         out-of-date.
         """
         # arrange
-        old_pip_version = "20.0.1"
+        old_pip_version = "24.3"
         assert (
             subprocess.run(
                 [