[22:06:23] <adamcunnington> When creating requirements.txt for my own project, what is best practice? Should you always require a certain version number or is it ok to say >=, equally if i don't include a number, will pip auto install the latest?
[22:12:18] <Alex_Gaynor> adamcunnington: it depends, some things have a strong backwards compat policy, and don't change too much, so, for example I usually just specify "six", no version. But with something like Django, I usually specify which version I want loosely, "Django>=1.6.1,<1.7" for example
[22:13:48] <adamcunnington> Alex_Gaynor: ok thanks that's helpful - so in a nutshell, i should be making the decision based on how each package i'm depending implements version numbering (hopefully correctly!) combined with the sort of stuff i use from that package?
[22:14:19] <Alex_Gaynor> You can also choose to pin everything to a precise version, and use something like requires.io to let you know if you need to update
[22:14:36] <adamcunnington> Alex_Gaynor: whilst i've got your attention a sec! What do you think of snakebasket? A recursive pip? It seems like each package should have requirements.txt and pip should have a flag to allow us to recursively install requirements
[22:14:45] <adamcunnington> rather than listing every single one at a project's root that uses multiple packages
[22:14:46] <Alex_Gaynor> I dont' know what snakebasket is.
[22:14:57] <Alex_Gaynor> pip does have support for that
[22:15:08] <Alex_Gaynor> projects can list their dependencies in setup.py with isntall_requires
[22:15:33] <adamcunnington> Alex_Gaynor: yea but requirements is nice because then i can just pip install my project rather than doing python setup.py install manually
[22:17:14] <Alex_Gaynor> I'm not sure I understand, you anything you can setup.py install, you can pip install instead
[22:20:40] <adamcunnington> Alex_Gaynor: yea but if you use pip install and include the -r flag, i.e. pip install -r path/to/requirements.txt - what i'd like is for each of my packages to have their own requirements.txt and then they be read and actioned recursively
[22:21:10] <adamcunnington> Alex_Gaynor: i.e. if ./requirements.txt just has 1 package listed, pip could then check if that package has a requirements.txt and if so action ./package/requirements.txt etc.
[22:47:25] <adamcunnington> dstufft: yea but i don't see why that makes it any less of a good idea?
[22:47:48] <adamcunnington> the point is a project may use multiple packages but each package is standalone so each package should have it's own requirements
[22:48:07] <dstufft> correct, and the place to put a packages requirements is inside of the setup.py's install_requires
[22:48:10] <adamcunnington> even if there is a master_requirements.txt that explicitly lists the paths to the project requirements.txt files
[23:27:04] <tomprince> The only reason to do something like this is if you need to be specyfying git repositories for everything, since there isn't a good way to map package names to them.
[23:36:56] <dstufft> tomprince: you can create your own index which maps git repos to package names
[23:40:59] <dstufft> Something simple like pip install --no-index --find-links https://example.com/git-index.html packaging would work, if git-index.html was https://gist.github.com/dstufft/ffc99ab66129e01043ff
[23:43:02] <ionelmc> dstufft: can you pass a `local file` to --find-links ?