Branch: refs/heads/yves/exclude_contrib
  Home:   https://github.com/Perl/perl5
  Commit: 928919c5c7197d06ebeb011e42f5f9f4d0988064
      
https://github.com/Perl/perl5/commit/928919c5c7197d06ebeb011e42f5f9f4d0988064
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M t/porting/authors.t

  Log Message:
  -----------
  t/porting/authors.t - respect .mailmap in test

The logic in checkAUTHORS.pl internally uses the "Author:" data from

    git log --pretty=fuller

which respects .mailmap entries, thus it is actually equivalent to

    git log --pretty='format:%aN %aE'

whereas "%an %ae" will show the raw uncorrected values, this can then
make authors.t think there are more and different authors than there
actually are.


  Commit: 56c877e44cce695d5d0bb2818cd3f4f6d0f3635b
      
https://github.com/Perl/perl5/commit/56c877e44cce695d5d0bb2818cd3f4f6d0f3635b
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M .mailmap
    M AUTHORS

  Log Message:
  -----------
  .mailmap - add missing entries using updateAUTHORS.pl

Currently Porting/updateAUTHORS.pl and t/porting/authors.t (via
checkAUTHORS.pl) have slightly different ideas of when data is missing,
specifcially updateAUTHORS.pl cares about .mail and checkAUTHORS.pl does
not so changes expected in .mailmap creep in undetected.

This updates the .mailmap file prior to making other changes to
updateAUTHORS.pl.

This also deals with A. Sinan Unur being listed twice in AUTHORS.


  Commit: 39e03cdb6aa6dacba91a70483f3208aae73b65be
      
https://github.com/Perl/perl5/commit/39e03cdb6aa6dacba91a70483f3208aae73b65be
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M perl.h

  Log Message:
  -----------
  perl.h - see if this makes cygwin happy

There is no attribute visibility on cygwin apparently, and the warnings
seem to overwhelm the cygwin build process.


  Commit: ca6c8a0ff96330a6b800bf7f0af6d94192ea60b7
      
https://github.com/Perl/perl5/commit/ca6c8a0ff96330a6b800bf7f0af6d94192ea60b7
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M MANIFEST
    M Porting/README.pod
    M Porting/updateAUTHORS.pl
    A Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pl - split into module Porting/updateAUTHORS.pm

As we extend the module logic mixing the docs for the module and the
command line tool becomes problematic, and it is pain passing around the
state via distinct variables. This is first step to moving to a simpler
model. We don't make much use of the OO in this patch at all, that will
come in a follow up patch.


  Commit: 605bc954c3dbac1b205bfce9d03fdfa9e4c494e6
      
https://github.com/Perl/perl5/commit/605bc954c3dbac1b205bfce9d03fdfa9e4c494e6
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pm - use object to store state and avoid passing args

It is much cleaner when the object stores its state internally. That
way we don't have to adjust the transitive caller graph when we need
something new.

Also normalize some var names, we were using "author_info" and
"authors_info" in a way that was confusing, now it is consistently
"author_info".


  Commit: 8b146f1f840361be6513bfdd28e6c5d982dfc92a
      
https://github.com/Perl/perl5/commit/8b146f1f840361be6513bfdd28e6c5d982dfc92a
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl

  Log Message:
  -----------
  updateAUTHORS.pl - rework to use the hash of options to GOL

It is easier to extend and integrate with the OO logic if we
have Getopt::Long populate a hash of options.


  Commit: 607266bad62afc5dfd388febadf4e44b986a72a9
      
https://github.com/Perl/perl5/commit/607266bad62afc5dfd388febadf4e44b986a72a9
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pm - don't update files if they don't change

If we want to just check if the files are up to date we dont want
to have to write to the disk. We will use this in a future patch.


  Commit: 93e49d7949a5e02c7fc8cae5ec2a43ab7fd97541
      
https://github.com/Perl/perl5/commit/93e49d7949a5e02c7fc8cae5ec2a43ab7fd97541
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl

  Log Message:
  -----------
  updateAUTHORS.pl - add support for verbose

Makes it easy to add diagnostics while developing.


  Commit: 79d38f54ba9452515b0730bdae2641736e32dfa7
      
https://github.com/Perl/perl5/commit/79d38f54ba9452515b0730bdae2641736e32dfa7
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.p[lm] - add support for selecting the commit range

checkAUTHORS.pl has this capability, so we need it in updateAUTHORS.pl
as well.


  Commit: ee1d487bc79e9d9711b5af5a726af54ab7c956aa
      
https://github.com/Perl/perl5/commit/ee1d487bc79e9d9711b5af5a726af54ab7c956aa
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M MANIFEST
    M Porting/README.pod
    A Porting/exclude_contrib.txt
    M Porting/updateAUTHORS.pl
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.p[lm] - add exclusion support

This add a new file Porting/exclude_contrib.txt to hold a list
of base64 SHA-256 digests of the user name and email who should be
excluded.

This adds the options

    --exclude-me
    --exclude-contrib=NAME_AND_EMAIL
    --exclude-missing

to add exclusions in different ways. --exclude-me uses the git
credentials for the current user, --exclude-contrib expects a name
and email, and --exclude-missing excludes someone who is missing from
the change log.

When excluding someone their name will be removed from AUTHORS if it is
already listed, and the relevant entries to .mailmap will be removed,
and if necessary additional exclusion entries will be added for any of
their old identities which were mentioned in .mailmap.

This feature will be used in a later patch to resolve GH issue #20010.


  Commit: 647e612fdeeea2cef556c3c9230d743833a2a9db
      
https://github.com/Perl/perl5/commit/647e612fdeeea2cef556c3c9230d743833a2a9db
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.p[lm] - add support for reports like checkAUTHORS.pl has

Adds the --stats, --files, --who, and related options similar to
what checkAUTHORS.pl offers. See perldoc Porting/updateAUTHORS.pl for
the list of options it supports.


  Commit: 35c7b7eeca720ae01036bef4a3fd969accc730af
      
https://github.com/Perl/perl5/commit/35c7b7eeca720ae01036bef4a3fd969accc730af
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pm - Fix windows support for git operations

Binmode the pipe, use tabs not nulls, and on windows use double quotes
not single quotes for arguments to subprocess scripts.

Since we weren't using Porting/updateAUTHORS.pm as part of our test
pipeline we didn't know it didnt work on Windows builds.


  Commit: 6f757f0b514a6ef25118921ecf535af66cf5ab9e
      
https://github.com/Perl/perl5/commit/6f757f0b514a6ef25118921ecf535af66cf5ab9e
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pm - use fc() for __sorted_names()

And use __sorted_names() more consistently.


  Commit: ba5bff65173e53b4930026da11bb16ee7471cd4d
      
https://github.com/Perl/perl5/commit/ba5bff65173e53b4930026da11bb16ee7471cd4d
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl

  Log Message:
  -----------
  updateAUTHORS.pl - improved pod

Improved POD verbiage.


  Commit: 76e85513fc53887601ef8ca8697d20f96370fabc
      
https://github.com/Perl/perl5/commit/76e85513fc53887601ef8ca8697d20f96370fabc
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl

  Log Message:
  -----------
  updateAUTHORS.pl - Add debugging option

This is helpful when adding a new option to updateAUTHORS.pl


  Commit: 6575759118cba046d1914fd674bf073217163947
      
https://github.com/Perl/perl5/commit/6575759118cba046d1914fd674bf073217163947
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M AUTHORS

  Log Message:
  -----------
  AUTHORS - update the blurb

The blurb is missing info and mentions checkAUTHORS.pl, at the very
least we should point at updateAUTHORS.pl instead.


  Commit: e1c1b62396ebfd1a1acef88e7b7292b41fb1cdbb
      
https://github.com/Perl/perl5/commit/e1c1b62396ebfd1a1acef88e7b7292b41fb1cdbb
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M Porting/updateAUTHORS.pl
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pl - add support for --tap

This emulates the test feature in checkAUTHORS.pl and in
t/porting/pending-author.t which overlaps with the tests that
checkAUTHORS.pl does on behalf of t/porting/authors.t

We test that the .mailmap and AUTHORS files are up to date. If the
working directory is not clean (eg git status --porcelain returns a non
empty list of files) then we also validate the git credentials in use
to make sure that if the changes were applied we would also still pass
the test.

The script implements the same logic that `git commit` uses to decide
what identity a commit would use with the exception of the last resort
measures git undertakes to use the hostname and similar files.


  Commit: a385fa4ce9af65e2d27b2d3c45b80a40a1f715f7
      
https://github.com/Perl/perl5/commit/a385fa4ce9af65e2d27b2d3c45b80a40a1f715f7
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M .mailmap
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.pm - remove redundant data from .mailmap

A number of devs have noted and raised concerns that having .mailmap
entries where the LHS and RHS of the entry is redundant. A few have also
expressed the view that this exposes unnecessarily exposes their email
address in an easily harvestible form.

On the technical level as far as git specifically is concerned it is
true this data is redundant, as git uses .mailmap to transform user data
that match the RHS of an entry into the value on LHS, and when they are
the same obviously it is a no-op. However on the technical level for our
infra these entries are not redundant. We can use them to identify and
correctly respond to many cases of manual update of the AUTHORS file,
for instance changing ones preferred name. With the .mailmap entries we
have the data to identify the old preferred name, and join it together
with the unchanged email for the user and then automatically update
their .mailmap entries. This is why these entries were created
originally.

However, I believe that this functionality is not useful enough to
require us to have discussions with contributors on this subject on a
regular basis. We can add command line options that allow people to
change the AUTHORS file and the .mailmap file properly, so we can drop
the "redundant" data and avoid the need to talk about why it is there.

The required functionality for changing names will come in a follow up
patch in this PR.


  Commit: 514f2dbdef61daf53b20b29fc5a482ae7b7ef6c5
      
https://github.com/Perl/perl5/commit/514f2dbdef61daf53b20b29fc5a482ae7b7ef6c5
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M AUTHORS
    M Porting/updateAUTHORS.pl
    M Porting/updateAUTHORS.pm

  Log Message:
  -----------
  updateAUTHORS.p[lm] - Add a way to rename authors properly

With the removal of the redundant data from .mailmap we lacked a way to
rename an author properly. Previously someone could manually update a
name or email in AUTHORS files and things would "just work" as the
.mailmap file would tell us the old mapping. Now we have removed those
mappings we need a way to easily rename someones canonical data. This
also means manually changing the AUTHORS file is now a problem.


  Commit: ebd956280e0dcf2bb17bb9b1c56df633a84c8ea4
      
https://github.com/Perl/perl5/commit/ebd956280e0dcf2bb17bb9b1c56df633a84c8ea4
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M MANIFEST
    M Porting/README.pod
    M Porting/acknowledgements.pl
    R Porting/checkAUTHORS.pl
    M Porting/exec-bit.txt
    M Porting/release_managers_guide.pod
    M README.cygwin
    M t/porting/authors.t
    R t/porting/pending-author.t

  Log Message:
  -----------
  checkAUTHORS.pl - delete and replace with updateAUTHORS.pl

updateAUTHORS.pl now can replace all the capabilities of
checkAUTHORS.pl, and checkAUTHORS.pl has a slightly different idea of
what needs to be validated, and is not aware of the
Porting/exclude_contrib.txt. Instead of teaching it to be aware and
maintaining two tools this drops checkAUTHORS.pl

In the process we move the logic for t/porting/pending-author.t into
t/porting/authors.t, by letting updateAUTHORS.pl do it as well. This is
helpful because updateAUTHORS.pl contains similar core git logic so that
it can implement some of its options.


  Commit: 2627f5bc8b1287707853c43b7d5862223d240fdd
      
https://github.com/Perl/perl5/commit/2627f5bc8b1287707853c43b7d5862223d240fdd
  Author: Yves Orton <[email protected]>
  Date:   2022-08-13 (Sat, 13 Aug 2022)

  Changed paths:
    M .mailmap
    M AUTHORS
    M Porting/exclude_contrib.txt
    M pod/perl5340delta.pod

  Log Message:
  -----------
  AUTHORS, .mailmap - resolve issue #20010

Contributor has requested they be excluded from our contributor
databases.


Compare: https://github.com/Perl/perl5/compare/3f1d1928e1d2...2627f5bc8b12

Reply via email to