diff --git a/setup.py b/setup.py
index <HASH>..<HASH> 100644
--- a/setup.py
+++ b/setup.py
@@ -86,10 +86,10 @@ setup(
     packages=find_packages(exclude=['tests', 'tests.*']),
 
     install_requires=[
-        'six>=1.10.0',
-        'graphql-core>=2.0',
-        'graphql-relay>=0.4.5',
-        'promise>=2.1',
+        'six>=1.10.0,<2',
+        'graphql-core>=2.0,<3',
+        'graphql-relay>=0.4.5,<1',
+        'promise>=2.1,<3',
     ],
     tests_require=tests_require,
     extras_require={
Prevent requirement breaking changes

I have a project still in <I> thats has been broken in my last release since it used `'graphql-core>=<I>'` in the `install_requires`. Since `graphql-core` has released version <I> with breaking changes and there was no instruction to maintain version 1, it was included as a dependency. This prevents this situation for the future.