On Tue, Sep 08, 2009 at 02:53:49PM +0200, Tarek Ziadé wrote: > On Tue, Sep 8, 2009 at 2:32 PM, Eric Smith<e...@trueblade.com> wrote: > > Tarek Ziadé wrote: > >> > >> On Tue, Sep 8, 2009 at 10:29 AM, Chris Withers<ch...@simplistix.co.uk> > >> wrote: > >>> > >>> Tarek Ziadé wrote: > >>>> > >>>> - an extra function called "long_description", to be able to point a > >>>> file for the long description field > >>> > >>> I can't comment on the others, but this is unnecessary. Why do you need > >>> more > >>> than: > >>> > >>> long_decription="some lump of text" > >>> > >>> or > >>> > >>> long_description_path ="path/relative/to/directory/containing/setup.py" > >>> > >>> ...with it being an error for both to be specified? > >>> > >>> cheers, > >>> > >> > >> The practice in the community is to create the long_description field > >> using a separate reStructuredText file > >> and reaching it in setup.py like this for example: > >> > >> long_description = open('README.txt').read() > >> > >> Having a callable that provides this feature in the template allows > >> writing: > >> > >> """ > >> [setup.cfg] > >> > >> long_description: {$ long_description('README.txt') $} > >> """ > >> > >> Thus avoiding to write anything in setup.py for that particular case. > >> the callable could be called "read_file()" maybe, so it's clearer. > >> > >> long_description_path can't be added in the final PKG-INFO because > >> we want a self-contained metadata static file that doesn't require an > >> extra resource (like an external file) > >> > >> Whereas having a file path in setup.cfg.in is acceptable, as long as > >> the resulting setup.cfg > >> contains everything needed to get the metadata of the package without > >> further depenencies. > >> > >> so if by the time setup.cfg.in is compiled, the path cannot be found, > >> the field will have its value set to "UNKOWN" in setup.cfg > > > > Which all points out that it's setup.cfg that is the static metadata, and > > that you can generate it any way you want. If you want to use m4, use m4. If > > you want to use python, use python. If you want to have some makefile driven > > approach, or use autoconf, or whatever, do that. > > > > setup.cfg should be entirely static except for some simple if-then-else > > logic involving versions, as Tarek has described earlier. That is, it should > > only contain logic that needs to be decided on the platform where the > > installation is taking place. This is basically what RPM provides. > > > > Any other logic, in particular logic used solely for building setup.cfg, > > should be outside the scope of this system, because you can use any tool at > > all for it. > > > > So you are suggesting that setup.cfg includes the "if/else" logic > instead of having it > in a "setup.cfg.in" file ?
I'm more in favour of your original idea to have setup.cfg being completely static and have the if/else logic in setup.cfg.in. Regards Floris -- Debian GNU/Linux -- The Power of Freedom www.debian.org | www.gnu.org | www.kernel.org _______________________________________________ Distutils-SIG maillist - Distutils-SIG@python.org http://mail.python.org/mailman/listinfo/distutils-sig