Repository: Pyomo/pyomo

Issue:
Update manylinux builder once Python 3.9 is added
We use a Marketplace GitHub Action to build our manylinux wheels for release. The main branch of this does not yet have Python 3.9 support, but there is a PR waiting for approval that would add it:

https://github.com/RalfG/python-wheels-manylinux-build/pull/33

Once this PR is merged, we will need to update the release workflow.


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -113,11 +113,7 @@ def run_setup():
         'Operating System :: Microsoft :: Windows',
         'Operating System :: Unix',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 2',
-        'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.4',
-        'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
@@ -127,10 +123,9 @@ def run_setup():
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Scientific/Engineering :: Mathematics',
         'Topic :: Software Development :: Libraries :: Python Modules' ],
-      python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
+      python_requires='>=3.6',
       install_requires=[
           'PyUtilib>=6.0.1.dev0',
-          'enum34;python_version<"3.4"',
           'ply',
           'six>=1.4',
       ],


Test patch:
diff --git a/.github/workflows/pr_master_test.yml b/.github/workflows/pr_master_test.yml
--- a/.github/workflows/pr_master_test.yml
+++ b/.github/workflows/pr_master_test.yml
@@ -40,7 +40,7 @@ jobs:
       fail-fast: false
       matrix:
         os: [ubuntu-18.04, macos-latest, windows-latest]
-        python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, pypy2, pypy3]
+        python: [3.6, 3.7, 3.8, 3.9, pypy3]
         other: [""]
         category: ["nightly"]
         # Ubuntu-18.04 should be replaced with ubuntu-latest once PyNumero
@@ -112,9 +112,7 @@ jobs:
           PACKAGES: cython
 
         exclude:
-        - {os: macos-latest, python: pypy2}
         - {os: macos-latest, python: pypy3}
-        - {os: windows-latest, python: pypy2}
         - {os: windows-latest, python: pypy3}
 
     steps:
@@ -286,8 +284,6 @@ jobs:
         conda install -q -y -c conda-forge ${PYTHON_CORE_PKGS}
         conda install -q -y -c conda-forge ${PYTHON_PACKAGES}
         if test -z "${{matrix.slim}}"; then
-            # Note: CPLEX 12.9 (the last version in conda that supports
-            #    Python 2.7) causes a seg fault in the tests.
             conda install -q -y -c ibmdecisionoptimization 'cplex>=12.10' \
                 || echo "WARNING: CPLEX Community Edition is not available"
             conda install -q -y -c fico-xpress xpress \
diff --git a/.github/workflows/push_branch_test.yml b/.github/workflows/push_branch_test.yml
--- a/.github/workflows/push_branch_test.yml
+++ b/.github/workflows/push_branch_test.yml
@@ -50,18 +50,18 @@ jobs:
           PYENV: pip
 
         - os: macos-latest
-          python: 2.7
+          python: 3.6
           TARGET: osx
           PYENV: pip
 
         - os: windows-latest
-          python: 3.5
+          python: 3.7
           TARGET: win
           PYENV: conda
           PACKAGES: glpk
 
         - os: ubuntu-18.04
-          python: 3.7
+          python: 3.8
           other: /mpi
           mpi: 3
           skip_doctest: 1
@@ -94,7 +94,7 @@ jobs:
           PYENV: pip
 
         - os: ubuntu-18.04
-          python: 3.6
+          python: 3.7
           other: /cython
           setup_options: --with-cython
           skip_doctest: 1
@@ -102,12 +102,6 @@ jobs:
           PYENV: pip
           PACKAGES: cython
 
-        exclude:
-        - {os: macos-latest, python: pypy2}
-        - {os: macos-latest, python: pypy3}
-        - {os: windows-latest, python: pypy2}
-        - {os: windows-latest, python: pypy3}
-
     steps:
     - name: Checkout Pyomo source
       uses: actions/checkout@v2
@@ -277,8 +271,6 @@ jobs:
         conda install -q -y -c conda-forge ${PYTHON_CORE_PKGS}
         conda install -q -y -c conda-forge ${PYTHON_PACKAGES}
         if test -z "${{matrix.slim}}"; then
-            # Note: CPLEX 12.9 (the last version in conda that supports
-            #    Python 2.7) causes a seg fault in the tests.
             conda install -q -y -c ibmdecisionoptimization 'cplex>=12.10' \
                 || echo "WARNING: CPLEX Community Edition is not available"
             conda install -q -y -c fico-xpress xpress \