On Thu, 21 Jan 2016 at 20:24 Nick Coghlan <ncoghlan@gmail.com> wrote:
On 22 January 2016 at 03:21, Brett Cannon <brett@python.org> wrote:
> If I remember correctly, the original argument for not going generic is
> there is no guarantee future VCSs will have similar semantics that will fit
> into whatever tuple or dict structure we chose.

Yep, the name of the attribute conveys how to interpret it, while a
generic name means you need some *other* data source to tell you "OK,
up to version X.Y it's a subversion version, up to 3.5 it's a
Mercurial hash, in 3.6+ it's a git hash..."

With the attribute changing names, folks trying to use the VCS info at
least get a really clear indicator when we change version control
systems, even if they're not closely following upstream process
changes.

Actually, do people find the sys._mercurial attribute useful? I just want to double-check that this is worth continually going through this every few years when we change VCSs to swap in a new attribute.

I will definitely update the PEP to set sys._mercurial to `('CPython', '', '')` (the attribute isn't even documented so there's no real deprecation to do).