GithubHelp home page GithubHelp logo

snakebasket's People

Contributors

abesto avatar cassus avatar mrjbq7 avatar neumark avatar ryanalane avatar zsol avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

snakebasket's Issues

Snakebasket choosing the latest version of a dependency is an anti-feature.

In your README you say foo depends on ReportLab=1.7 and bar depends on ReportLab=1.9, causing dependency hell. Snakebasket resolves this by installing the latest of the two versions and assuming that it will work for foo.

This example itself is only causing dependency hell because it demonstrates a misuse of install_requires, which should not be used to pin an exact version to a package's dependencies. install_requires should be used to exclude versions that are known not to work.

This is why generally dependencies that are defined with install_requires have a minimum version. Usually we don't know that a future package won't be compatible, so we assume that future packages are compatible until they are released and prove otherwise.

At such a time, you can then update the install_requires for your package to exclude additional versions of its dependencies which are known to not work. For example, if a new feature was added to ReportLab 1.7 that your package requires, but compatibility was broken in 1.9 and then fixed in 1.11, you could have ReportLab>=1.7,<1.9,>=1.11 or ReportLab>=1.7,!=1.9,!=1.10.

Correct use of install_requires should drastically reduce the possibility of dependency hell. If one package truly and legitimately requires exactly ReportLab==1.7 and another requires exactly ReportLabl==1.9, then this is something that Snakebasket won't be able to solve with an assumption.

The point of pip and requirements.txt is to then freeze all the requirements of your project and all of its dependencies, so that you can test and reproduce exactly the same environment reliably. So you should only be using setuptools recursive dependency handling (e.g. install_requires) once (so that you can freeze the requirements), or perhaps a second time when you want to try and start fresh and see if your project will run with the latest versions of all its dependencies.

So I guess the point of this issue is -- can you remove this behaviour from Snakebasket? Or at least make it optional, and ideally not the default?

The reason I am interested in using Snakebasket is for its recursive processing of requirements.txt, which IS quite useful in some circumstances. My use case is probably quite similar to yours. We have many private utility apps that are hosted in git repositories. These are not released to PyPI and they are often under heavy development.

I am looking for a way that we can define a project dependency on a set of core utility apps that are used by the project, and have the dependencies for those utility apps be installed automatically. For example:

  • project depends on lib-a and lib-b.
  • lib-a depends on lib-c and lib-d.

All of the above would be unpinned, e.g. pointing to the @master branch of a git repository. I'd do sb install -r requirements-unpinned.txt initially. Then I would do pip freeze > requirements.txt so that the entire environment can be reliably recreated.

Then it is up to the person developing the project and its collection of dependencies to resolve any conflicts and re-freeze the entire dependency tree.

Version specification priorities

Explicit is better than implicit: use foo.git@reallylongsha1 over foo.git when both are present. foo.git is the same as foo.git@master.

Except that maybe someone really really wants master. So here's what I propose:

  • Always prefer foo.git@anything over foo.git
  • foo.git@anything should conflict with foo.git@anything-else. Doesn't matter if the anything and the anything-else are branches, commits, hashes or anything.

Error when using wrong version of pip

I was attempting to create a virtual env for the new logservice (located in its own github repo created by Endre) using ./setup.sh in the root of the project. It was on my local MacBook Pro NOT having activated any other virtualenv (using system python that is).

After a while I got this:

Downloading/unpacking mock==1.0.1 (from -r /Users/mrpi/Workspace/logservice/virtualenv/src/prezi-aws/requirements.txt (line 10))
   Running setup.py egg_info for package mock

    warning: no files found matching '*.png' under directory 'docs'
    warning: no files found matching '*.css' under directory 'docs'
    warning: no files found matching '*.html' under directory 'docs'
    warning: no files found matching '*.js' under directory 'docs'
  Requested mock==1.0.1 (from -r /Users/mrpi/Workspace/logservice/virtualenv/src/prezi-aws/requirements.txt (line 10)), but installing version 0.8.0
Exception:
Traceback (most recent call last):
  File "/Users/mrpi/Workspace/logservice/virtualenv/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py", line 107, in main
    status = self.run(options, args)
  File "/Users/mrpi/Workspace/logservice/virtualenv/src/snakebasket/snakebasket/commands/install.py", line 333, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
AttributeError: Values instance has no attribute 'root_path'

Exception while updating

I just tried to build a new virtual env for dynapps and got this;

Obtaining prezi-aws from [email protected]:prezi/aws.git#egg=prezi_aws (from -r /Users/mrpi/Workspace/dynapps/virtualenv/src/prezi-django-utils/requirements.txt (line 2))
  Updating ./virtualenv/src/prezi-aws clone
  Running setup.py egg_info for package prezi-aws

  Found requirements.txt in prezi-aws, installing extra dependencies.
Skipping installation of prezi-config from [email protected]:prezi/config.git#egg=prezi-config because a newer version has already been downloaded.
Requirement already satisfied (use --upgrade to upgrade): mock in ./virtualenv/lib/python2.7/site-packages (from -r /Users/mrpi/Workspace/dynapps/virtualenv/src/prezi-django-utils/requirements.txt (line 8))
Requirement already satisfied (use --upgrade to upgrade): coverage==3.4 in ./virtualenv/lib/python2.7/site-packages (from -r /Users/mrpi/Workspace/dynapps/virtualenv/src/prezi-django-utils/requirements.txt (line 9))
Requirement already satisfied (use --upgrade to upgrade): unittest-xml-reporting==1.3.2 in ./virtualenv/lib/python2.7/site-packages (from -r /Users/mrpi/Workspace/dynapps/virtualenv/src/prezi-django-utils/requirements.txt (line 10))
Exception:
Traceback (most recent call last):
  File "/Users/mrpi/Workspace/dynapps/virtualenv/src/pip/pip/basecommand.py", line 107, in main
    status = self.run(options, args)
  File "/Users/mrpi/Workspace/dynapps/virtualenv/src/snakebasket/snakebasket/commands/install.py", line 348, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/Users/mrpi/Workspace/dynapps/virtualenv/src/snakebasket/snakebasket/commands/install.py", line 91, in prepare_files
    installed_version = self.install_req_checker.req_installed_version(req_to_install)
  File "/Users/mrpi/Workspace/dynapps/virtualenv/src/snakebasket/snakebasket/versions.py", line 216, in req_installed_version
    if self.is_install_req_newer(already_installed_req, install_req):
  File "/Users/mrpi/Workspace/dynapps/virtualenv/src/snakebasket/snakebasket/versions.py", line 227, in is_install_req_newer
    editable_reqs = [req for req in reqs_in_conflict if req.editable == True]
  File "/Users/mrpi/Workspace/dynapps/virtualenv/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 2292, in __getattr__
    return getattr(self._provider, attr)
AttributeError: PathMetadata instance has no attribute 'editable'

Storing complete log in /Users/mrpi/.config/pip/pip.log

doesn't work with latest pip

I tried pypa/pip@b2874f5 since that fixes an issue with pip and git > 1.8.3.
This is what I got:

raceback (most recent call last):
  File "/Users/zsol/.prezi/presentationservice/bin/sb", line 9, in <module>
    load_entry_point('snakebasket==2.0.0', 'console_scripts', 'sb')()
  File "/Users/zsol/.prezi/presentationservice/src/snakebasket/snakebasket/main.py", line 5, in main
    install_pip_patches()
  File "/Users/zsol/.prezi/presentationservice/src/snakebasket/snakebasket/main.py", line 9, in install_pip_patches
    from snakebasket.commands import install
  File "/Users/zsol/.prezi/presentationservice/src/snakebasket/snakebasket/commands/install.py", line 13, in <module>
    from pip.backwardcompat import home_lib
ImportError: cannot import name home_lib

We will need this if we plan to use recent git versions. Right now the version that brew install git sets up does not work.

bzr dependency checking is broken (snakebasket assumes a git repository)

When including a bzr dependency, snakebasket checks for git status rather than bzr status.

This can result in a fatal error when attempting to update that dependency, as it incorrectly looks at the git status of the closest git repository (often the parent project).

The following dependency will trigger this behavior:

-e bzr+http://bazaar.launchpad.net/~phanatic/django-configglue/more-supported-releases/@80#egg=django-configglue

Conflicting editables should test for equality before attempting to do a git version comparison

Here's my situation:

  1. I have an editable package that had some .pyc files that were not ignored by .gitignore
  2. I ran snakebasket once. Installation went fine.
  3. I ran snakebasket again. It failed with: "Cannot be upgraded due to uncommitted git modifications."

I checked the source directory and found the problem there, but in looking at the snakebasket code, I see that there is no attempt to do a simple equality comparison between (package A, version X) and (package A, version X), which would have avoided this expensive (and errorneous) git comparison in the first place.

To fix, I propose in versions.py.get_available_substitute() using the set() operator on the packages. For set() to detect duplicates, PackageData needs the hash operator, which is simple to implement. Will submit a pull request shortly.

sb install doesn't work when running update_requirements.sh in dynapps

Here's the terminal session:

(virtualenv)szilveszter@madrid:~/Prezi/repo/dynapps$ ./update_requirements.sh 
Obtaining pip from git+http://github.com/pypa/pip.git@854574f65c4ef92da8dd78b9831a9604dcc9957a#egg=pip
  Updating ./virtualenv/src/pip clone (to 854574f65c4ef92da8dd78b9831a9604dcc9957a)
  Could not find a tag or branch '854574f65c4ef92da8dd78b9831a9604dcc9957a', assuming commit.
  Running setup.py egg_info for package pip

    warning: no files found matching '*.html' under directory 'docs'
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
    no previously-included directories found matching 'docs/_build/_sources'
Obtaining snakebasket from [email protected]:prezi/snakebasket.git@c86911726193ead2a48b6e267fbe31d817931a3b#egg=snakebasket
  Updating ./virtualenv/src/snakebasket clone (to c86911726193ead2a48b6e267fbe31d817931a3b)
  Could not find a tag or branch 'c86911726193ead2a48b6e267fbe31d817931a3b', assuming commit.
  Running setup.py egg_info for package snakebasket

Installing collected packages: pip, snakebasket
  Running setup.py develop for pip

    warning: no files found matching '*.html' under directory 'docs'
    warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
    no previously-included directories found matching 'docs/_build/_sources'
    Creating /Users/szilveszter/Prezi/repo/dynapps/virtualenv/lib/python2.7/site-packages/pip.egg-link (link to .)
    pip 1.2.1.post1 is already the active version in easy-install.pth
    Installing pip script to /Users/szilveszter/Prezi/repo/dynapps/virtualenv/bin
    Installing pip-2.7 script to /Users/szilveszter/Prezi/repo/dynapps/virtualenv/bin

    Installed /Users/szilveszter/Prezi/repo/dynapps/virtualenv/src/pip
  Running setup.py develop for snakebasket

    Creating /Users/szilveszter/Prezi/repo/dynapps/virtualenv/lib/python2.7/site-packages/snakebasket.egg-link (link to .)
    snakebasket 2.0.0 is already the active version in easy-install.pth
    Installing sb script to /Users/szilveszter/Prezi/repo/dynapps/virtualenv/bin

    Installed /Users/szilveszter/Prezi/repo/dynapps/virtualenv/src/snakebasket
Successfully installed pip snakebasket
Cleaning up...
Traceback (most recent call last):
  File "/Users/szilveszter/Prezi/repo/dynapps/virtualenv/bin/sb", line 9, in <module>
    load_entry_point('snakebasket==2.0.0', 'console_scripts', 'sb')()
  File "/Users/szilveszter/Prezi/repo/dynapps/virtualenv/src/snakebasket/snakebasket/main.py", line 5, in main
    install_pip_patches()
  File "/Users/szilveszter/Prezi/repo/dynapps/virtualenv/src/snakebasket/snakebasket/main.py", line 9, in install_pip_patches
    from snakebasket.commands import install
  File "/Users/szilveszter/Prezi/repo/dynapps/virtualenv/src/snakebasket/snakebasket/commands/install.py", line 3, in <module>
    from pip.req import InstallRequirement, InstallationError, _make_build_dir, parse_requirements, Requirements
ImportError: No module named req
(virtualenv)szilveszter@madrid:~/Prezi/repo/dynapps$ python
Python 2.7.2 (default, Jun 20 2012, 16:23:33) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from pip.req import InstallRequirement, InstallationError, _make_build_dir, parse_requirements, Requirements
>>> 

Any ideas what I'm doing wrong here?

Expected upgrade not happening

Original requirements.txt (dynapps):

-r requirements-fab.txt

#Apps
-e [email protected]:prezi/website-your.git@abc2eb3f29c264122d98215af96dcef6f64a9440#egg=prezi-website-your
-e [email protected]:prezi/website-cover.git@fe3100ec9cd35b6b2b2afad316a2e8a2af015f0c#egg=prezi-website-cover
-e [email protected]:prezi/website-prezicontainer.git@9273527c30d5c650cc9a18c6980c8f65b57dc501#egg=prezi-website-prezicontainer

#Libs
-e [email protected]:prezi/auth.git@d4d5a6d470eb76b96b8f049f8f3e0ec780fb6685#egg=prezi-auth
-e [email protected]:prezi/[email protected]#egg=prezi-config
-e [email protected]:prezi/django-utils.git@d43c82f561a4e55d6031f0cf85b0b1691f7f7cbf#egg=prezi-django-utils
-e [email protected]:prezi/django.git@prezi/1.3.1#egg=django
-e [email protected]:prezi/django_compressor.git@157d684a69b9166836fb06222276198dc93e41e6#egg=django_compressor
-e [email protected]:prezi/feature-switcher.git@e561c3d2a81c33d9af27a80e4a1636b93d376ebe#egg=prezi-feature-switcher
-e [email protected]:prezi/[email protected]#egg=prezi-logging
-e [email protected]:prezi/[email protected]#egg=prezi-utils
-e [email protected]:prezi/website-common.git@4a64d23d5d8669af95945f0ea380f7a7aba1f919#egg=prezi-website-common
-e [email protected]:prezi/website-i18n.git@b8bbd23e3845297d47dc0d7c4657f4f984ac4c77#egg=prezi-website-i18n

# Django env
django-configglue==0.6.1
django-jstemplate==1.0.1
django-staticfiles==1.2.1

# Production
gunicorn==0.13.3
eventlet==0.9.16
# Only used on App13 now, but we need to include it in the package anyway:
newrelic==1.8.0.13

# Test
unittest2==0.5.1
mock==1.0.1
coverage==3.4
unittest-xml-reporting==1.3.2

# Dependencies - API
django-tastypie==0.9.11
mimeparse==0.1.3
requests==0.13.5

Output of sb freeze:

BeautifulSoup==3.2.0
-e git+https://github.com/prezi/django.git@a84990662b0b6ec479976c48bbeecfc9db0253cc#egg=Django-dev
Fabric==1.4.2
M2Crypto==0.20.2
PIL==1.1.7
Thrift==0.5.0
Werkzeug==0.8.3
amqplib==1.0.2
anyjson==0.3.1
bleach==1.0.3
boto==2.7.0
braintree==2.14.1
celery==2.5.3
chardet==2.1.1
configglue==1.0
coverage==3.4
distribute==0.6.28
django-appconf==0.4.1
django-celery==2.5.5
django-celery-email==0.1.1
-e git+https://github.com/prezi/django_compressor.git@ff07e5ff70703c07c452679a9b29ab736e0847a9#egg=django_compressor-dev
django-configglue==0.6.1
django-debug-toolbar==0.8.5
django-extensions==0.9
django-jsonfield==0.7.1
django-jstemplate==1.0.1
django-kombu==0.9.2
django-picklefield==0.2.1
django-sphinx==2.2.3
django-staticfiles==1.2.1
django-storages==1.1.4
django-tastypie==0.9.11
eventlet==0.9.16
fb303==1.0
feedparser==4.1
furl==0.3.3
greenlet==0.4.0
gunicorn==0.13.3
html5lib==0.90
httplib2==0.7.2
itsdangerous==0.17
junitxml==0.6
kombu==2.1.8
lockfile==0.9.1
logilab-astng==0.21.1
logilab-common==0.55.0
lxml==2.2.4
mimeparse==0.1.3
mock==1.0.1
-e [email protected]:prezi/mockredis.git@d6b5b415969cacafb7c8bf893be4fa3e3799bb3c#egg=mockredis-dev
netaddr==0.7.4
newrelic==1.8.0.13
oauth2==1.5.170
ordereddict==1.1
orderedmultidict==0.7
paramiko==1.7.7.2
pep8==0.5.0
pika==0.9.5
pisa==3.0.33
-e [email protected]:prezi/auth.git@d4d5a6d470eb76b96b8f049f8f3e0ec780fb6685#egg=prezi_auth-dev
-e [email protected]:prezi/celery-hothot.git@77d5ee5beb68bbcacb4f3e0e4dcf2ebe5bb58a4e#egg=prezi_celery_hothot-dev
-e [email protected]:prezi/[email protected]#egg=prezi_config
-e [email protected]:prezi/[email protected]#egg=prezi_django_utils
-e [email protected]:prezi/fabric-utils@6601e2b3738d48cfe29be696e231727f59e0452b#egg=prezi_fabric_utils-dev
-e [email protected]:prezi/feature-switcher.git@41b3bb11cc614cd6fdca002c9217e3e96db4e580#egg=prezi_feature_switcher-dev
-e [email protected]:prezi/[email protected]#egg=prezi_logging
-e [email protected]:prezi/mac-client.git@bd8fae5f80fe4c336c38abbac32e3331d07ed445#egg=prezi_mac_client-dev
-e [email protected]:prezi/redis-client.git@43a4cc251707c8a157c3c01a5cd321d46e792a5d#egg=prezi_redis_client-dev
-e [email protected]:prezi/[email protected]#egg=prezi_utils
-e [email protected]:prezi/website-common.git@20ea651a8a2b47c425b7f857b065c0ada6cc6570#egg=prezi_website_common-dev
-e [email protected]:prezi/website-cover.git@fed1ab2d310fd4bd861690cdd389f8c55cfc7b8e#egg=prezi_website_cover-dev
-e [email protected]:prezi/website-i18n.git@b8bbd23e3845297d47dc0d7c4657f4f984ac4c77#egg=prezi_website_i18n-dev
-e [email protected]:prezi/website-prezicontainer.git@b0a54886cb52cfa34c3b687ef26e98fef1156b82#egg=prezi_website_prezicontainer-dev
-e [email protected]:prezi/website-your.git@b3c030dbd6e954de06978ea9d1eadbe60d363346#egg=prezi_website_your-dev
protobuf==2.4.1
pyPdf==1.13
pycassa==1.6.0
pycounters==0.5
pycrypto==2.3
pyflakes==0.5.0-ignore
pylint==0.23.0
pyparsing==1.5.5
python-daemon==1.5.5
python-dateutil==1.5
python-googleanalytics==1.0.2
python-memcached==1.47
python-openid==2.2.5
pytz==2010b
pyxdg==0.23
redis==2.4.9
reportlab==2.5
requests==0.13.5
-e git://github.com/basho/riak-python-client.git@bcf4dfb12912157656ba36e9f5dc9f21026abfbb#egg=riak-dev
scribe==2.0
simplejson==2.0.9
six==1.2.0
-e [email protected]:prezi/snakebasket.git@63072fa11a2dc6fe50b0298d5be46cff1a015fdc#egg=snakebasket-dev
solrpy==0.9.5
ssh==1.7.14
unittest-xml-reporting==1.3.2
unittest2==0.5.1
versiontools==1.9.1
wsgiref==0.1.2

My problem is that update_requirements.sh won't upgrade the prezi-config dependency to the specified version, even if I bump it to v1.1.8 in requirements.txt:

$ ./update_requirements.sh 
Requirement already satisfied (use --upgrade to upgrade): prezi-fabric-utils from [email protected]:prezi/fabric-utils.git@3f86b54c05993abad49c506c92749d9722ff3478#egg=prezi-fabric-utils in ./virtualenv/src/prezi-fabric (from -r requirements-fab.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): prezi-website-your from [email protected]:prezi/website-your.git@abc2eb3f29c264122d98215af96dcef6f64a9440#egg=prezi-website-your in ./virtualenv/src/prezi-website-your (from -r requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): prezi-website-cover from [email protected]:prezi/website-cover.git@fe3100ec9cd35b6b2b2afad316a2e8a2af015f0c#egg=prezi-website-cover in ./virtualenv/src/prezi-website-cover (from -r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): prezi-website-prezicontainer from [email protected]:prezi/website-prezicontainer.git@9273527c30d5c650cc9a18c6980c8f65b57dc501#egg=prezi-website-prezicontainer in ./virtualenv/src/prezi-website-prezicontainer (from -r requirements.txt (line 6))
Requirement already satisfied (use --upgrade to upgrade): prezi-auth from [email protected]:prezi/auth.git@d4d5a6d470eb76b96b8f049f8f3e0ec780fb6685#egg=prezi-auth in ./virtualenv/src/prezi-auth (from -r requirements.txt (line 9))
Requirement already satisfied (use --upgrade to upgrade): prezi-config from [email protected]:prezi/[email protected]#egg=prezi-config in ./virtualenv/src/prezi-config (from -r requirements.txt (line 10))
Requirement already up-to-date: prezi-django-utils from [email protected]:prezi/django-utils.git@d43c82f561a4e55d6031f0cf85b0b1691f7f7cbf#egg=prezi-django-utils in ./virtualenv/src/prezi-django-utils (from -r requirements.txt (line 11))
Requirement already satisfied (use --upgrade to upgrade): django from [email protected]:prezi/django.git@prezi/1.3.1#egg=django in ./virtualenv/src/django (from -r requirements.txt (line 12))
Requirement already satisfied (use --upgrade to upgrade): django-compressor from [email protected]:prezi/django_compressor.git@157d684a69b9166836fb06222276198dc93e41e6#egg=django_compressor in ./virtualenv/src/django-compressor (from -r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): prezi-feature-switcher from [email protected]:prezi/feature-switcher.git@e561c3d2a81c33d9af27a80e4a1636b93d376ebe#egg=prezi-feature-switcher in ./virtualenv/src/prezi-feature-switcher (from -r requirements.txt (line 14))
Requirement already satisfied (use --upgrade to upgrade): prezi-logging from [email protected]:prezi/[email protected]#egg=prezi-logging in ./virtualenv/src/prezi-logging (from -r requirements.txt (line 15))
Requirement already up-to-date: prezi-utils from [email protected]:prezi/[email protected]#egg=prezi-utils in ./virtualenv/src/prezi-utils (from -r requirements.txt (line 16))
Requirement already satisfied (use --upgrade to upgrade): prezi-website-common from [email protected]:prezi/website-common.git@4a64d23d5d8669af95945f0ea380f7a7aba1f919#egg=prezi-website-common in ./virtualenv/src/prezi-website-common (from -r requirements.txt (line 17))
Requirement already satisfied (use --upgrade to upgrade): prezi-website-i18n from [email protected]:prezi/website-i18n.git@b8bbd23e3845297d47dc0d7c4657f4f984ac4c77#egg=prezi-website-i18n in ./virtualenv/src/prezi-website-i18n (from -r requirements.txt (line 18))
Requirement already satisfied (use --upgrade to upgrade): django-configglue==0.6.1 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 21))
Requirement already satisfied (use --upgrade to upgrade): django-jstemplate==1.0.1 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 22))
Requirement already satisfied (use --upgrade to upgrade): django-staticfiles==1.2.1 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 23))
Requirement already satisfied (use --upgrade to upgrade): gunicorn==0.13.3 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 26))
Requirement already satisfied (use --upgrade to upgrade): eventlet==0.9.16 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 27))
Requirement already satisfied (use --upgrade to upgrade): newrelic==1.8.0.13 in ./virtualenv/lib/python2.7/site-packages/newrelic-1.8.0.13 (from -r requirements.txt (line 29))
Requirement already satisfied (use --upgrade to upgrade): unittest2==0.5.1 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 32))
Requirement already satisfied (use --upgrade to upgrade): mock==1.0.1 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 33))
Requirement already satisfied (use --upgrade to upgrade): coverage==3.4 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 34))
Requirement already satisfied (use --upgrade to upgrade): unittest-xml-reporting==1.3.2 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 35))
Requirement already satisfied (use --upgrade to upgrade): django-tastypie==0.9.11 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 38))
Requirement already satisfied (use --upgrade to upgrade): mimeparse==0.1.3 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 39))
Requirement already satisfied (use --upgrade to upgrade): requests==0.13.5 in ./virtualenv/lib/python2.7/site-packages (from -r requirements.txt (line 40))
Requirement already satisfied (use --upgrade to upgrade): django-appconf>=0.4 in ./virtualenv/lib/python2.7/site-packages (from django-compressor->-r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): configglue>=1.0 in ./virtualenv/lib/python2.7/site-packages (from django-configglue==0.6.1->-r requirements.txt (line 21))
Requirement already satisfied (use --upgrade to upgrade): greenlet>=0.3 in ./virtualenv/lib/python2.7/site-packages (from eventlet==0.9.16->-r requirements.txt (line 27))
Requirement already satisfied (use --upgrade to upgrade): python-dateutil>=1.5,<2.0 in ./virtualenv/lib/python2.7/site-packages (from django-tastypie==0.9.11->-r requirements.txt (line 38))
Requirement already satisfied (use --upgrade to upgrade): pyxdg in ./virtualenv/lib/python2.7/site-packages (from configglue>=1.0->django-configglue==0.6.1->-r requirements.txt (line 21))
Cleaning up...

I would expect prezi-config to be updated in the virtualenv if I bump the required version/tag in requirements.txt.

Installed package's requirements are not updated

dynapps /
    requirements.txt 
        prezi.website.your

prezi.website.your / 
    requirements.txt
        - django1.3.1
        + django1.4.1

After updating dynapps the requirements for prezi.website.your app are not updated, in this case django.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.