Skip to content

Commit 6abedce

Browse files
author
Pietro Albini
committed
Use pip-tools to manage development dependencies
1 parent df355e6 commit 6abedce

File tree

7 files changed

+48
-0
lines changed

7 files changed

+48
-0
lines changed

requirements-build.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Babel
2+
wheel

requirements-docs.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
buildthedocs
2+
pietroalbini-sphinx-themes

requirements-lint.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
flake8

requirements-test.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
pytest
2+
responses

requirements-tools.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pip-tools

requirements-tools.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#
2+
# This file is autogenerated by pip-compile
3+
# Make changes in requirements-tools.in, then run this to update:
4+
#
5+
# pip-compile requirements-tools.in
6+
#
7+
click==6.3 # via pip-tools
8+
first==2.0.1 # via pip-tools
9+
pip-tools==1.6
10+
six==1.10.0 # via pip-tools

tasks.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,33 @@ def docs():
246246

247247
invoke.run("%s/bin/buildthedocs %s/buildthedocs.yml -o %s" %
248248
(env, docs_dir, build_dir))
249+
250+
251+
#
252+
# Pinned dependencies management
253+
#
254+
255+
256+
@invoke.task(name="deps-sync")
257+
def deps_sync():
258+
"""Sync dependencies versions"""
259+
env = create_env("tools", requirements=True)
260+
261+
for env_name in os.listdir(os.path.join(BASE, "build", "envs")):
262+
req = os.path.join(BASE, "requirements-%s.txt" % env_name)
263+
if not os.path.exists(req):
264+
continue
265+
266+
sub_env = os.path.join(BASE, "build", "envs", env_name)
267+
invoke.run("VIRTUAL_ENV=%s %s/bin/pip-sync %s/requirements-%s.txt"
268+
% (sub_env, env, BASE, env_name), pty=True)
269+
270+
271+
@invoke.task(name="deps-compile")
272+
def deps_compile():
273+
"""Compile new requirements-*.txt"""
274+
env = create_env("tools", requirements=True)
275+
276+
for file in glob.glob(os.path.join(BASE, "requirements-*.in")):
277+
invoke.run("%s/bin/pip-compile %s > %s" % (env, os.path.abspath(file),
278+
os.path.abspath(file)[:-3]+".txt"))

0 commit comments

Comments
 (0)