{"thread":{"id":"50008","subject":"[RFC] A global mailmap service","startedAt":"2018-12-11T16:42:58Z","lastAt":"2018-12-13T06:01:02Z","messageCount":3,"participants":["Lukas Fleischer","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"365101","messageId":"154454625546.29948.6229097078125430492@typhoon","threadId":"50008","inReplyTo":null,"subject":"[RFC] A global mailmap service","fromName":"Lukas Fleischer","fromEmail":"lfleischer@lfos.de","sentAt":"2018-12-11T16:37:35Z","receivedAt":"2018-12-11T16:42:58Z","isPatch":false,"sender":{"key":"lfleischer@lfos.de","avatar":"https://avatars.githubusercontent.com/u/5530842?v=4"},"body":"I came up with the idea of creating a global mailmap service earlier\nthis year and, given a recent discussion on maintaining .mailmap, I\ndecided to bring it up here. While only marginally related to Git\ndevelopment, I hope that it is relevant enough to not be considered\nspam.\n\nThe basic idea of the service I imagine is simple:\n\n1. You register a primary email address and specify a password. You\n   receive a verification email to confirm that the address is yours.\n\n2. At any time, you can add additional email addresses and link them to\n   your primary email address, using your previously specified password.\n   You can also update your primary email address. Any new addresses\n   obtain verification emails such that you cannot steal somebody else's\n   identity.\n\n3. Anybody can use a public lookup interface to obtain the current\n   primary email address corresponding to any registered email address\n   they enter.\n\nAccording to the principle of data economy, the full list of email\naddresses is kept private. An email address is only returned if the user\nperforming a lookup already owns a (possibly outdated) email address of\nthe same user.\n\nA batch query to the service can be used to automatically generate a\n.mailmap file without having to maintain it on a per-project basis and\nwithout having to be careful and confirm every entry manually.\n\nI created a PoC here [1]. You can run\n\n    git log --pretty='%ae' | sort -u | curl -Ftopic=git -Femails='<-' https://mailmap.org/\n\nfrom the Git source tree to auto-generate a .mailmap file. Of course,\nthis idea only works if people agree that it is useful and the majority\nof developers register their email addresses to the service.\n\nI am aware that some users use different email addresses for different\nprojects. The current approach is allowing the user to add primary\n\"topic email addresses\". A request can optionally specify a topic (such\nas \"git\" in the request above) and the lookup may potentially return an\nemail address different from the generic primary address. Of course,\nthese topics need to be standardized in some way. There might be better,\nmore sophisticated ways to tackle this and I'd be happy to discuss them\nif there is interest in the general approach.\n\nI am also aware that this may not cover all potential uses of .mailmap\nfiles but, according to my understanding and experience, it should cover\na fairly large amount. The remaining adjustments can still be made on\ntop on a per-project basis.\n\nBest regards,\nLukas\n\n[1] https://mailmap.org/\n"},{"id":"365212","messageId":"xmqq1s6mi30u.fsf@gitster-ct.c.googlers.com","threadId":"50008","inReplyTo":"154454625546.29948.6229097078125430492@typhoon","subject":"Re: [RFC] A global mailmap service","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2018-12-13T02:17:21Z","receivedAt":"2018-12-13T02:17:26Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Lukas Fleischer <lfleischer@lfos.de> writes:\n\n> The basic idea of the service I imagine is simple:\n>\n> 1. You register a primary email address and specify a password. You\n>    receive a verification email to confirm that the address is yours.\n\nI would do so with my current, reachable address, I'd presume.\n\n> 2. At any time, you can add additional email addresses and link them to\n>    your primary email address, using your previously specified password.\n>    You can also update your primary email address. Any new addresses\n>    obtain verification emails such that you cannot steal somebody else's\n>    identity.\n\nWith this, I won't be able to add my ancient identities that appear\nin our history.  I would imagine that one of the common reasons\npeople use different identities in a project is that people changed\ne-mail providers or jobs.\n\n"},{"id":"365227","messageId":"154468094076.20389.13548760312672321478@typhoon","threadId":"50008","inReplyTo":"xmqq1s6mi30u.fsf@gitster-ct.c.googlers.com","subject":"Re: [RFC] A global mailmap service","fromName":"Lukas Fleischer","fromEmail":"lfleischer@lfos.de","sentAt":"2018-12-13T06:02:20Z","receivedAt":"2018-12-13T06:01:02Z","isPatch":false,"sender":{"key":"lfleischer@lfos.de","avatar":"https://avatars.githubusercontent.com/u/5530842?v=4"},"body":"On Thu, 13 Dec 2018 at 03:17:21, Junio C Hamano wrote:\n> Lukas Fleischer <lfleischer@lfos.de> writes:\n> \n> > The basic idea of the service I imagine is simple:\n> >\n> > 1. You register a primary email address and specify a password. You\n> >    receive a verification email to confirm that the address is yours.\n> \n> I would do so with my current, reachable address, I'd presume.\n\nCorrect.\n\n> \n> > 2. At any time, you can add additional email addresses and link them to\n> >    your primary email address, using your previously specified password.\n> >    You can also update your primary email address. Any new addresses\n> >    obtain verification emails such that you cannot steal somebody else's\n> >    identity.\n> \n> With this, I won't be able to add my ancient identities that appear\n> in our history.  I would imagine that one of the common reasons\n> people use different identities in a project is that people changed\n> e-mail providers or jobs.\n> \n\nWell, this is only a temporary issue. It holds for your current ancient\nidentities but won't hold for your ancient identities in the far future\nbecause ancient times have always been present at some point in time. If\nwe agreed that most people register their current email addresses from\nnow on, we'd limit the issue to email addresses which were abandoned\nbefore 2018-12-13. As projects grow, this will become a small fraction.\nProjects started in the far future won't be affected at all.\n\nAs a short-term solution, we could keep the current mappings as\ncomplementary mappings in the local .mailmap files.\n\nThat being said, I also had the idea of importing old mappings to the\nservice. There are two approaches that crossed my mind:\n\n1. Link email addresses according to the .mailmap files of popular\n   trusted projects, such as Git or the Linux kernel. One of the issues\n   with this approach is that \"topic email addresses\", i.e. project\n   specific preferences, may not be mapped correctly. Maybe it doesn't\n   matter too much.\n\n2. Add the option to register a \"dead\" email address to the service.\n   Instead of sending a verification email, the service sends a warning\n   stating that the email address will be linked if no action is taken.\n   It contains a link where the user can cancel the request and block\n   the email address from further requests. Another such warning is sent\n   after a couple of days. After a grace period with no action taken,\n   the address is linked. Not optimal but with additional measures such\n   as rate limits to prevent from abuse, this might be good enough.\n\nBest regards,\nLukas\n"}]}