[11:49:05] <doismellburning> if I wanted `setup.py` to read `requirements.txt` for `install_requires`, is there a recommended least-awful way to do so?
[11:49:17] <doismellburning> I am aware this is generally a bad plan, but, alas, Constraints
[12:35:32] <Ivo> but why must you programmatically grab what happens to be in requirements.txt and put in the install_requires array?
[12:35:52] <doismellburning> "must" is somewhat strong
[12:36:17] <Ivo> ok, so if it's not must, I would advocate against it
[12:36:37] <doismellburning> but the main use-case is that requires.io only accepts the various commented directives in `requirements.txt` and not in `setup.py` (entirely reasonably)
[12:37:26] <doismellburning> and having a tonne of breaking PRs trying to update some of these services to Django 1.8 from 1.7 is proving tedious
[12:39:28] <Ivo> you're trying to update a project from 1.7 to 1.8?
[12:59:32] <doismellburning> jessamynsmith: without lockfiles though, that _is_ still what happens in many cases
[12:59:32] <jessamynsmith> but you'll like it even less than what python does
[12:59:47] <jessamynsmith> plus most people don't specify exact versions
[13:00:32] <jessamynsmith> now that I've totally distracted myself with this convo... I actually came in here because I was wondering about pip updating of all files in a virtualenv
[13:00:47] <jessamynsmith> I *thought* I had discovered a way in new pip to upgrade all
[13:00:51] <jessamynsmith> but now I can't remember
[13:39:27] <vila> dstufft: floowing you from #bzr ;) I tried to upload the latest tarball and ended up with Error processing form
[13:39:27] <vila> Invalid version, cannot be parsed as a valid PEP 440 version.
[13:39:40] <dstufft> vila: what's the version number?
[13:50:21] <dstufft> you're going to want to change that line so it uses a hardcoded dictionary of values from setup.py
[13:50:45] <vila> dstufft: and at some point I will see the file uploaded on pypi ?
[13:51:44] <dstufft> vila: sorry, twine is a utility to upload already existing files to PyPI, however your existing tarball doesn't have the static metadata twine needs to be able to inspect an already created tarball
[13:52:14] <dstufft> so you need to override the step where twine attempts to read the metadata from the tarball, and replace it with hardcoded values
[13:53:24] <vila> oh, great, testing before uploading, excellent
[13:54:20] <dstufft> twine's gotten refactored since I last looked at it
[13:54:57] <dstufft> you might be able to just use twine as a library, and instatiate your own PackageFile object https://github.com/pypa/twine/blob/master/twine/package.py#L42 with the correcet metadata (instead of using the from_filename classmethod)
[13:55:15] <dstufft> or subclass it and replace the metadata_dictionary
[13:55:36] <dstufft> and then pass that object into Repository().upload() (https://github.com/pypa/twine/blob/master/twine/repository.py#L20)
[13:56:47] <dstufft> Does that all make sense? I have a meeting in 8 minutes, but after that I can try to upload it for you if you give me permissions again (I dropped them after I gave them to you)
[13:56:50] <vila> dstufft: ack, able to make twine upload .tgz .asc fails, now to create the metadata...
[13:57:57] <dstufft> FWIW I suggest switching to setuptools in your setup.py and always using twine to upload (setup.py is.. problematic, it amy or may not use TLS or validate TLS depending on what version of Python you're using)
[14:00:31] <vila> yeah, I see a big data http://pastebin.ubuntu.com/12554550/ which sounds like my target
[14:01:38] <dstufft> if you run setup.py register first, I *think* i can omit everything but name and version
[14:01:51] <dstufft> oh and filename and py_version
[14:02:02] <dstufft> and :action and protocol_version
[14:02:27] <vila> dstufft: if I fail to provide a required field the upload will fail right ?
[14:02:57] <dstufft> it should yes... but PyPI's codebase is not great. You can try to upload it testpypi.python.org first though if you want
[14:03:09] <dstufft> sorry, by should I mean, I think it will
[14:15:42] <vila> dstufft: sorry, just noticed 'I have a meeting in 8 minutes'. I'm making slow progress and let you know if I succeed. Otherwise, once you're back and still willing to help, I'd be happy to give you permissions ;)
[19:38:45] <preyalone> Could we please make it easier to list a package's previous versions, and view the details at a given revision?
[19:45:26] <dstufft> preyalone: like on https://warehouse.python.org/project/requests/?
[19:52:47] <tos9> what does platform mean on warehouse
[19:53:39] <dstufft> tos9: it means whatever it means in one of the metadata PEPs. Since it's an old data field, that problably means it's severely underspecified it doesn't really mean much of anything
[19:53:48] <maugzoide> I have a fork of python-etcd and I would like to add this package to my setup.py. It is on Github in a public repo. Giving the branch name install a wrong version. Is this documented? How to install from git inside setup.py?
[19:54:32] <dstufft> "A comma-separated list of platform specifications, summarizing the operating systems supported by the package. The major supported platforms are listed below, but this list is necessarily incomplete."
[19:54:58] <dstufft> in pratice it's just a free form text field for people to YOLO whatever they want platform to mean
[19:55:14] <dstufft> maugzoide: you don't install from git inside of setup.py