jimporter / bfg9000

bfg9000 - build file generator
https://jimporter.github.io/bfg9000
BSD 3-Clause "New" or "Revised" License
76 stars 21 forks source link

Provide OS packages for bfg #31

Open jimporter opened 9 years ago

jimporter commented 9 years ago

To make life easier for users, we should provide installable packages for bfg. While setuptools is helpful, users should be able to use their OS's packager. We want the following:

refi64 commented 9 years ago

For Windows, you still need an installer. There's a distutils plugin on PyPI for Inno Setup.

refi64 commented 9 years ago

https://pypi.python.org/pypi/innosetup

It even works with py2exe.

There's also InnoPython, which I wrote, although I don't know if it works under Python 3.

jimporter commented 9 years ago

Thanks, I added that to the summary. I'll have to decide if I want to support Python 3 eventually. Currently, it's Python 2.7 only, but there's a bfg9000_required_version that also lets you specify the required Python version, so I could see people eventually requiring Python 3 for their build.bfg files.

jimporter commented 9 years ago

Moving this to 0.2, since it's not really essential for a first version, and otherwise I'll never actually finish 0.1.

nlhepler commented 8 years ago

@jimporter, if I could add a voice here, I'm a supporter of py3 over py2, for various reasons. I haven't seen many reasons why we couldn't support both, especially with the help of six.

jimporter commented 8 years ago

My only concern with supporting Py3 is that users who have bfg-with-py3 installed and try to build someone else's project made with bfg-with-py2 might run into issues. However, I'm probably going to support Py3 anyway. I think the only part I need to fix is eliminating basestring everywhere.

nlhepler commented 8 years ago

That's a fair point, though I would also say that if anyone is doing something in their bfg files that's incompatible between py2 and py3 (at least w/o six), it's probably already brittle.. We could just make a large public recommendation that .bfg-authors be mindful of compatibility.

tomjakubowski commented 8 years ago

On OS X you should probably package for homebrew; I don't see how a build file generator would work as a .app unless you added a GUI for it.

Homebrew have some pretty straightforward guidelines for packaging Python applications (including those that have dependencies) here: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/Python-for-Formula-Authors.md

And here's a relatively small example formula that follows those guidelines, if you're curious: https://github.com/Oblong/homebrew-tools/blob/master/obi.rb

tomjakubowski commented 8 years ago

You might also be able to build an installer package (.pkg), but I know nothing about that.

jimporter commented 8 years ago

That sounds like a good idea, thanks! I don't know much about OS X, aside from that I use Homebrew for installing crap for the CI builds for bfg. It seems like the de facto solution for this stuff. If there are other super-popular alternatives to Homebrew, I'll look into them too if someone points them out.

tomjakubowski commented 8 years ago

I'm happy to volunteer time to work on packaging bfg9000 for Homebrew. I'll be in touch.

tomjakubowski commented 8 years ago

Something you may not be aware of: https://github.com/jordansissel/fpm

(pretty funny that fpm doesn't dogfood and you have to gem install fpm to use it…)

jimporter commented 8 years ago

Hm, interesting. Python already handles .rpms and .debs pretty well, so I might not need that, but perhaps it would help for OS X...

jimporter commented 8 years ago

Ok, I now have working .debs and a PPA for Ubuntu: https://launchpad.net/~jimporter/+archive/ubuntu/testing

When I produce an actual release, I'll put all the necessary packages into a "stable" PPA.

jimporter commented 8 years ago

Oh also, if anyone has an opinion on how they'd like to see me distribute a Python 3-backed version of bfg, let me know. Right now, the bfg9000 package on my PPA is Python 2-backed, but I could add a bfg9000-python3 package. Or I could have bfg9000-python2 and bfg9000-python3 and then make a virtual bfg9000 package?

jimporter commented 7 years ago

Moving this out to 0.4 since I want to handle #48 before I get too far on this...