Repository: kubeflow/kfp-tekton (language: python)

Issue:
Remove python 3.5 support
**Which issue is resolved by this Pull Request:** 
Related https://github.com/kubeflow/pipelines/issues/4584

**Description of your changes:**
Remove python 3.5 support since it's no longer supported in kfp. Move travis test to python 3.8 instead.

**Environment tested:**

* Python Version (use `python --version`): 
* Tekton Version (use `tkn version`):
* Kubernetes Version (use `kubectl version`):
* OS (e.g. from `/etc/os-release`):

**Checklist:**
- [ ] The title for your pull request (PR) should follow our title convention. [Learn more about the pull request title convention used in this repository](https://github.com/kubeflow/pipelines/blob/master/CONTRIBUTING.md#pull-request-title-convention). 
<!--
   PR titles examples:
    * `fix(frontend): fixes empty page. Fixes #1234`
       Use `fix` to indicate that this PR fixes a bug.
    * `feat(backend): configurable service account. Fixes #1234, fixes #1235`
       Use `feat` to indicate that this PR adds a new feature. 
    * `chore: set up changelog generation tools`
       Use `chore` to indicate that this PR makes some changes that users don't need to know.
    * `test: fix CI failure. Part of #1234`
        Use `part of` to indicate that a PR is working on an issue, but shouldn't close the issue when merged.
-->
- [ ] Do you want this pull request (PR) cherry-picked into the current release branch?

    [Learn more about cherry-picking updates into the release branch](https://github.com/kubeflow/pipelines/blob/master/RELEASE.md#cherry-picking-pull-requests-to-release-branch).
<!--
    **(Recommended.)** Ask the PR approver to add the `cherrypick-approved` label to this PR. The release manager adds this PR to the release branch in a batch update before release.
-->

Remove python 3.5 support
**Which issue is resolved by this Pull Request:** 
Related https://github.com/kubeflow/pipelines/issues/4584

**Description of your changes:**
Remove python 3.5 support since it's no longer supported in kfp. Move travis test to python 3.8 instead.

**Environment tested:**

* Python Version (use `python --version`): 
* Tekton Version (use `tkn version`):
* Kubernetes Version (use `kubectl version`):
* OS (e.g. from `/etc/os-release`):

**Checklist:**
- [ ] The title for your pull request (PR) should follow our title convention. [Learn more about the pull request title convention used in this repository](https://github.com/kubeflow/pipelines/blob/master/CONTRIBUTING.md#pull-request-title-convention). 
<!--
   PR titles examples:
    * `fix(frontend): fixes empty page. Fixes #1234`
       Use `fix` to indicate that this PR fixes a bug.
    * `feat(backend): configurable service account. Fixes #1234, fixes #1235`
       Use `feat` to indicate that this PR adds a new feature. 
    * `chore: set up changelog generation tools`
       Use `chore` to indicate that this PR makes some changes that users don't need to know.
    * `test: fix CI failure. Part of #1234`
        Use `part of` to indicate that a PR is working on an issue, but shouldn't close the issue when merged.
-->
- [ ] Do you want this pull request (PR) cherry-picked into the current release branch?

    [Learn more about cherry-picking updates into the release branch](https://github.com/kubeflow/pipelines/blob/master/RELEASE.md#cherry-picking-pull-requests-to-release-branch).
<!--
    **(Recommended.)** Ask the PR approver to add the `cherrypick-approved` label to this PR. The release manager adds this PR to the release branch in a batch update before release.
-->



Discussion / hints:
/assign @ckadner

[APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubeflow/kfp-tekton/pull/463#pullrequestreview-587924965" title="LGTM">ckadner</a>*, *<a href="https://github.com/kubeflow/kfp-tekton/pull/463#" title="Author self-approved">Tomcli</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubeflow%2Fkfp-tekton).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/kubeflow/kfp-tekton/blob/master/OWNERS)~~ [Tomcli,ckadner]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->
/assign @ckadner

[APPROVALNOTIFIER] This PR is **APPROVED**

This pull-request has been approved by: *<a href="https://github.com/kubeflow/kfp-tekton/pull/463#pullrequestreview-587924965" title="LGTM">ckadner</a>*, *<a href="https://github.com/kubeflow/kfp-tekton/pull/463#" title="Author self-approved">Tomcli</a>*

The full list of commands accepted by this bot can be found [here](https://go.k8s.io/bot-commands?repo=kubeflow%2Fkfp-tekton).

The pull request process is described [here](https://git.k8s.io/community/contributors/guide/owners.md#the-code-review-process)

<details >
Needs approval from an approver in each of these files:

- ~~[OWNERS](https://github.com/kubeflow/kfp-tekton/blob/master/OWNERS)~~ [Tomcli,ckadner]

Approvers can indicate their approval by writing `/approve` in a comment
Approvers can cancel approval by writing `/approve cancel` in a comment
</details>
<!-- META={"approvers":[]} -->

Fix patch:
diff --git a/api/v2alpha1/python/setup.py b/api/v2alpha1/python/setup.py
index e13332c0d5..8f87be97f6 100644
--- a/api/v2alpha1/python/setup.py
+++ b/api/v2alpha1/python/setup.py
@@ -83,7 +83,7 @@ def GenerateProto(source):
     author_email="kubeflow-pipelines@google.com",
     url="https://github.com/kubeflow/pipelines",
     packages=setuptools.find_namespace_packages(include=['kfp.*']),
-    python_requires=">=3.5.3",
+    python_requires=">=3.6.1",
     include_package_data=True,
     license="Apache 2.0",
 )
diff --git a/sdk/python/setup.py b/sdk/python/setup.py
index a15794bce1..fd9a838e51 100644
--- a/sdk/python/setup.py
+++ b/sdk/python/setup.py
@@ -183,16 +183,16 @@ def get_long_description() -> str:
         'Intended Audience :: Science/Research',
         'License :: OSI Approved :: Apache Software License',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.5',
         'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
+        'Programming Language :: Python :: 3.8',
         'Topic :: Scientific/Engineering',
         'Topic :: Scientific/Engineering :: Artificial Intelligence',
         'Topic :: Software Development',
         'Topic :: Software Development :: Libraries',
         'Topic :: Software Development :: Libraries :: Python Modules',
     ],
-    python_requires='>=3.5.3',
+    python_requires='>=3.6.1',
     include_package_data=True,
     entry_points={
         'console_scripts': [


Test patch:
diff --git a/sdk/python/tests/compiler/testdata/basic_no_decorator.py b/sdk/python/tests/compiler/testdata/basic_no_decorator.py
index be7ddae3d6..7a815e4292 100644
--- a/sdk/python/tests/compiler/testdata/basic_no_decorator.py
+++ b/sdk/python/tests/compiler/testdata/basic_no_decorator.py
@@ -34,7 +34,7 @@ def __init__(self, name, message="When flies fly behind flies,"
     """
     super(GetFrequentWordOp, self).__init__(
         name=name,
-        image='python:3.5-jessie',
+        image='python:3.6-jessie',
         command=['sh', '-c'],
         arguments=['python -c "from collections import Counter; '
                    'words = Counter(\'%s\'.split()); print(max(words, key=words.get))" '
@@ -65,7 +65,7 @@ class ExitHandlerOp(dsl.ContainerOp):
   def __init__(self, name):
     super(ExitHandlerOp, self).__init__(
         name=name,
-        image='python:3.5-jessie',
+        image='python:3.6-jessie',
         command=['sh', '-c'],
         arguments=['echo exit!'])
 
diff --git a/sdk/python/tests/compiler/testdata/basic_no_decorator.yaml b/sdk/python/tests/compiler/testdata/basic_no_decorator.yaml
index 59313cd13a..723f408f95 100644
--- a/sdk/python/tests/compiler/testdata/basic_no_decorator.yaml
+++ b/sdk/python/tests/compiler/testdata/basic_no_decorator.yaml
@@ -47,7 +47,7 @@ spec:
           command:
           - sh
           - -c
-          image: python:3.5-jessie
+          image: python:3.6-jessie
           name: main
       timeout: 0s
     params:
@@ -73,7 +73,7 @@ spec:
           command:
           - sh
           - -c
-          image: python:3.5-jessie
+          image: python:3.6-jessie
           name: main
           resources:
             requests:
diff --git a/sdk/python/tests/compiler/testdata/compose.py b/sdk/python/tests/compiler/testdata/compose.py
index 9fdb8b69c1..3543afbec8 100644
--- a/sdk/python/tests/compiler/testdata/compose.py
+++ b/sdk/python/tests/compiler/testdata/compose.py
@@ -30,7 +30,7 @@ def __init__(self, name, message):
         """
         super(GetFrequentWordOp, self).__init__(
             name=name,
-            image='python:3.5-jessie',
+            image='python:3.6-jessie',
             command=['sh', '-c'],
             arguments=['python -c "import sys; from collections import Counter; '
                        'input_text = sys.argv[1]; '
diff --git a/sdk/python/tests/compiler/testdata/compose.yaml b/sdk/python/tests/compiler/testdata/compose.yaml
index a3e3e5638a..20c048594e 100644
--- a/sdk/python/tests/compiler/testdata/compose.yaml
+++ b/sdk/python/tests/compiler/testdata/compose.yaml
@@ -85,7 +85,7 @@ spec:
           command:
           - sh
           - -c
-          image: python:3.5-jessie
+          image: python:3.6-jessie
           name: main
       timeout: 0s
     - name: save
diff --git a/sdk/python/tests/compiler/testdata/imagepullsecrets.py b/sdk/python/tests/compiler/testdata/imagepullsecrets.py
index 3e2eab32bc..6196610bd7 100644
--- a/sdk/python/tests/compiler/testdata/imagepullsecrets.py
+++ b/sdk/python/tests/compiler/testdata/imagepullsecrets.py
@@ -34,7 +34,7 @@ def __init__(self, name, message):
         """
         super(GetFrequentWordOp, self).__init__(
             name=name,
-            image='python:3.5-jessie',
+            image='python:3.6-jessie',
             command=['sh', '-c'],
             arguments=['python -c "from collections import Counter; '
                        'text = \'%s\'; '
diff --git a/sdk/python/tests/compiler/testdata/imagepullsecrets.yaml b/sdk/python/tests/compiler/testdata/imagepullsecrets.yaml
index f5b3ec8f67..7dde745cc5 100644
--- a/sdk/python/tests/compiler/testdata/imagepullsecrets.yaml
+++ b/sdk/python/tests/compiler/testdata/imagepullsecrets.yaml
@@ -56,7 +56,7 @@ spec:
           command:
           - sh
           - -c
-          image: python:3.5-jessie
+          image: python:3.6-jessie
           name: main
       timeout: 0s
   podTemplate: