[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] Promoting cheeseshop/pypi for game releases?



Interesting. I should look into flit more... somehow I skipped that line of your email. That's really cool!  https://pypi.python.org/pypi/flit

I was pointed to pbr by lordmauve. http://docs.openstack.org/developer/pbr/

I like how pbr uses setup.cfg. Which I think other tools could use, by putting their config inside a setup.cfg section.


Perhaps I agree with you about the magic. I guess it's more a thought experiment about how simple we can make it at this point. Perhaps it could be made usable by explaining to the user how to specify the missing data if it's not there (eg. no git... then it tells people it tried to find it in git, and for people to add author etc).





On Sat, Feb 4, 2017 at 2:12 PM, Thomas Kluyver <takowl@xxxxxxxxx> wrote:
On 4 February 2017 at 12:43, René Dudfield <renesd@xxxxxxxxx> wrote:
I also kind of hate 10-30 config files in repos.

What would a python package look like with no extra files apart from our code? http://renesd.blogspot.de/2017/02/what-would-python-packaging-zero-look.html Then continued the idea here: http://renesd.blogspot.de/2017/02/python-packaging-zero-part-one.html

The main idea is that you can derive enough information from the python code and the git(or hg) repo.

I also dislike having a load of different boilerplate files in a repo for packaging. This was part of what prompted me to write flit. However, I don't think that it's practical to use absolutely zero config. From your proposals, I don't like getting details out of git - it requires that the code is in a git repo, and it makes things quite brittle.

The minimum working config for flit looks like this:

[metadata]
module = astsearch
author = Thomas Kluyver
author-email = thomas@xxxxxxxxxxxxx
home-page = https://github.com/takluyver/astsearch

It takes the description from the docstring (as in your proposal), and the version number from __version__ in the module. There's a command line tool 'flit init' that prompts you for these values, with defaults that you can accept by pressing enter. It doesn't need setup.py or MANIFEST.in or anything: you could literally have just your module and flit.ini.

I recognise that this is still some boilerplate that may seem redundant to new users, but I think it's ultimately clearer to have these values explicitly associated with the project than to pull them out of a magic hat.

Thomas