Repository: fofix/fretwork (language: python)

Issue:
Support for python 3.9
Python 3.9 support is blocked by:
- pygame: v1.9.6 does not support python 3.9, it should be upgraded to v2.0
- numpy: v1.16.6 does not support python 3.9, it should be upgraded to v1.19.


Discussion / hints:

Fix patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 30f3ec2..fab6ad4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
 
 ## 1.0.0 (unreleased)
 
+- build(python): support py3.9
 - docs: the changelog is now in project root
 - ci: remove Travis CI
 - ci: use GitHub Actions
diff --git a/requirements.txt b/requirements.txt
index 419bb4d..c687adf 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-numpy==1.16.6
-Pygame==1.9.6
+numpy>=1.14
+pygame>=2.0
 PyOpenGL==3.1.5
 mixstream==1.1.0
diff --git a/setup.py b/setup.py
index 10b475a..a449c40 100644
--- a/setup.py
+++ b/setup.py
@@ -51,15 +51,18 @@
         'Programming Language :: Python :: 3',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
+        'Programming Language :: Python :: 3.9',
         'Topic :: Multimedia',
         'Topic :: Multimedia :: Sound/Audio',
         'Topic :: Software Development :: Libraries',
     ],
     keywords='music engine fofix frets game',
     install_requires=[
-        "Pygame<2.0",
+        "Pygame>=2.0",
         "PyOpenGL",
-        "numpy;python_version>'3.6'",
+        "numpy>=1.14;python_version>'3.7'",
+        "numpy>=1.17;python_version>'3.8'",
+        "numpy>=1.19;python_version>'3.9'",
     ],
     test_suite="tests",
 )


Test patch:
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 561250b..52fbd99 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -14,12 +14,10 @@ jobs:
     strategy:
       fail-fast: true
       matrix:
-        python-version: ['3.7', '3.8']
+        python-version: ['3.7', '3.8', '3.9']
         experimental: [false]
 
         include:
-          - python-version: '3.9'
-            experimental: true
           - python-version: '3.10'
             experimental: true