The author/maintainer distinction problem (and PEP 621)

Going by this definition for tox this would imply 212 names and e-mails to be added to the authors list. Seems like a lot of data in there that will make reading and maintaining pyproject.toml very hard. We’ll end up with having one 500+ lines in it quickly…

People (and the PEP) are talking about the core metadata as if its ambiguous as to the intended meaning of Author vs Maintainer. It isn’t, as the definition of the Maintainer field includes the following paragraph:

Note that this field is intended for use when a project is being maintained by someone other than the original author: it should be omitted if it is identical to Author .

The intended split is quite explicitly “Original Author” (aka Project Founder) vs “Current Maintainer”.

And when only Author is specified, the core metadata spec already says that that should be interpreted as “the author is also the maintainer”.

So I don’t see anything that actually needs to change semantically here - if folks involved in a particular project don’t care about tracking the original author/current maintainer split, they can ignore the maintainer field and just use author. If they do care, they can populate both of them.

(I don’t dispute that’s there’s significant confusion in this area, but the PEP currently implies that there’s NO official statement on the semantic distinction between these two fields, and that simply isn’t true)

The fact that the current definition of those fields doesn’t allow for multiple authors or maintainers to be identified is more problematic, though. The email fields explicitly allow for multiple email addresses, but the name fields don’t allow for multiple names. That means treating them as two comma-separated lists where each name corresponds to an email is technically going beyond what the standard defines.

For PEP 621, it means accepting an array of author or maintainer identifiers is only possible if paired with an explanation of how multiple entries should be represented in the built metadata.

1 Like