summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* AUTHORS, .mailmap - resolve issue #20010Yves Orton2022-08-214-4/+2
| | | | | Contributor has requested they be excluded from our contributor databases.
* checkAUTHORS.pl - delete and replace with updateAUTHORS.plYves Orton2022-08-2110-1386/+7
| | | | | | | | | | | | | 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.
* updateAUTHORS.p[lm] - Add a way to rename authors properlyYves Orton2022-08-212-11/+70
| | | | | | | | | 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.
* updateAUTHORS.pm - remove redundant data from .mailmapYves Orton2022-08-212-1066/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* updateAUTHORS.pl - improved pod explanationsYves Orton2022-08-211-18/+93
| | | | | Improved POD verbiage. Explain how to exclude people in a more friendly way. Various other pod cleanups and improvements.
* updateAUTHORS.pl - add support for --tapYves Orton2022-08-212-5/+266
| | | | | | | | | | | | | | | | 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.
* AUTHORS - update the blurbYves Orton2022-08-211-4/+7
| | | | | The blurb mentions checkAUTHORS.pl, and we should point people at updateAUTHORS.pl instead.
* updateAUTHORS.pl - Add debugging optionYves Orton2022-08-211-0/+1
| | | | | | This is helpful when adding a new option to updateAUTHORS.pl. It not really meant for users, more for someone working on the tool itself, and thus is not documented.
* updateAUTHORS.pm - use fc() for sorting, and improved subs to do soYves Orton2022-08-211-3/+8
| | | | Use consistent hash key and list sort orders.
* updateAUTHORS.pm - Fix windows support for git operationsYves Orton2022-08-211-3/+6
| | | | | | | | 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.
* updateAUTHORS.p[lm] - add support for reports like checkAUTHORS.pl hasYves Orton2022-08-213-2/+572
| | | | | | 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.
* updateAUTHORS.p[lm] - add exclusion supportYves Orton2022-08-216-43/+387
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* updateAUTHORS.pm - use _file suffix for methods that read/update filesYves Orton2022-08-211-13/+13
| | | | | Exactly what "update_authors" does is a little less clear than what "update_authors_file" does.
* updateAUTHORS.pl - add support for a commit rangeYves Orton2022-08-212-3/+39
| | | | | | checkAUTHORS.pl supports specifying a commit range, and we actually need it even more as we do not support piping from git log (as our git log format is ungainly) so this allows us to be feature compatible.
* updateAUTHORS.pm - don't update files if they don't changeYves Orton2022-08-212-38/+110
| | | | | 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.
* updateAUTHORS.pl - add support for verboseYves Orton2022-08-212-0/+14
| | | | Makes it easy to add diagnostics while developing.
* updateAUTHORS.pl - use Getopt::Long in "hash ref" modeYves Orton2022-08-211-31/+40
| | | | | This makes it easier and simpler to add new options and extend the script in the future.
* updateAUTHORS.pm - use object to store state and avoid passing argsYves Orton2022-08-212-60/+95
| | | | | | | | | | 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".
* updateAUTHORS.pl - split into module Porting/updateAUTHORS.pmYves Orton2022-08-214-543/+631
| | | | | | | | 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.
* t/porting/update_authors.t - initial tests for Porting/updateAUTHORS.plYves Orton2022-08-212-0/+20
| | | | | | We can at least make sure it compiles... Later we can build on this, for now this sanity checks that we haven't *completely* broken the script while we refactor it.
* testsuite.yml - fix and rename "authors" CI workflow to "authors_involved_debug"Yves Orton2022-08-211-2/+4
| | | | | | | | | | | | The existing name is confusing to me, especially when the workflow gets skipped so change the name to something more intuitive. We also change it to respect .mailmap by using %aN and %aE instead of %an and %ae. We also change it to use ".." and "..." in the git log statement, and use `sort | uniq -c` instead of `sort -u`, it is helpful to see counts. We also show the resolved begin and end commits.
* t/porting/podcheck.t - ignore .bak filesYves Orton2022-08-211-1/+2
| | | | they are not pod, but rather editor droppings.
* .mailmap/AUTHORS - remove duplicate listingYves Orton2022-08-212-3/+2
| | | | | | | A. Sinan Unur was listed twice in AUTHORS, under Sinan Unur as well. This removes the dupe. This is in prep for various changes to the updateAUTHORS.pl process.
* Per-word utf8_to_bytes()Karl Williamson2022-08-202-23/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This changes utf8_to_bytes() to do a per-word initial scan to see if the source is actually downgradable, before starting the conversion. This is significantly faster than the current per-character scan. However, the speed advantage evaporates in doing the actual conversion to being a wash with the previous scheme. Thus it finds out quicker if the source is downgradable. cache grind yields this, based on a 100K character string; the non-downgradable one has the next character after that be the only one that's too large.: Key: Ir Instruction read Dr Data read Dw Data write COND conditional branches IND indirect branches _m branch predict miss _m1 level 1 cache miss _mm last cache (e.g. L3) miss - indeterminate percentage (e.g. 1/0) The numbers represent relative counts per loop iteration, compared to blead at 100.0%. Higher is better: for example, using half as many instructions gives 200%, while using twice as many gives 50%. unicode::bytes_to_utf8_legal_API_test Downgrading 100K valid characters blead proposed ------ ------ Ir 100.00 99.99 Dr 100.00 100.03 Dw 100.00 100.04 COND 100.00 100.05 IND 100.00 100.00 COND_m 100.00 87.25 IND_m 100.00 100.00 Ir_m1 100.00 123.25 Dr_m1 100.00 100.18 Dw_m1 100.00 99.94 Ir_mm 100.00 100.00 Dr_mm 100.00 100.00 Dw_mm 100.00 100.00 unicode::bytes_to_utf8_illegal Finding too high a character after 100K valid ones blead fast ------ ------ Ir 100.00 188.91 Dr 100.00 179.77 Dw 100.00 66.75 COND 100.00 278.47 IND 100.00 100.00 COND_m 100.00 88.71 IND_m 100.00 100.00 Ir_m1 100.00 121.86 Dr_m1 100.00 100.01 Dw_m1 100.00 100.03 Ir_mm 100.00 100.00 Dr_mm 100.00 100.00 Dw_mm 100.00 100.00
* Updated Module::CoreList ready for 5.37.4Neil Bowers2022-08-203-3/+29
|
* Bumping perl version in various places for 5.37.4Neil Bowers2022-08-2020-126/+126
|
* new perldelta for 5.37.4Neil Bowers2022-08-2010-112/+561
|
* marked 5.37.3 as done in the release scheduleNeil Bowers2022-08-201-1/+1
|
* Updated epigraphs.pod with the epigraph for 5.37.3Neil Bowers2022-08-201-1/+7
|
* Late addition to perldelta for a change related to FreeBSDv5.37.3Neil Bowers2022-08-201-0/+10
|
* Added 5.37.3 to perlhistNeil Bowers2022-08-201-0/+1
|
* updated perldelta for CPAN module changesNeil Bowers2022-08-201-30/+92
|
* Update Module::CoreList for 5.37.3Neil Bowers2022-08-202-16/+45
|
* perldelta WIPNeil Bowers2022-08-201-295/+2
|
* Updates from Porting/updateAUTHORS.plNeil Bowers2022-08-201-0/+3
|
* version of Module-CoreList wasn't matching what's on CPANNeil Bowers2022-08-201-1/+1
| | | | | BinGOs told me that this updated was all that was required, and I chose to trust him.
* Importing Socket 2.036 from CPANNeil Bowers2022-08-203-9/+10
|
* Import Scalar-Util 1.63 from CPANNeil Bowers2022-08-207-11/+11
|
* Importing Filter 1.64 from CPANNeil Bowers2022-08-203-4/+4
|
* Import ExtUtils-PL2Bat 0.005 from CPANNeil Bowers2022-08-202-2/+7
|
* Make freebsd not use POSIX 2008 localesKarl Williamson2022-08-201-0/+3
| | | | | | https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265950 We do not yet know the extent of the problem.
* makedef: Export certain symbolsKarl Williamson2022-08-191-5/+0
| | | | | | | | This fixes #20090 These symbols were changed by fcbef0e to be defined in more Configurations, but as @bram-perl pointed out, makedef.pl didn't also change to export them in those expanded situations.
* dl_dyld.xs should not create a `mode` variable only to ignore itNicholas Clark2022-08-192-5/+3
| | | | | | | | | This unused variable dates back to when the file was first added. The code was structured as a static C wrapper emulating the dlopen() API with the native APIs, and then a copy of the existing XS code that called dlopen(). However, there is (and was) no need to keep it exactly this way, as the wrapper is only visible inside this file, meaning that it does not need to conform to any externally defined prototype.
* Pathtools: update version info in files meta.json and meta.xml to adapt the ↵小鸡2022-08-194-2/+4
| | | | real module version
* fix t/porting/authors.t detection of merge commitsGraham Knop2022-08-181-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git-rev-parse HEAD^2` was used to detect if HEAD was a merge commit. When HEAD is not a merge commit then HEAD^2 produces an error; When HEAD is a merge commit then HEAD^2 points to the second parent. The problem was that `git rev-parse "HEAD^2"` also produced output on STDOUT which caused `$revision_range` to be set to something bogus. Example: $ git rev-parse HEAD^2 2>/dev/null ; echo $? HEAD^2 128 $ git log HEAD^1..HEAD^2 fatal: ambiguous argument 'HEAD^1..HEAD^2': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' The fix is to use --verify which doesn't give output on STDOUT for something invalid. It does print an error on STDERR (for invalid things) which can be silenced using -q $ git rev-parse --verify HEAD^2 fatal: Needed a single revision $ git rev-parse -q --verify HEAD^2 $ For an actual merge commit: $ git rev-parse -q --verify e91a97a^2 bee6601bbf238b5366ce11cd41f6b095bfeebfd8 (i.e. working as expected)
* diag.t: Rmv obsolete don't caresKarl Williamson2022-08-181-24/+0
| | | | | | | | | These messages are obsolete. They exist to tell perl not to complain when it finds a matching diagnostic that isn't listed in perldiag. But the messages don't get generated any more, so running the test without them still passes. Many of these were spotted by @bram-perl
* diag.t: Collapse "Function not implemented" entriesKarl Williamson2022-08-181-23/+7
| | | | | These are clear enough without explanation in perldiag. There's a bunch of them that can be represented by just one.
* diag.t: Collapse all Usage: entriesKarl Williamson2022-08-181-16/+3
| | | | | These are clear enough without explanation in perldiag. There's a bunch of them that can really be represented by just one.
* plan9/plan9.c: Rmv double spaceKarl Williamson2022-08-181-1/+1
| | | | This diagnostic is the outlier of all the other ones.
* Fix make_patchnum.pl when run from subdirBram2022-08-181-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running 'make_patchnum.pl' from a subdir then 'make_patchnum.pl' failed to write a proper lib/Config_git.pl. That is: all values in it were set to the empty string instead to the actual values. Example: $ cd perl5 $ mkdir foo && cd $foo $ ../miniperl -I../lib ../make_patchnum.pl Updating 'git_version.h' and 'lib/Config_git.pl' $ cat ../lib/Config_git.pl ###################################################################### # WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl # DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead ###################################################################### $Config::Git_Data=<<'ENDOFGIT'; git_commit_id='' git_describe='' git_branch='' git_uncommitted_changes='' git_commit_id_title='' This got broken in commit 3f1788e11f2685299067ac0f8d3e4fd141a5b5cd which added support for -Dmksymlink. That commit basically assumed that the stating point was always '.' and that the './.git' directory exist. Neither are true when the command is run from inside a subdir. The proper thing to do is to first find the `$root` directory and then check if it's in -Dmksymlinks target dir. (Luckily all that code already exists, we just need to move the -Dmksymlinks logic a bit down.) With this change applied: $ ../miniperl -I../lib ../make_patchnum.pl Updating 'git_version.h' and 'lib/Config_git.pl' $ cat lib/Config_git.pl ###################################################################### # WARNING: 'lib/Config_git.pl' is generated by make_patchnum.pl # DO NOT EDIT DIRECTLY - edit make_patchnum.pl instead ###################################################################### $Config::Git_Data=<<'ENDOFGIT'; git_commit_id='c589bf60082d119a14e11ef05a77fed6d36aba4b' git_describe='v5.37.2-170-gc589bf6' git_branch='bram/fix-make_patchnum-in-subdir' git_uncommitted_changes='0' git_commit_id_title='Commit id:' git_commit_date='2022-08-16 15:49:38 +0200' ENDOFGIT Note: - to build on Windows one must do a `cd win32` before building. This is how I noticed the file was incorrect. - I've tested running make_patchnum from: * the root * a subdir * a '-Dmksymlinks' target dir * a subdir inside a '-Dmksymlinks' target (PS: I also fixed the indentation from tabs to 4 spaces)