diff --git a/.gitignore b/.gitignore
index 69504d4..041ce50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,8 @@
 *.egg
+*.eggs
 *.egg-info
 *.py[cod]
 .hypothesis/
 .tox
 dist
+build
diff --git a/README.rst b/README.rst
index 121a140..cdc3e52 100644
--- a/README.rst
+++ b/README.rst
@@ -75,6 +75,15 @@
 Changes
 -------
 
+0.7.0 - 2021-01-23
+``````````````````
+
+* Drop support for all versions of Python lower than 3.6
+
+* Add support for Python 3.8, 3.9, and 3.10
+
+* Fix option declaration for Flake8
+
 0.6.1 - 2017-01-26
 ``````````````````
 
diff --git a/mccabe.py b/mccabe.py
index f28b979..5746504 100644
--- a/mccabe.py
+++ b/mccabe.py
@@ -16,7 +16,7 @@
 except ImportError:   # Python 2.5
     from flake8.util import ast, iter_child_nodes
 
-__version__ = '0.6.1'
+__version__ = '0.7.0'
 
 
 class ASTVisitor(object):
diff --git a/setup.py b/setup.py
index 01e528e..a2bd6db 100644
--- a/setup.py
+++ b/setup.py
@@ -4,58 +4,54 @@
 from setuptools import setup
 
 
-def get_version(fname='mccabe.py'):
+def get_version(fname="mccabe.py"):
     with open(fname) as f:
         for line in f:
-            if line.startswith('__version__'):
-                return eval(line.split('=')[-1])
+            if line.startswith("__version__"):
+                return eval(line.split("=")[-1])
 
 
 def get_long_description():
     descr = []
-    for fname in ('README.rst',):
+    for fname in ("README.rst",):
         with open(fname) as f:
             descr.append(f.read())
-    return '\n\n'.join(descr)
+    return "\n\n".join(descr)
 
 
 setup(
-    name='mccabe',
+    name="mccabe",
     version=get_version(),
     description="McCabe checker, plugin for flake8",
     long_description=get_long_description(),
-    keywords='flake8 mccabe',
-    author='Tarek Ziade',
-    author_email='tarek@ziade.org',
-    maintainer='Ian Cordasco',
-    maintainer_email='graffatcolmingov@gmail.com',
-    url='https://github.com/pycqa/mccabe',
-    license='Expat license',
-    py_modules=['mccabe'],
+    keywords="flake8 mccabe",
+    author="Tarek Ziade",
+    author_email="tarek@ziade.org",
+    maintainer="Ian Stapleton Cordasco",
+    maintainer_email="graffatcolmingov@gmail.com",
+    url="https://github.com/pycqa/mccabe",
+    license="Expat license",
+    py_modules=["mccabe"],
     zip_safe=False,
     entry_points={
-        'flake8.extension': [
-            'C90 = mccabe:McCabeChecker',
+        "flake8.extension": [
+            "C90 = mccabe:McCabeChecker",
         ],
     },
     classifiers=[
-        'Development Status :: 5 - Production/Stable',
-        'Environment :: Console',
-        'Intended Audience :: Developers',
-        'License :: OSI Approved :: MIT License',
-        'Operating System :: OS Independent',
-        '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',
-        'Programming Language :: Python :: 3.9',
-        'Topic :: Software Development :: Libraries :: Python Modules',
-        'Topic :: Software Development :: Quality Assurance',
+        "Development Status :: 5 - Production/Stable",
+        "Environment :: Console",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: MIT License",
+        "Operating System :: OS Independent",
+        "Programming Language :: Python",
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
+        "Programming Language :: Python :: 3.8",
+        "Programming Language :: Python :: 3.9",
+        "Programming Language :: Python :: 3.10",
+        "Topic :: Software Development :: Libraries :: Python Modules",
+        "Topic :: Software Development :: Quality Assurance",
     ],
-    python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",
+    python_requires=">=3.6",
 )
diff --git a/tox.ini b/tox.ini
index 5965f63..5864ba4 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 envlist =
-    py27,py34,py35,py36,py37,py38,py39,pypy,pypy3,flake8
+    ,py36,py37,py38,py39,py310,pypy,pypy3,flake8
 
 [testenv]
 deps =
