New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PEP 314 inconsistency (authors/author/maintainer) #51241
Comments
setup.py should allow to specify multiple authors in package description. |
You can add them in the author field, separated by a space. |
I want to add their emails also. What to write in author_email in this Will such author be parsed by various tools? By PyPi, for example, so that |
Right, it's not handy for the emails. PyPI will display the author field, followed by the author_email field. But no tool is handling the Author and Author-email fields as Maybe we could extend the Metadata by adding a multi-valued In the Metadata file, things would look like this: {{{ Where the third field is optional (default: "contributor"). On setup.py this would be a 'contributors' list: {{{ Then, 'author' and 'maintainer' would be deprecated, but still filled this would be added in 2.7, 3.2 and PyPI would have to change accordingly. |
Too complicated. I think any who significantly contributed to some {{{ <email@xxx> part is optional. Simple, intuitive, readable and easy |
Notice that there's another issue: maintainer is not written in the Plus, PyPI has its own role system: owner+maintainer, that has nothing So at the end, if we don't manage roles at the Metadata level, Having the mail like you've described is a good idea too. |
Having single |
The good pratice, if there are several authors, is to setup a I don't think we should multiply those fields in order to accomodate for |
What you are saying is that a project should have one and only one What about having a "Contact-email" then that would replace the Having an extra email in each Author field would be allowed but not |
Why do we have to add new fields and deprecate others? Just for the sake If you have several authors, you can separate them with commas in the Not every wish for a new "feature" should be satisfied, IMO. Besides, |
The metadata are completely messy. Users are already confused. For instance, since the metadata fields are not fully corresponding to To fill the "Home-url" metadata, the argument is called "url". So what we would gain is more clarity (as already discussed in other issues) We are already discussing the addition of new fields in PEP-341 for Replacing the author/author_email/maintainer/maintainer_email mess with |
What does changing the type of the "author" field make clearer exactly? While there may be some things to clear up in the current metadata, this |
It "Author" not "Authors", that's the difference. Like we have Plus, I am not breaking any compatibility here. A multi-value field in the metadata in Distutils just means that you {{{ And that Distutils will be able to recognized both forms, exactly like
I don't know who you are reffering to, but if you look carefully at the I am bothered that more and more are people constantly jumping on my Any change to the metadata fields will require a PEP-341 change, so But saying that making the metadata evolve "is not the way we will make |
Most of the meta data is parsed by humans, so I don't see any We already have authors and maintainers (which causes confusion), so I don't think we should grow the package meta-data beyond what's I'd close this ticket as "works for me". |
This is not "jumping on your back", this is being skeptical about a
A metadata system, by definition, has to remain reasonably stable (or be If the ID3 spec was rewritten every five years so that you couldn't read |
Not on the Metadata side though. That's only on setup() side. The So being able to have several Authors (not yet another field, an This is not a big change on the metadata format, it just means that we OTHO, deprecating "maintainer" and "maintainer_email" on setup() side, |
Tarek Ziadé wrote:
In order to clear up the inconsistency with maintainer not Regarding making the meta-data fields multi-valued, you have I still believe that we're better off with a single Author Adding "authors" as new keyword argument to setup() isn't |
That's already the case. We have 1.0 and 1.1. 1.1 is used if you add fields like "obsoletes".
Yes, that why the proposed change is backward compatible: it doesn't |
Do you remember what's the story behind those two fields ? I am not sure about the community usage of those since they are competng |
Tarek Ziadé wrote:
I don't really remember, but suppose that the field was IMHO, the maintainer could have just added the new contact
PyPI just shows the "Author" field, so if a package has different Adding the maintainer field as well would resolve the issue. |
True. Some packages already do this.
People who use Python are usually smart enough to include all authors
Well, I am writing a plugin and I my framework doesn't parse CREDITS,
Type of
I think it should go into another
+1
Right, but then what author_email field is for? It looks almost
That's why it should be new
This quote is totally confusing. Sounds WAY too complicated. If you're I suspect that there are some meta-internals of Distutils that I must
I thought that setup.py metadata format is extensible. Let's leave |
anatoly techtonik wrote:
Right, but then we have: author for consitency, we'd also need: author_emails That's even more confusing than what we already have and
No idea. I think it was a YAGNI which was not really needed.
The first part of the quote should be clear. We need a new The second part is something to consider when switching from The meta-data file in distutils uses the RFC 822 header format However, if code assumes that there's only one "Author" header, In summary, all that needs to be done is:
|
In my mind the "perfect" situation would be just two arguments:
And deprecate the others. The "maintainer" concept is not on the metadata side, so it's not used Adding it in the metadata adds more confusion imho than deprecate its
So I am -1 adding Maintainer/Maintainer-email in the Metadata. Now for the "Contact-email", it guess it's OK to keep "author_email -> So at the end, the changes on distutils setup() side would be:
So the metadata doesn't change and we have what we want. |
Tarek Ziadé wrote:
-1 on that idea :-) The meta-data is only used by PyPI and perhaps a handful Overall, I find the presented use case not really relevant The addition of the maintainer meta-data field would not The rest is just documenting best practices. |
since PyPI has its own Role system (owner, maintainer) managed by the When an author is not maintaining a package anymore, and an extra name So what would be the gain to distinguish maintainers form authors, and |
Tarek Ziadé wrote:
PyPI is just an application using the meta-data - and the only one I'm just suggesting to add the meta-data field in order to recreate
That's up for the package owners to sort out. I would expect the |
Yes but fixing this inconsitency can be done on either side: While I understand your PoV about the fact that B/ is not impacting If we don't have a use case, I'd go for A/ |
Hello, funny the bug report should surface in the very same time I was looking [Antoine Pitrou (pitrou)]
I believe I have such a use case. I'm in the middle of taking over a [Antoine Pitrou (pitrou)]
I'm just a regular user and when I see a field described as a 'meta' one Of course one can put anything they wish into 'author', it could even If someone were to ask me then I'd say there should only be the 'author' author = 'Foo Bar <foobar@example.com>'
author = ['Foo Bar <foobar@example.com>', 'Baz Frobble
<bazfrobble@example.com>'] But hey, I still very much like distutils :-) and I understand all the |
I wonder what does Guido think about this bikeshed? |
Tarek Ziadé wrote:
Having a maintainer for a package is not at all uncommon. Whether you put that maintainer into a separate field or not I'd go for B, since we already have the maintainer setup() Whether this gets used or not is up to 3rd party code |
Please, be specific. PyPi maintainer or trac-plugin package maintainer
Is distutils format extensible? Can you create example of extending |
anatoly techtonik wrote:
>
> anatoly techtonik <techtonik@gmail.com> added the comment:
>
>>> Tarek Ziadé <ziade.tarek@gmail.com> added the comment:
>
>>> Yes but fixing this inconsitency can be done on either side:
>>> A - remove the maintainer and maintainer_email
>>> B - add the Maintainer and Maintainer-email in the metadata
>
>>> If we don't have a use case, I'd go for A/
>>
>> Having a maintainer for a package is not at all uncommon.
>>
>> Whether you put that maintainer into a separate field or not
>> is really a mix of respect/taste/culture.
>
> Please, be specific. PyPi maintainer or trac-plugin package maintainer
> or debian package maintainer? Which should be mentioned in debian
> package for a trac plugin uploaded to PyPi for easy_install? The maintainer of the plugin.
The meta-data format is versioned, so it's well possible to It's even possible to extend if in custom setup scripts, |
On Tue, Oct 6, 2009 at 4:04 PM, Marc-Andre Lemburg
So, the maintainer of the plugin is mentioned in setup.py, but this
No, that's not the way. Suppose we have three independent external
As you may see I definitely do not know my way in distutils. =) Can |
anatoly techtonik wrote:
>
> anatoly techtonik <techtonik@gmail.com> added the comment:
>
> On Tue, Oct 6, 2009 at 4:04 PM, Marc-Andre Lemburg
> <report@bugs.python.org> wrote:
>>>
>>> Please, be specific. PyPi maintainer or trac-plugin package maintainer
>>> or debian package maintainer? Which should be mentioned in debian
>>> package for a trac plugin uploaded to PyPi for easy_install?
>>
>> The maintainer of the plugin.
>>
>
> So, the maintainer of the plugin is mentioned in setup.py, but this
> field is also used in PyPi and the person who maintains it there wants
> some attribution. Should this person change maintainer field to
> himself? We have a long description field for such things. If you look on PyPI
There's only one official distutils meta-format: that of core distutils. Up until now, we've only added new fields, so old tools will
I don't have time for such challenges. Like I said: it's possible I also don't think that distutils meta data should be used |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: