Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

snakebasket introduction (budapest.py)

No description
by Ryan Lane on 26 April 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of snakebasket introduction (budapest.py)

An introduction What in the world is this? Well, let's say you have application... What problem does this solve? 1. You run `sb install` How does it work? 1. Install How can you use it today? 1. If a top-level dependency's requirements are satisfied, then sub-dependency requirements aren't processed. Known issues Future plans snakebasket recursive dependency installs conflict resolution logic snakebasket + + = pip How would you install this thing? with pip 1) run `pip install`
for every node 2) hope exactly one version
of each dependency is specified with snakebasket 1) run `sb install`
just once 3) manually patch or update dependencies
to get them to play with each other 2. snakebasket downloads all
dependency nodes,

then adds each item in their requirements.txt or setup.py

to a single, massive, requirements_set 3. As snakebasket adds each item to the requirement_set,
it keeps only the
best available version seen so far 2) make a coffee 4. snakebasket finally does a `pip install (dependency)` for each dependency in the pruned requirements_set Wait a second. What does "best available version" mean? default behavior --prefer-pinned-revision interprets a missing version as the HEAD of that dependency (and thus the latest version)

always takes the latest available version (whether HEAD or an explicit version) always takes the latest explicitly pinned version over a missing version No more `pip update` 2. Add a requirements.txt 3. `sb install -r requirements.txt` 4. Sleep well at night 1. Activate your project's virtualenv


2. `curl -ss -L http://href.prezi.com/snakebasket | bash -s`

(see https://github.com/prezi/snakebasket README) Simply list your requirements and versions: # requirements.txt

ScriptTest==1.2
mock==1.0.1
nose==1.2.1
virtualenv==1.8.4
-e git+http://github.com/pypa/pip-test-package.git@0.1.2#egg=pip-test-package 2. If a dependency requires a C compiler and one is not available, the recursive installation halts. How can you help? 1. Flesh out test stubs 2. Bump to the latest pip Use it! (If you think it will help you)

Send bugs to snakebasket@prezi.com

Submit pull requests Questions? Thank you! Conflict Resolution ... but one big assumption of backwards compatibility.
See the full transcript