diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 175bb32bc4dbe6d8952ca685354a9c686906c9cd..ab2b33c94038a18018158076a601e8e5fc37a648 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -9,8 +9,7 @@ test:
   script:
     - apk add --no-cache make gcc musl-dev yaml-dev
     - python setup.py install
-    - pip install -r requirements/dev.txt
-    - pip install twine
+    - make ci-install-python-requirements
     - make test
 
 build:images:
@@ -35,7 +34,7 @@ build:docs:
 build:pypi:
   script:
     - apk add --no-cache make
-    - make ci-install
+    - make ci-install-python-requirements
     - make package
   artifacts:
     paths:
@@ -56,7 +55,7 @@ deploy:images:
 deploy:pypi:
   script:
     - apk add --no-cache make
-    - make ci-install
+    - make ci-install-python-requirements
     - make ci-pypi
   dependencies:
     - build:pypi
diff --git a/.travis.yml b/.travis.yml
index 00152632cb623f4d6aa5dca14c64dc29c85c14ae..3f029c756f4046eecb8281eafeb70bd9581ecad1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ matrix:
 
 script:
   - make ci-info
-  - make ci-install-dev
+  - make ci-install-plugins
   - make test
   - make ci-bundle
 
diff --git a/Makefile b/Makefile
index 10fde4cf55eda11e225a69c797baa17d2ee7f922..303c85aa5cd8a09e81821b8b546de10f53d7fc83 100644
--- a/Makefile
+++ b/Makefile
@@ -61,14 +61,11 @@ ci-info: ## Print info about environment
 	python3 --version
 	pip3 --version
 
-ci-install-dev: ## Install requirements
-	pip3 install -U setuptools twine
+ci-install-python-requirements: ## Install requirements
+	pip3 install -U setuptools pip
 	pip3 install -r requirements/dev.txt
-	pip3 install -r requirements/plugins.txt
 
-ci-install:
-	pip3 install -U setuptools twine
-	pip3 install -r requirements/base.txt
+ci-install-plugins: ci-install-python-requirements ## Install alll supported plugins
 	pip3 install -r requirements/plugins.txt
 
 ci-bundle: ## Create bundle and run basic tests
diff --git a/requirements/dev.in b/requirements/dev.in
index c70a1ef8a4b361ee6c750727eb3403d252341699..ce25d148f3a0bb4319365f91aa2466d0b3e54bc6 100644
--- a/requirements/dev.in
+++ b/requirements/dev.in
@@ -3,3 +3,4 @@ black
 pip-tools
 pylint
 pyinstaller
+twine
\ No newline at end of file
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 704cf3992007700ca822512a64e7d25715708a01..8a9eb117db657c6d701fd2f75c282a766ec65bb3 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -9,9 +9,14 @@ appdirs==1.4.3
 astroid==2.2.5            # via pylint
 attrs==19.1.0             # via black
 black==19.3b0
+bleach==3.1.0             # via readme-renderer
+certifi==2019.9.11        # via requests
+chardet==3.0.4            # via requests
 click-repl==0.1.6
 click==7.0
+docutils==0.15.2          # via readme-renderer
 future==0.17.1            # via pefile
+idna==2.8                 # via requests
 isort==4.3.18             # via pylint
 jinja2==2.10.1
 lazy-object-proxy==1.3.1  # via astroid
@@ -20,12 +25,21 @@ markupsafe==1.1.1
 mccabe==0.6.1             # via pylint
 pefile==2018.8.8          # via pyinstaller
 pip-tools==3.2.0
+pkginfo==1.5.0.1          # via twine
 prompt-toolkit==2.0.9
+pygments==2.4.2           # via readme-renderer
 pyinstaller==3.4
 pylint==2.3.1
 pyyaml==5.1
+readme-renderer==24.0     # via twine
+requests-toolbelt==0.9.1  # via twine
+requests==2.22.0          # via requests-toolbelt, twine
 six==1.12.0
 toml==0.10.0              # via black
+tqdm==4.36.1              # via twine
+twine==2.0.0
 typed-ast==1.3.5          # via astroid
+urllib3==1.25.6           # via requests
 wcwidth==0.1.7
+webencodings==0.5.1       # via bleach
 wrapt==1.11.1             # via astroid