[10:19:20] <doismellburning> manual changes? right
[10:19:21] <mgedmin> release is "remove .dev0 from version, commit, tag, build sdist, upload, increase version and add .dev0, commit, push, push --tags"
[10:19:29] <mgedmin> zest.releaser can do the changes for you
[10:19:46] <mgedmin> but I haven't figured out how to teach it where I keep my version numbers when they're not in setup.py
[10:20:10] <mgedmin> I maintain a number of small projects (http://projects.gedmin.as/); 'make release' in each runs sanity checks and tells me what commands to run
[10:20:19] <mgedmin> so I can do releases even when I'm tired and have half my brain missing
[12:32:25] <mitsuhiko> i thought setup.py upload does ssl now
[12:33:58] <dstufft> With Python 2.7.9 and 3.4.3 it does properly validated TLS, for every other version it's still absolutely broken, most people are not running the absolute latest versions of Python and even if they were, if anyone wants to upload binaries for 3.3, 3.2, or 2.6 then ``setup.py upload` will never be safe for those versions.
[12:34:32] <mitsuhiko> but if you upload fom 2.7.9 then you're good?
[12:36:12] <dstufft> should be yes, I didn't actually test it but it's just using urllib2 and I don't think it's doing anything that would break the new on by default validation
[12:36:39] <dstufft> It's easier to just recommend people use twine than to go into details about when setup.py upload is safe
[13:14:24] <ionelmc> what happens if you don't use twine and your wheel has dependencies?
[19:38:02] <ionelmc> one thing that irks me is that i have to manually specify the filename when i use twine upload
[19:38:25] <ionelmc> has anyone tried to integrate twine as a distutils command?
[19:51:54] <carljm> ionelmc: i think that would break part of the point of twine, which is the ability to generate an sdist, then test it, then upload that precise sdist to PyPI
[19:52:02] <carljm> (at least that's part of why I use it)
[19:52:41] <ionelmc> carljm: yeah but i want to automate my release process
[19:52:45] <carljm> specifying the filename is a necessary part of that. tab-completion makes it relatively painless
[19:53:01] <ionelmc> guessing the final filename is something that i want to seriously avoid
[19:53:45] <carljm> the filename is quite predictable. or your automation can empty out the dist/ dir first, and then rely on the sdist being the only file in the dist/ dir after setup.py sdist
[19:54:33] <ionelmc> carljm: it still feels like a dirty workaround :-)
[19:54:59] <carljm> ionelmc: of all the dirty workarounds i've seen in automated Python build and release processes, this one doesn't even register :-)
[19:55:36] <ionelmc> carljm: ok, what's the dirtiest workaround you have seen ever?
[19:55:38] <carljm> You might even be able to pull the filename out of the 'setup.py sdist' output, if you like that better.
[19:56:03] <ionelmc> without a custom sdist command? :-|
[19:56:22] <ionelmc> i wanna avoid custom commands, it's like poking the bear
[19:56:23] <carljm> i think the default output includes the filename it's writing. would have to check to be sure
[19:56:42] <carljm> ionelmc: oh i dunno, i've seen a lot of ugliness in setup.py files
[19:56:58] <ionelmc> i'm in for the beauty contest
[23:09:59] <wsanchez> So I have a module that's a C extension (which is a bug, I know, but…) when I 'setup.py sdist', the resulting tarball doesn't include the headers, so then when I try to 'pip install' that, it won't compile. Adding headers to the `sources` arg to `Extension` doesn't work, so… where do I add them?
[23:12:42] <ionelmc> wsanchez try adding the headers to MANIFEST.in
[23:19:26] <wsanchez> OK, I don't have one of those, so new thing, ok.
[23:22:44] <ionelmc> wsanchez: i prefer to use grafts + excludes