This is a work in progress for creating the ability to easily generate an AUTHORS file using the output of git log.
ok, so just install invoke locally so you can run these tasks?
and at some point, maybe we'll add more tasks for the whole release process?
Yes, that's the long term goal, that we can cut a release of pip with just inv release or maybe inv release <version> or something like that.
inv release <version>
For the record, you can run this as inv(oke) generate.authors.
From the PyPI entry, invoke doesn't mention being Windows compatible, and the docs don't say anything one way or the other. I've never done a release, so it doesn't really matter at the moment, but are we committing to a release process that won't run on Windows here? (We may already have a release process that won't run on Windows, of course, I don't know for certain).
It's not Windows compatible - uses pexpect and pty.
Ah yea invoke doesn't work on Windows. Not sure if it ever will. Let me ask @bitprophet if that is ever planned.
I'd rather not (poorly) reinvent the Wheel by writing our own invoke, and the alternatives are all either worse or don't work on Windows either afaik. Given that Linux and *nix os's are generally free and worst case scenario can be put on a VM at no cost inside a Windows machine I'm less worried about that. I don't want to sound like I'm discounting Windows though- Are you aware of anything like Invoke that works well that works on Windows?
To be honest, I didn't do more than glance at the invoke docs, because the discussion here got me curious. I know doit is somewhat similar and does work on Windows, but its API is a bit quirky, so I'm not recommending it. As I say, I don't really mind one way or the other - I doubt I'll be doing a release in the foreseeable future, so it's certainly not something to block this change on.
From what I see here, I'm not 100% sure I see the gain from invoke over just a Python script using subprocess.check_call. But maybe it's more about flexibility for the future.
Regardless, not something to worry about unduly.
Yea, the basic reason for not just using a python script is that I want to consolidate them :) We have a couple of python scripts laying around and I'd like everything to be available and discoverable from within invoke. It's also just the first step. Ideally we'll end up with a number of tasks that automate the various processes we have around pip, including releasing, and have it all done in one central location.
I talked to @bitprophet and he said that he's not planning on doing any Windows support himself, and he's not willing to seriously hamstring the invoke code base to support Windows, but that patches are welcome. He recognizes that Windows is a sizable minority but is unable to do the work himself. So if it becomes a problem in the future where we need Windows support we have a path forward where we can contribute patches to invoke.
By the way, I know it's less than ideal but we also have 2k a month worth of free servers too. If you want a persistent Linux box for dealing with pip on *nix I can spin one up for you. (They also support Windows servers, i've used them from time to time to test stuff on Windows).
Thanks. I'll probably look into what's involved in Windows support for invoke (task-runner tools are something I'm interested in anyway, I just hadn't seen invoke before, that's why I got curious in the first place). After all, I have so much free time :-)
A Unix box isn't a big problem - my PC is plenty big enough to run a VM locally. I just tend not to end up using a Unix environment day to day, so it gets stale & out of date. It's just as easy tbh to run one up from scratch when I need one.
Where do you see that invoke uses pexpect and pty?
edit: ahh, vendored.
I know of fabricate.py which is a little more self-contained (it's a simple module you can drop in anywhere) and advertises working on Windows.
I can't see anywhere that invoke says it doesn't work on Windows though :S
Do we want "unknown" in the authors file? IMO just filter it.
Well that unknown is a person who owns a copyright. Their full name is "unknown <hakaton@Anam-mbl.(none)>". Maybe I should see if their code even exists anymore.
Generate AUTHORS using git log
Switch to using Author <firstname.lastname@example.org> for the AUTHORS file