Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #83743
| Path | csiph.com!usenet.pasdenom.info!gegeweb.org!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail |
|---|---|
| Return-Path | <python-python-list@m.gmane.org> |
| X-Original-To | python-list@python.org |
| Delivered-To | python-list@mail.python.org |
| X-Spam-Status | OK 0.002 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'parameters': 0.04; 'third- party': 0.04; 'distutils': 0.07; 'installed.': 0.07; 'dependency': 0.09; 'imported': 0.09; 'parsed': 0.09; 'parsing': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'run,': 0.09; 'python': 0.11; 'assume': 0.14; '8bit%:32': 0.16; 'available;': 0.16; 'declared': 0.16; 'emits': 0.16; 'feeding': 0.16; 'finney': 0.16; 'imported.': 0.16; 'imports': 0.16; 'metadata.': 0.16; 'programmatic': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'recorded': 0.16; 'setuptools': 0.16; 'top-level': 0.16; 'url:debian': 0.16; 'folks': 0.16; 'module': 0.19; 'later': 0.20; 'command': 0.22; 'example': 0.22; 'header:User-Agent:1': 0.23; '(such': 0.24; 'aspect': 0.24; 'circular': 0.24; 'library,': 0.24; 'parse': 0.24; 'propose': 0.24; 'specify': 0.24; 'initial': 0.24; "i've": 0.25; 'values': 0.27; 'header:X-Complaints-To:1': 0.27; 'record': 0.27; 'idea': 0.28; 'point': 0.28; 'function': 0.29; 'rest': 0.29; "i'm": 0.30; 'code': 0.31; 'base,': 0.31; 'continues': 0.31; 'existence': 0.31; 'writes:': 0.31; 'allows': 0.31; 'file': 0.32; "we're": 0.32; 'run': 0.32; 'call.': 0.33; 'actual': 0.34; "i'd": 0.34; 'could': 0.34; "can't": 0.35; 'info': 0.35; 'but': 0.35; 'version': 0.36; 'introducing': 0.36; 'like,': 0.36; 'limitations': 0.36; 'done': 0.36; 'possible': 0.36; 'url:org': 0.36; 'should': 0.36; 'starting': 0.37; 'ben': 0.38; 'to:addr:python-list': 0.38; 'rather': 0.38; 'recent': 0.39; 'itself': 0.39; 'specialist': 0.39; 'though,': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'release': 0.40; '8bit%:29': 0.60; 'eventually': 0.60; 'break': 0.61; 'skip:* 10': 0.61; 'information,': 0.61; 'first': 0.61; 'information': 0.63; 'face': 0.64; 'more': 0.64; 'skip:\xe2 10': 0.65; '8bit%:40': 0.68; 'circle': 0.68; 'revealed': 0.68; 'food': 0.72; '8bit%:43': 0.74; '8bit%:46': 0.78; 'certified': 0.81; 'culinary': 0.84; 'fortunately,': 0.84; 'improvement,': 0.84; 'received:125': 0.84; 'subject:Using': 0.84; 'subject:source': 0.84; 'tricky': 0.84; 'usage.': 0.84; 'approach.': 0.91 |
| X-Injected-Via-Gmane | http://gmane.org/ |
| To | python-list@python.org |
| From | Ben Finney <ben+python@benfinney.id.au> |
| Subject | Re: Using a ChangeLog as a canonical source of package metadata |
| Date | Wed, 14 Jan 2015 21:59:45 +1100 |
| References | <54ae0917$0$2738$c3e8da3$76491128@news.astraweb.com> <mailman.17465.1420701187.18130.python-list@python.org> <54ae6715$0$12987$c3e8da3$5496439d@news.astraweb.com> <mailman.17488.1420762070.18130.python-list@python.org> <54b2be27$0$13000$c3e8da3$5496439d@news.astraweb.com> <85bnm5ukze.fsf@benfinney.id.au> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8 |
| Content-Transfer-Encoding | 8bit |
| X-Gmane-NNTP-Posting-Host | jigong.madmonks.org |
| X-Public-Key-ID | 0xAC128405 |
| X-Public-Key-Fingerprint | 517C F14B B2F3 98B0 CB35 4855 B8B2 4C06 AC12 8405 |
| X-Public-Key-URL | http://www.benfinney.id.au/contact/bfinney-pubkey.asc |
| X-Post-From | Ben Finney <bignose+hates-spam@benfinney.id.au> |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux) |
| Cancel-Lock | sha1:+zGjAqhBI0t3zrjXVOvJ70aQHk4= |
| X-BeenThere | python-list@python.org |
| X-Mailman-Version | 2.1.15 |
| Precedence | list |
| List-Id | General discussion list for the Python programming language <python-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-list/> |
| List-Post | <mailto:python-list@python.org> |
| List-Help | <mailto:python-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.17711.1421233195.18130.python-list@python.org> (permalink) |
| Lines | 50 |
| NNTP-Posting-Host | 2001:888:2000:d::a6 |
| X-Trace | 1421233195 news.xs4all.nl 2911 [2001:888:2000:d::a6]:46737 |
| X-Complaints-To | abuse@xs4all.nl |
| Xref | csiph.com comp.lang.python:83743 |
Show key headers only | View raw
Ben Finney <ben+python@benfinney.id.au> writes: > The idea is to parse from the Changelog the version metadata, and > record it in Setuptools metadata. Then the ‘pkg_resources’ module of > Setuptools allows programmatic access to that metadata. One tricky aspect is: at what specific point should the Changelog be parsed and the version metadata recorded in Setuptools package metadata? At first I thought it should be done immediately on starting ‘setup.py’, in order to have values to supply to the ‘setup()’ call. So I imported the ‘version’ module which itself imports ‘docutils’ to have the reST parsing available; then ‘setup.py’ continues by feeding the Changelog to a function which parses it and emits values which are used to supply parameters to ‘setup()’. As was revealed in a recent version of the code base, though, this causes a circular dependency. Docutils is a third-party library, which needs to be declared as a dependency and satsified before it can be imported. But that dependency can't be declared until ‘setup()’ has run to specify what the dependencies are! So in a later release I've had to break that circle by introducing an initial “unknown” state for the version information, in order to allow ‘setup()’ to run and get the dependencies installed. Then when the ‘setup.py egg_info’ command is run, the Changelog is parsed and the version info metadata file is injected into the Setuptools metadata for the distribution. Rather more complicated than I would like, because of the need to have ‘setup()’ as a top-level call in ‘setup.py’. This would be more straightforward if we could assume the commonly-deployed existence of a *declarative* build system (such as Make); but in Python we're stuck with ‘setup.py’ and its limitations for now. Fortunately, the hard work of many people have made those much better in recent years. I'm interested to know what people writing Python distributions think of this approach. Again, the example I'm discussing is in ‘python-daemon’'s code base, at <URL:https://alioth.debian.org/projects/python-daemon/>. Eventually I might propose this to the Distutils folks as a possible improvement, but I'd like to refine it more in the face of actual usage. -- \ “… a Microsoft Certified System Engineer is to information | `\ technology as a McDonalds Certified Food Specialist is to the | _o__) culinary arts.” —Michael Bacarella | Ben Finney
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Announce: PyPrimes 0.2.1a Steven D'Aprano <steve@pearwood.info> - 2015-01-08 04:35 +0000
Re: Announce: PyPrimes 0.2.1a Ben Finney <ben+python@benfinney.id.au> - 2015-01-08 18:12 +1100
Re: Announce: PyPrimes 0.2.1a Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-08 22:16 +1100
Re: Announce: PyPrimes 0.2.1a Irmen de Jong <irmen.NOSPAM@xs4all.nl> - 2015-01-08 23:32 +0100
Re: Announce: PyPrimes 0.2.1a Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-09 11:41 +1100
Re: Announce: PyPrimes 0.2.1a Chris Angelico <rosuav@gmail.com> - 2015-01-09 11:50 +1100
Re: Announce: PyPrimes 0.2.1a alister <alister.nospam.ware@ntlworld.com> - 2015-01-09 09:05 +0000
Re: Announce: PyPrimes 0.2.1a Ben Finney <ben+python@benfinney.id.au> - 2015-01-09 22:01 +1100
Re: Announce: PyPrimes 0.2.1a alister <alister.nospam.ware@ntlworld.com> - 2015-01-09 11:42 +0000
Where to learn current best Python packaging practices (was: Announce: PyPrimes 0.2.1a) Ben Finney <ben+python@benfinney.id.au> - 2015-01-09 12:11 +1100
Re: Where to learn current best Python packaging practices (was: Announce: PyPrimes 0.2.1a) Rustom Mody <rustompmody@gmail.com> - 2015-01-08 17:39 -0800
Re: Where to learn current best Python packaging practices (was: Announce: PyPrimes 0.2.1a) Rick Johnson <rantingrickjohnson@gmail.com> - 2015-01-08 17:42 -0800
Re: Where to learn current best Python packaging practices Ben Finney <ben+python@benfinney.id.au> - 2015-01-09 13:37 +1100
PyPI files should not change their payload (was: Announce: PyPrimes 0.2.1a) Ben Finney <ben+python@benfinney.id.au> - 2015-01-09 10:55 +1100
Re: PyPI files should not change their payload (was: Announce: PyPrimes 0.2.1a) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-09 11:38 +1100
Using a ChangeLog as a canonical source of package metadata (was: Announce: PyPrimes 0.2.1a) Ben Finney <ben+python@benfinney.id.au> - 2015-01-09 11:06 +1100
Re: Using a ChangeLog as a canonical source of package metadata (was: Announce: PyPrimes 0.2.1a) Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-12 05:17 +1100
Re: Using a ChangeLog as a canonical source of package metadata Ben Finney <ben+python@benfinney.id.au> - 2015-01-12 07:21 +1100
Re: Using a ChangeLog as a canonical source of package metadata wxjmfauth@gmail.com - 2015-01-11 12:37 -0800
Re: Using a ChangeLog as a canonical source of package metadata Steven D'Aprano <steve@pearwood.info> - 2015-01-12 05:44 +0000
Re: Using a ChangeLog as a canonical source of package metadata wxjmfauth@gmail.com - 2015-01-12 05:24 -0800
Re: Using a ChangeLog as a canonical source of package metadata Steven D'Aprano <steve@pearwood.info> - 2015-01-13 06:59 +0000
Re: Using a ChangeLog as a canonical source of package metadata wxjmfauth@gmail.com - 2015-01-13 00:09 -0800
Re: Using a ChangeLog as a canonical source of package metadata Steven D'Aprano <steve@pearwood.info> - 2015-01-13 08:22 +0000
Re: Using a ChangeLog as a canonical source of package metadata Ben Finney <ben+python@benfinney.id.au> - 2015-01-14 21:59 +1100
Re: Using a ChangeLog as a canonical source of package metadata (was: Announce: PyPrimes 0.2.1a) Chris Angelico <rosuav@gmail.com> - 2015-01-09 11:16 +1100
Re: Announce: PyPrimes 0.2.1a Christian Gollwitzer <auriocus@gmx.de> - 2015-01-08 08:27 +0100
Re: Announce: PyPrimes 0.2.1a Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2015-01-08 22:20 +1100
csiph-web