Hi,
Glad to read my review helped :)
I know that the referenced PEP 345 call these things “software
packages”, but let’s try to use consistent terminology. See threads
starting at
http://mail.python.org/pipermail/distutils-sig/2011-March/017438.html
and
http://mail.python.org/pipermail/distutils-sig/2011-March/017450.html
.
I remember that discussion, but I don't actually remember if there
was
agreement on terminology. ;) I'm sympathetic to Jim's Elaboration On
PJE's
Glossary. That would make a worthy PEP for someone else to write
<wink>.
Ah, right, I probably have extrapolated the distutils2 consensus. I’m
not sure I should be the one to write this PEP, I already have enough
of
a nitpicker reputation. Maybe if a distutils-sig veteran accepts to be
a co-writer.
In this case I'm changing it to *The Bob Bundle* since that's
sufficiently
meaningless as to not be distracting.
I also think that “bundle” is a nice term to name what the docs
currently calls a distribution.
Carole maintains several namespace packages, each of which are
independently developed and distributed.
I am not sure we should advertise setuptools namespace packages,
given
that standardization is under way (PEP 382). [...]
Right. This is just a use case and it doesn't mention setuptools
specifically, even though it does mention setup.py. Everybody knows
what the
latter is, and I can't think of any better way to phrase this, so I
guess I'll
leave it.
As PJE helpfully corrected, namespaces packages are not tied to
setuptools, even though in practice they mostly are. The current PEP
text is therefore fine.
of an ``__version__`` module attribute by independent module
s/an/a/
Heh, yeah I'm old skool so I still pronounce it "under under".
Saying
"dunder" just reminds me too much of The Office to take seriously. :)
I write about Python much more than I talk about it, so I pronounce it
“version” (or more exactly, I say “init” when I talk about “__init__”,
or “underscore-underscore-init-underscore-underscore” when I need total
explicitness). I never read or heard “dunder”.
Another example of version information is the sqlite3 [5]_ library
the sqlite3 module
You overlooked that one.
#. For modules which are also packages, the top level module
namespace
SHOULD include the ``__version__`` attribute.
Just a remark: I don’t remember ever reading the term “top-level
module
namespace”. It’s not hard to understand, but it might be helpful to
some readers if you add “(i.e. the :file:`{somepackage}/__init__.py`
file)”. (The brackets will cause the enclosed text to be marked up
as
replaceable text, just a nicety.)
How about just removing "top-level"?
#. For modules which are also packages, the module namespace
SHOULD
include the ``__version__`` attribute.
I’m still not sure “module namespace” will be clear to everyone.
(Aside: using :file:`file.py` produces a warning when the PEP html is
generated:
Fooled again: it’s a Sphinx-specific role, not a docutils one. Forget
my advice and use ````.
#. The ``version`` attribute in a classic distutils ``setup.py``
file,
or the ``Version`` metadata field in a PEP 345 [7]_ SHOULD be
derived from the ``__version__`` field, or vice versa.
“In a PEP 345” what? :) file, I guess.
Oops, IIUC there really isn't a PEP 345 "thing" so I've rewritten it
like
this:
There is actually a METADATA file, but your rewrite is good without
mentioning that.
Because the distutils2 style ``setup.cfg`` is declarative, we can't
run any code to extract the ``__version__`` attribute, either via
import or via parsing. This PEP suggests a special key be allowed
for
the ``version`` field in a ``setup.cfg`` file to indicate "get the
version from this file".
With my distutils2 hat on, I recommend a KISS approach similar to
what’s
done for the long description: just define another key in the
setup.cfg
specification:
[metadata]
version-from-file: elle.py
It's an open issue, but we definitely want built-in support from
distutils2/packaging. This section was one of the main reasons why I
posted
here first, because I really wanted to get feedback on how best to
support
this in a setup.cfg file. I've changed the example to your text
above, since
it does seem cleaner. Though if we get more universal adoption of
the PEP, I
suspect version-from-file will be much more popular than version, so
we might
want to address keeping the common case simple.
Tarek already ruled last summer that field names in setup.cfg have to
have their PEP 345 name. I proposed to merge author name and email
into
the author field, and to have the description field always refer to a
file: author and author_email are still separate, and a new
description_from_file fields has been added. That’s why I think a new
field has to be defined. version-from should be a short enough name.
I
also expect most people to use copy-paste or the interactive setup.cfg
creation helper, so field name length should not be that big of an
issue.
Now on to defuse FUD on python-dev.
Regards
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig