git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* --creation-factor=100 does not show code
@ 2022-07-26 12:54 Eugen Konkov
  2022-07-28 14:59 ` Johannes Schindelin
  0 siblings, 1 reply; 17+ messages in thread
From: Eugen Konkov @ 2022-07-26 12:54 UTC (permalink / raw)
  To: Git Mailing List

$ git range-diff --creation-factor=100 branch...origin/branch
1:  a87daecd47 < -:  ---------- Add mocked exchanges for ...::AutoRenew::General test
-:  ---------- > 1:  36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test
2:  9594ccf145 = 2:  70681dd13b Remove a call to DB::state
3:  740903e01c = 3:  5745ae5702 Run cpanm without tests
4:  e8e6cac09c < -:  ---------- Do not use 'require'

--creation-factor=101 does =)

but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided
-- 
Best regards,
Eugen Konkov


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: --creation-factor=100 does not show code
  2022-07-26 12:54 --creation-factor=100 does not show code Eugen Konkov
@ 2022-07-28 14:59 ` Johannes Schindelin
  2022-07-28 16:52   ` Re* " Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Johannes Schindelin @ 2022-07-28 14:59 UTC (permalink / raw)
  To: Eugen Konkov; +Cc: Git Mailing List

Hi Eugen,

On Tue, 26 Jul 2022, Eugen Konkov wrote:

> $ git range-diff --creation-factor=100 branch...origin/branch
> 1:  a87daecd47 < -:  ---------- Add mocked exchanges for ...::AutoRenew::General test
> -:  ---------- > 1:  36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test
> 2:  9594ccf145 = 2:  70681dd13b Remove a call to DB::state
> 3:  740903e01c = 3:  5745ae5702 Run cpanm without tests
> 4:  e8e6cac09c < -:  ---------- Do not use 'require'
>
> --creation-factor=101 does =)
>
> but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided

Please see https://git-scm.com/docs/git-range-diff#_algorithm for an
explanation what the meaning of the factor is, and why 100 is not the
maximal sensible value.

Ciao,
Johannes

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re* --creation-factor=100 does not show code
  2022-07-28 14:59 ` Johannes Schindelin
@ 2022-07-28 16:52   ` Junio C Hamano
  2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
                       ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Junio C Hamano @ 2022-07-28 16:52 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Eugen Konkov, Git Mailing List

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> Hi Eugen,
>
> On Tue, 26 Jul 2022, Eugen Konkov wrote:
>
>> $ git range-diff --creation-factor=100 branch...origin/branch
>> 1:  a87daecd47 < -:  ---------- Add mocked exchanges for ...::AutoRenew::General test
>> -:  ---------- > 1:  36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test
>> 2:  9594ccf145 = 2:  70681dd13b Remove a call to DB::state
>> 3:  740903e01c = 3:  5745ae5702 Run cpanm without tests
>> 4:  e8e6cac09c < -:  ---------- Do not use 'require'
>>
>> --creation-factor=101 does =)
>>
>> but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided
>
> Please see https://git-scm.com/docs/git-range-diff#_algorithm for an
> explanation what the meaning of the factor is, and why 100 is not the
> maximal sensible value.

When I had to give a huge value to the option the last time, I think
I used --creation-factor=999 or something.  The thing that bugged me
in the output of "git range-diff --help" is that SYNOPSIS section
has "--creation-factor=<factor>" but the OPTIONS heading says
"--creation-factor=<percent>" and the word is used in description as
well.

----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----
Subject: range-diff: clarify --creation-factor=<factor>

The value is not a per-cent that ranges from 0 to 100.  The SYNOPSIS
section gets it right, but the body of the documentation said "percent"
which confused readers.

While we are at it, rephrase "smaller one" that corresponds to
"larger value" earlier in the sentence to "smaller value" to be more
explicit, to avoid misleading eyes of the readers to an unrelated "a
large change" nearby.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 Documentation/git-range-diff.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git c/Documentation/git-range-diff.txt w/Documentation/git-range-diff.txt
index fe350d7f40..e49630e8ad 100644
--- c/Documentation/git-range-diff.txt
+++ w/Documentation/git-range-diff.txt
@@ -61,11 +61,11 @@ This is known to `range-diff` as "dual coloring". Use `--no-dual-color`
 to revert to color all lines according to the outer diff markers
 (and completely ignore the inner diff when it comes to color).
 
---creation-factor=<percent>::
-	Set the creation/deletion cost fudge factor to `<percent>`.
+--creation-factor=<factor>::
+	Set the creation/deletion cost fudge factor to `<factor>`.
 	Defaults to 60. Try a larger value if `git range-diff` erroneously
 	considers a large change a total rewrite (deletion of one commit
-	and addition of another), and a smaller one in the reverse case.
+	and addition of another), and a smaller value in the reverse case.
 	See the ``Algorithm`` section below for an explanation why this is
 	needed.
 



^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-28 16:52   ` Re* " Junio C Hamano
@ 2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
  2022-07-28 17:44       ` Junio C Hamano
  2022-07-28 17:49     ` [PATCH] format-patch: clarify --creation-factor=<factor> Eric Sunshine
  2022-07-29 13:16     ` Re* --creation-factor=100 does not show code Johannes Schindelin
  2 siblings, 1 reply; 17+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2022-07-28 17:12 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, Eugen Konkov, Git Mailing List


On Thu, Jul 28 2022, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
>> Hi Eugen,
>>
>> On Tue, 26 Jul 2022, Eugen Konkov wrote:
>>
>>> $ git range-diff --creation-factor=100 branch...origin/branch
>>> 1:  a87daecd47 < -:  ---------- Add mocked exchanges for ...::AutoRenew::General test
>>> -:  ---------- > 1:  36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test
>>> 2:  9594ccf145 = 2:  70681dd13b Remove a call to DB::state
>>> 3:  740903e01c = 3:  5745ae5702 Run cpanm without tests
>>> 4:  e8e6cac09c < -:  ---------- Do not use 'require'
>>>
>>> --creation-factor=101 does =)
>>>
>>> but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided
>>
>> Please see https://git-scm.com/docs/git-range-diff#_algorithm for an
>> explanation what the meaning of the factor is, and why 100 is not the
>> maximal sensible value.
>
> When I had to give a huge value to the option the last time, I think
> I used --creation-factor=999 or something.  The thing that bugged me
> in the output of "git range-diff --help" is that SYNOPSIS section
> has "--creation-factor=<factor>" but the OPTIONS heading says
> "--creation-factor=<percent>" and the word is used in description as
> well.
>
> ----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----
> Subject: range-diff: clarify --creation-factor=<factor>
>
> The value is not a per-cent that ranges from 0 to 100.  The SYNOPSIS
> section gets it right, but the body of the documentation said "percent"
> which confused readers.
>
> While we are at it, rephrase "smaller one" that corresponds to
> "larger value" earlier in the sentence to "smaller value" to be more
> explicit, to avoid misleading eyes of the readers to an unrelated "a
> large change" nearby.
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>  Documentation/git-range-diff.txt | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git c/Documentation/git-range-diff.txt w/Documentation/git-range-diff.txt
> index fe350d7f40..e49630e8ad 100644
> --- c/Documentation/git-range-diff.txt
> +++ w/Documentation/git-range-diff.txt
> @@ -61,11 +61,11 @@ This is known to `range-diff` as "dual coloring". Use `--no-dual-color`
>  to revert to color all lines according to the outer diff markers
>  (and completely ignore the inner diff when it comes to color).
>  
> ---creation-factor=<percent>::
> -	Set the creation/deletion cost fudge factor to `<percent>`.
> +--creation-factor=<factor>::
> +	Set the creation/deletion cost fudge factor to `<factor>`.
>  	Defaults to 60. Try a larger value if `git range-diff` erroneously
>  	considers a large change a total rewrite (deletion of one commit
> -	and addition of another), and a smaller one in the reverse case.
> +	and addition of another), and a smaller value in the reverse case.
>  	See the ``Algorithm`` section below for an explanation why this is
>  	needed.
>  

That algorithm section also says:

	The cost of an edge o--C is the size of C's diff, modified by a
	fudge factor that should be smaller than 100%.

Which I find quite confusing to follow, isn't that "fudge factor" the
<percent> (or <factor>) we're accepting with --creation-factor? Doesn't
that also need to be adjusted?

I still find this documentation quicke lacking, if the default is 60 and
it's not 0..100 what is it then? Are values of 200 sensible in some
cases, 1k? 10k?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
@ 2022-07-28 17:44       ` Junio C Hamano
  2022-07-28 19:46         ` Ævar Arnfjörð Bjarmason
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2022-07-28 17:44 UTC (permalink / raw)
  To: Johannes Schindelin
  Cc: Ævar Arnfjörð Bjarmason, Eugen Konkov,
	Git Mailing List

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:

> That algorithm section also says:
>
> 	The cost of an edge o--C is the size of C's diff, modified by a
> 	fudge factor that should be smaller than 100%.
>
> Which I find quite confusing to follow, isn't that "fudge factor" the
> <percent> (or <factor>) we're accepting with --creation-factor? Doesn't
> that also need to be adjusted?
>
> I still find this documentation quicke lacking, if the default is 60 and
> it's not 0..100 what is it then? Are values of 200 sensible in some
> cases, 1k? 10k?

I think 90% of your responses are better answered not by me.  Feel
free to edit "to:" header field when that happens next time ;-)

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-28 16:52   ` Re* " Junio C Hamano
  2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
@ 2022-07-28 17:49     ` Eric Sunshine
  2022-07-28 20:55       ` Ævar Arnfjörð Bjarmason
  2022-07-29 13:16     ` Re* --creation-factor=100 does not show code Johannes Schindelin
  2 siblings, 1 reply; 17+ messages in thread
From: Eric Sunshine @ 2022-07-28 17:49 UTC (permalink / raw)
  To: git
  Cc: Junio C Hamano, Ævar Arnfjörð Bjarmason,
	Johannes Schindelin, Eugen Konkov, Eric Sunshine

The value is not a percentage that ranges from 0 to 100, so stop
referring to it as `percent`; instead follow the lead of the `git
range-diff` documentation and call it `factor`.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---

This is a sibling to Junio's patch[1].

[1]: https://lore.kernel.org/git/xmqqo7x9ch7n.fsf_-_@gitster.g/

 Documentation/git-format-patch.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
index be797d7a28..e06475abcd 100644
--- a/Documentation/git-format-patch.txt
+++ b/Documentation/git-format-patch.txt
@@ -27,7 +27,7 @@ SYNOPSIS
 		   [--[no-]encode-email-headers]
 		   [--no-notes | --notes[=<ref>]]
 		   [--interdiff=<previous>]
-		   [--range-diff=<previous> [--creation-factor=<percent>]]
+		   [--range-diff=<previous> [--creation-factor=<factor>]]
 		   [--filename-max-length=<n>]
 		   [--progress]
 		   [<common diff options>]
@@ -321,7 +321,7 @@ product of `format-patch` is generated, and they are not passed to
 the underlying `range-diff` machinery used to generate the cover-letter
 material (this may change in the future).
 
---creation-factor=<percent>::
+--creation-factor=<factor>::
 	Used with `--range-diff`, tweak the heuristic which matches up commits
 	between the previous and current series of patches by adjusting the
 	creation/deletion cost fudge factor. See linkgit:git-range-diff[1])
-- 
2.37.1.550.gb06344481a


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-28 17:44       ` Junio C Hamano
@ 2022-07-28 19:46         ` Ævar Arnfjörð Bjarmason
  2022-07-28 19:54           ` Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2022-07-28 19:46 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Johannes Schindelin, Eugen Konkov, Git Mailing List


On Thu, Jul 28 2022, Junio C Hamano wrote:

> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> That algorithm section also says:
>>
>> 	The cost of an edge o--C is the size of C's diff, modified by a
>> 	fudge factor that should be smaller than 100%.
>>
>> Which I find quite confusing to follow, isn't that "fudge factor" the
>> <percent> (or <factor>) we're accepting with --creation-factor? Doesn't
>> that also need to be adjusted?
>>
>> I still find this documentation quicke lacking, if the default is 60 and
>> it's not 0..100 what is it then? Are values of 200 sensible in some
>> cases, 1k? 10k?
>
> I think 90% of your responses are better answered not by me.  Feel
> free to edit "to:" header field when that happens next time ;-)

It's a comment on your patch: If you're updating the <percent> early in
the doc, shouldn't the proposed update also update the wording later on
to refer to "factor?"


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-28 19:46         ` Ævar Arnfjörð Bjarmason
@ 2022-07-28 19:54           ` Junio C Hamano
  0 siblings, 0 replies; 17+ messages in thread
From: Junio C Hamano @ 2022-07-28 19:54 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Johannes Schindelin, Eugen Konkov, Git Mailing List

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:

> On Thu, Jul 28 2022, Junio C Hamano wrote:
>
>> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>>
>>> That algorithm section also says:
>>>
>>> 	The cost of an edge o--C is the size of C's diff, modified by a
>>> 	fudge factor that should be smaller than 100%.
>>>
>>> Which I find quite confusing to follow, isn't that "fudge factor" the
>>> <percent> (or <factor>) we're accepting with --creation-factor? Doesn't
>>> that also need to be adjusted?
>>>
>>> I still find this documentation quicke lacking, if the default is 60 and
>>> it's not 0..100 what is it then? Are values of 200 sensible in some
>>> cases, 1k? 10k?
>>
>> I think 90% of your responses are better answered not by me.  Feel
>> free to edit "to:" header field when that happens next time ;-)
>
> It's a comment on your patch: If you're updating the <percent> early in
> the doc, shouldn't the proposed update also update the wording later on
> to refer to "factor?"

Per-cent in "100%" is clearly a unit.  I do not know what to use to
replace the mention of "100%" with.  Rewriting it to "... should be
smaller than 100-factor" does not result in a sensible description.

Without other good questions like "if it is not 0..100 then in what
range does the default 60 fall?" answered, I do not think anybody
can come up with a useful replacement to that part.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-28 17:49     ` [PATCH] format-patch: clarify --creation-factor=<factor> Eric Sunshine
@ 2022-07-28 20:55       ` Ævar Arnfjörð Bjarmason
  2022-07-28 20:59         ` Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2022-07-28 20:55 UTC (permalink / raw)
  To: Eric Sunshine; +Cc: git, Junio C Hamano, Johannes Schindelin, Eugen Konkov


On Thu, Jul 28 2022, Eric Sunshine wrote:

> The value is not a percentage that ranges from 0 to 100, so stop
> referring to it as `percent`; instead follow the lead of the `git
> range-diff` documentation and call it `factor`.
>
> Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
> ---
>
> This is a sibling to Junio's patch[1].
>
> [1]: https://lore.kernel.org/git/xmqqo7x9ch7n.fsf_-_@gitster.g/
>
>  Documentation/git-format-patch.txt | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
> index be797d7a28..e06475abcd 100644
> --- a/Documentation/git-format-patch.txt
> +++ b/Documentation/git-format-patch.txt
> @@ -27,7 +27,7 @@ SYNOPSIS
>  		   [--[no-]encode-email-headers]
>  		   [--no-notes | --notes[=<ref>]]
>  		   [--interdiff=<previous>]
> -		   [--range-diff=<previous> [--creation-factor=<percent>]]
> +		   [--range-diff=<previous> [--creation-factor=<factor>]]
>  		   [--filename-max-length=<n>]
>  		   [--progress]
>  		   [<common diff options>]
> @@ -321,7 +321,7 @@ product of `format-patch` is generated, and they are not passed to
>  the underlying `range-diff` machinery used to generate the cover-letter
>  material (this may change in the future).
>  
> ---creation-factor=<percent>::
> +--creation-factor=<factor>::
>  	Used with `--range-diff`, tweak the heuristic which matches up commits
>  	between the previous and current series of patches by adjusting the
>  	creation/deletion cost fudge factor. See linkgit:git-range-diff[1])

Looks good as far as it goes, looks like both of your patches need to
also tweak this bit though:

	$ git -P grep 'percentage.*creation' -- '*.c'
	builtin/log.c:                      N_("percentage by which creation is weighted")),
	builtin/range-diff.c:                       N_("percentage by which creation is weighted")),

Probably just s/percentage/factor/ in for those -h strings?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-28 20:55       ` Ævar Arnfjörð Bjarmason
@ 2022-07-28 20:59         ` Junio C Hamano
  2022-07-28 21:09           ` Eric Sunshine
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2022-07-28 20:59 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Eric Sunshine, git, Johannes Schindelin, Eugen Konkov

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:

>> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
>> index be797d7a28..e06475abcd 100644
>> --- a/Documentation/git-format-patch.txt
>> +++ b/Documentation/git-format-patch.txt
>> @@ -27,7 +27,7 @@ SYNOPSIS
>>  		   [--[no-]encode-email-headers]
>>  		   [--no-notes | --notes[=<ref>]]
>>  		   [--interdiff=<previous>]
>> -		   [--range-diff=<previous> [--creation-factor=<percent>]]
>> +		   [--range-diff=<previous> [--creation-factor=<factor>]]
>>  		   [--filename-max-length=<n>]
>>  		   [--progress]
>>  		   [<common diff options>]
>> @@ -321,7 +321,7 @@ product of `format-patch` is generated, and they are not passed to
>>  the underlying `range-diff` machinery used to generate the cover-letter
>>  material (this may change in the future).
>>  
>> ---creation-factor=<percent>::
>> +--creation-factor=<factor>::
>>  	Used with `--range-diff`, tweak the heuristic which matches up commits
>>  	between the previous and current series of patches by adjusting the
>>  	creation/deletion cost fudge factor. See linkgit:git-range-diff[1])
>
> Looks good as far as it goes, looks like both of your patches need to
> also tweak this bit though:
>
> 	$ git -P grep 'percentage.*creation' -- '*.c'
> 	builtin/log.c:                      N_("percentage by which creation is weighted")),
> 	builtin/range-diff.c:                       N_("percentage by which creation is weighted")),
>
> Probably just s/percentage/factor/ in for those -h strings?

Thanks for being extra careful.

Eric, I am not sure if the other patch for the range-diff command as
a standalone patch is worth it.  Perhaps you can help me by
submitting a single combined patch to cover the above as well as
what we wrote in the two patches, with you marked as the primary
author and with Helped-by: that credits Ævar?

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-28 20:59         ` Junio C Hamano
@ 2022-07-28 21:09           ` Eric Sunshine
  2022-07-30  0:25             ` Eric Sunshine
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Sunshine @ 2022-07-28 21:09 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Ævar Arnfjörð Bjarmason, Git List,
	Johannes Schindelin, Eugen Konkov

On Thu, Jul 28, 2022 at 4:59 PM Junio C Hamano <gitster@pobox.com> wrote:
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> >> diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt
> >> @@ -27,7 +27,7 @@ SYNOPSIS
> >> -               [--range-diff=<previous> [--creation-factor=<percent>]]
> >> +               [--range-diff=<previous> [--creation-factor=<factor>]]
> >> @@ -321,7 +321,7 @@ product of `format-patch` is generated, and they are not passed to
> >> ---creation-factor=<percent>::
> >> +--creation-factor=<factor>::
> >
> > Looks good as far as it goes, looks like both of your patches need to
> > also tweak this bit though:
> >
> >       $ git -P grep 'percentage.*creation' -- '*.c'
> >       builtin/log.c:                      N_("percentage by which creation is weighted")),
> >       builtin/range-diff.c:                       N_("percentage by which creation is weighted")),
> >
> > Probably just s/percentage/factor/ in for those -h strings?
>
> Thanks for being extra careful.
>
> Eric, I am not sure if the other patch for the range-diff command as
> a standalone patch is worth it.  Perhaps you can help me by
> submitting a single combined patch to cover the above as well as
> what we wrote in the two patches, with you marked as the primary
> author and with Helped-by: that credits Ævar?

Will do.

(Slightly chagrined that I forgot to check the usage-string in the C
files. Thanks, Ævar.)

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-28 16:52   ` Re* " Junio C Hamano
  2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
  2022-07-28 17:49     ` [PATCH] format-patch: clarify --creation-factor=<factor> Eric Sunshine
@ 2022-07-29 13:16     ` Johannes Schindelin
  2022-07-29 22:19       ` Junio C Hamano
  2 siblings, 1 reply; 17+ messages in thread
From: Johannes Schindelin @ 2022-07-29 13:16 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Eugen Konkov, Git Mailing List

Hi Junio,

On Thu, 28 Jul 2022, Junio C Hamano wrote:

> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> > On Tue, 26 Jul 2022, Eugen Konkov wrote:
> >
> >> $ git range-diff --creation-factor=100 branch...origin/branch
> >> 1:  a87daecd47 < -:  ---------- Add mocked exchanges for ...::AutoRenew::General test
> >> -:  ---------- > 1:  36eaeb56a9 Add mocked exchanges for ...::AutoRenew::General test
> >> 2:  9594ccf145 = 2:  70681dd13b Remove a call to DB::state
> >> 3:  740903e01c = 3:  5745ae5702 Run cpanm without tests
> >> 4:  e8e6cac09c < -:  ---------- Do not use 'require'
> >>
> >> --creation-factor=101 does =)
> >>
> >> but maximum value for percentage is 100. So expected behaviour is to display range-diff when value 100 was provided
> >
> > Please see https://git-scm.com/docs/git-range-diff#_algorithm for an
> > explanation what the meaning of the factor is, and why 100 is not the
> > maximal sensible value.
>
> When I had to give a huge value to the option the last time, I think
> I used --creation-factor=999 or something.  The thing that bugged me
> in the output of "git range-diff --help" is that SYNOPSIS section
> has "--creation-factor=<factor>" but the OPTIONS heading says
> "--creation-factor=<percent>" and the word is used in description as
> well.
>
> ----- >8 --------- >8 --------- >8 --------- >8 --------- >8 -----
> Subject: range-diff: clarify --creation-factor=<factor>
>
> The value is not a per-cent that ranges from 0 to 100.

This sentence is a bit misleading because the factor _is_ measured in
terms of percent (not "per-cent", nor "per cent", see
https://writingexplained.org/per-cent-or-percent-difference).

The fact that we multiply by the number and divide by 100 makes it a
percentage, see e.g.
https://github.com/git/git/blob/v2.37.1/range-diff.c#L331:

		c = a_util->matching < 0 ?
			a_util->diffsize * creation_factor / 100 : COST_MAX;

The reason why I chose to write `<percent>` in the original patch
(https://github.com/git/git/commit/ba931edd284f) is to avoid confusion:
0.6 would be a factor, equivalent to 60%. But I had carefully decided not
to extend the `parse_options()` machinery to allow for floating point
numbers, hence I chose to allow specifying the factor in terms of a
percentage, which could be specified as an integer value. I _just_ noticed
a minute ago, though, that the synopsis makes the mistake of describing
the value as a `<factor>`, that's on me.

As to the original claim that percentages only go from 0-100, that is
easily refuted. If you wanted to pay $12 for something but ended up having
to pay $30, you'll end up having paid 150% more than planned. There you
are. A percentage that is greater than 100.

In this context, the explanation in
https://git-scm.com/docs/git-range-diff#_algorithm reveals how this
percentage is used: to determine the cost of _not_ pairing a patch on one
side of the range-diff with a patch on the other side, in terms that are
relative to the line count of the diff of said patch. The cost of pairing
two patches is the line count of the _diff between their diffs_.

This also explains why the default value of the creation factor is not
100% (as the original poster might have come to expect) but instead 60%, a
value that was at first picked out of thin air, but that turned out to be
reasonable: https://github.com/trast/tbdiff/commit/92ed41c84a89c.

Side note: One of my math teachers insisted on _not_ calling percent a
unit, as it is by definition unit-less: a percentage leaves the unit of
the value it modifies unchanged. Which is absolutely true. So I think we
should heed that advice here and avoid calling `%` a unit.

Ciao,
Dscho

> The SYNOPSIS section gets it right, but the body of the documentation
> said "percent" which confused readers.
>
> While we are at it, rephrase "smaller one" that corresponds to
> "larger value" earlier in the sentence to "smaller value" to be more
> explicit, to avoid misleading eyes of the readers to an unrelated "a
> large change" nearby.
>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>  Documentation/git-range-diff.txt | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git c/Documentation/git-range-diff.txt w/Documentation/git-range-diff.txt
> index fe350d7f40..e49630e8ad 100644
> --- c/Documentation/git-range-diff.txt
> +++ w/Documentation/git-range-diff.txt
> @@ -61,11 +61,11 @@ This is known to `range-diff` as "dual coloring". Use `--no-dual-color`
>  to revert to color all lines according to the outer diff markers
>  (and completely ignore the inner diff when it comes to color).
>
> ---creation-factor=<percent>::
> -	Set the creation/deletion cost fudge factor to `<percent>`.
> +--creation-factor=<factor>::
> +	Set the creation/deletion cost fudge factor to `<factor>`.
>  	Defaults to 60. Try a larger value if `git range-diff` erroneously
>  	considers a large change a total rewrite (deletion of one commit
> -	and addition of another), and a smaller one in the reverse case.
> +	and addition of another), and a smaller value in the reverse case.
>  	See the ``Algorithm`` section below for an explanation why this is
>  	needed.
>
>
>
>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-29 13:16     ` Re* --creation-factor=100 does not show code Johannes Schindelin
@ 2022-07-29 22:19       ` Junio C Hamano
  2022-08-01 23:17         ` Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2022-07-29 22:19 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Eugen Konkov, Git Mailing List

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> As to the original claim that percentages only go from 0-100, that is
> easily refuted. If you wanted to pay $12 for something but ended up having
> to pay $30, you'll end up having paid 150% more than planned. There you
> are. A percentage that is greater than 100.

Playing word games and nitpicks on what I said may have helped you
stroke your ego and annoy other folks (including me) in the
discussion, but unfortunately I do not think it is helping us get
closer to improve either the documentation or behaviour of
range-diff.  Now, let's be a bit more constructive and find a way to
unconfuse people like the original reporter?

When we say an option's value is expressed in <percent>, unless we
are careful, people will assume that the valid value the option will
take will lie between 0 and 100, and you cannot blame them.  IOW,
while the word "percent" may be 100% correct in your mind, the way
it is used to describe the feature in "git range-diff --help", it
was not sufficient to help readers.

If we were describing a hypothetical Git subcommand that shows a
picture of a panda, with an option to show the picture in different
sizes, perhaps "git panda --scale=<percent>" option is described
like so:

	--scale=<percent>::
		Instead of showing the picture of a panda at its
		default size, show it scaled.  "--scale=50" means
		show it at 50%, i.e. half the width and height.
		"--scale=200" would show the picture at twice the
		width and height.

and such a description would make it plenty clear that the valid
value range is not constrainted in 0..100.  We'd need something
similar to help users of "git range-diff".

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-28 21:09           ` Eric Sunshine
@ 2022-07-30  0:25             ` Eric Sunshine
  2022-07-31 18:56               ` Junio C Hamano
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Sunshine @ 2022-07-30  0:25 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Ævar Arnfjörð Bjarmason, Git List,
	Johannes Schindelin, Eugen Konkov

On Thu, Jul 28, 2022 at 5:09 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
> On Thu, Jul 28, 2022 at 4:59 PM Junio C Hamano <gitster@pobox.com> wrote:
> > >> -               [--range-diff=<previous> [--creation-factor=<percent>]]
> > >> +               [--range-diff=<previous> [--creation-factor=<factor>]]
> >
> > Eric, I am not sure if the other patch for the range-diff command as
> > a standalone patch is worth it.  Perhaps you can help me by
> > submitting a single combined patch to cover the above as well as
> > what we wrote in the two patches, with you marked as the primary
> > author and with Helped-by: that credits Ævar?
>
> Will do.

Given Dscho's response in [1] which states that "percent" is more
accurate than "factor", perhaps these two patches are unwanted after
all, and instead the documentation of "creation factor" in
Documentation/git-range-diff.txt ought to be expanded with a better
explanation, as hinted in [2].

[1]: https://lore.kernel.org/git/85snn12q-po05-osqs-n1o0-n6040392q01q@tzk.qr/
[2]: https://lore.kernel.org/git/xmqq5yjf4l60.fsf@gitster.g/

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH] format-patch: clarify --creation-factor=<factor>
  2022-07-30  0:25             ` Eric Sunshine
@ 2022-07-31 18:56               ` Junio C Hamano
  0 siblings, 0 replies; 17+ messages in thread
From: Junio C Hamano @ 2022-07-31 18:56 UTC (permalink / raw)
  To: Eric Sunshine
  Cc: Ævar Arnfjörð Bjarmason, Git List,
	Johannes Schindelin, Eugen Konkov

Eric Sunshine <sunshine@sunshineco.com> writes:

> On Thu, Jul 28, 2022 at 5:09 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
>> On Thu, Jul 28, 2022 at 4:59 PM Junio C Hamano <gitster@pobox.com> wrote:
>> > >> -               [--range-diff=<previous> [--creation-factor=<percent>]]
>> > >> +               [--range-diff=<previous> [--creation-factor=<factor>]]
>> >
>> > Eric, I am not sure if the other patch for the range-diff command as
>> > a standalone patch is worth it.  Perhaps you can help me by
>> > submitting a single combined patch to cover the above as well as
>> > what we wrote in the two patches, with you marked as the primary
>> > author and with Helped-by: that credits Ævar?
>>
>> Will do.
>
> Given Dscho's response in [1] which states that "percent" is more
> accurate than "factor", perhaps these two patches are unwanted after
> all, and instead the documentation of "creation factor" in
> Documentation/git-range-diff.txt ought to be expanded with a better
> explanation, as hinted in [2].

Yup, I do not mind "percent" at all.  As long as it is clear that we
use it to avoid fractions by multiplying by 100.  Something along
the lines of "This number is expressed by 'percent', but its range
is not constrained to 0-100%.  It is a weight given to X relative to
Y, and default is 60% (i.e. 0.6).  You give it larger value when you
want to do Z and smaller value when you want to do W" would be what
our readers need to see, I would think.

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-07-29 22:19       ` Junio C Hamano
@ 2022-08-01 23:17         ` Junio C Hamano
  2023-04-02 21:55           ` Eugen Konkov
  0 siblings, 1 reply; 17+ messages in thread
From: Junio C Hamano @ 2022-08-01 23:17 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Eugen Konkov, Git Mailing List

Junio C Hamano <gitster@pobox.com> writes:

> When we say an option's value is expressed in <percent>, unless we
> are careful, people will assume that the valid value the option will
> take will lie between 0 and 100, and you cannot blame them.  IOW,
> while the word "percent" may be 100% correct in your mind, the way
> it is used to describe the feature in "git range-diff --help", it
> was not sufficient to help readers.

Stepping back a bit, I find that saying
"--creation-factor=<percent>" is like giving "--max-size=<bytes>".
They both make it clear that the readers express the number in what
scale, but fails to explain what the number means.  It is especially
hard for readers when the name of the option does not help explain
what the number is, e.g. "max size, size of what?" is a valid
question when dealing with "--max-size", and without the question
answered, the readers cannot decide what value they want to give to
achieve the effect they want.

the reader would want to know what it is (e.g. maximum memory that
is allowed to be allocated on heap) and how it is measured (i.e. in
bytes).  The former helps the readers guess what a reasonable value
they want to specify is (e.g. "I can afford to dedicate yMB"), and
the latter is essential for the readers to decide how exactly they
express what they chose (e.g. "I want to give yMB, but it is
measured in bytes, so I'll write y * 10^20 here").  We need both.

So _after_ they decide that 1.20 is the right number they want to
give to --creation-factor, the knowledge that the number is
expressed as percent does help them to write --creation-factor=120
correctly (not --creation-factor=1.20).

But for readers to come up with the number 1.20, there needs a
better explanation of what the number means in the first place.  "Go
read the algorithm section" is better than having nothing there, but
we should be able to do better by having a simple-to-understand
single paragraph description.

Thanks.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: Re* --creation-factor=100 does not show code
  2022-08-01 23:17         ` Junio C Hamano
@ 2023-04-02 21:55           ` Eugen Konkov
  0 siblings, 0 replies; 17+ messages in thread
From: Eugen Konkov @ 2023-04-02 21:55 UTC (permalink / raw)
  To: Junio C Hamano, Johannes Schindelin; +Cc: Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 608 bytes --]

Hello, everybody.
Sorry, if I bring back old theme, but --creation-factor again bother me.

When I provide a bit higher value, then command compares wrong commits.

I attached the file with my branches and two git commands with creation factor of 108 and 109 respectively.
For second case, when I used 109, I get unexpected output from git. Two unrelated commits are compared.

Could it be possible to consider commit messages?

In my case commit messages "Renamed: replace -> update" are same and are located in same point of history.
Thus, to my mind, they should be diffed.

--
Best regards,
Eugen Konkov 

[-- Attachment #2: report.txt --]
[-- Type: TEXT/PLAIN, Size: 51312 bytes --]

git version 2.40.0

Expected output:
git range-diff --creation-factor=108 modalnew...refactoring
 1:  d1bbaf5 !  1:  015bc3e Renamed: replace -> update
    @@ src/views/blocks/common/form.html: response<br>
          $( '#ajax-form' ).data( 'replace-form', 'yes' );
        " value="Replace form"/>

    +
    + ## src/views/blocks/common/modal.html ##
    +@@
    +       <br>
    +       <!-- Form should not be closed if content received -->
    +       <button type="submit" class="btn btn-primary" onclick="
    +-        $( this.form ).attr( 'action', '/replace-content.html' );
    +-      ">Send 200 & display</button><br>
    ++        $( this.form ).attr( 'action', '/update-content.html' );
    ++      ">Send 200 & display HTML</button><br>
    +       <button type="submit" class="btn btn-primary" onclick="
    +-        $( this.form ).attr( 'action', '/replace-content.json' );
    +-      ">Send 200 & display</button><br>
    ++        $( this.form ).attr( 'action', '/update-content.json' );
    ++      ">Send 200 & display JSON</button><br>
    +
    +       <br>
    +       <!-- Form should not be closed if error occur -->
 2:  d7792ad =  2:  62343cd Implemented tests for messages with different types
 3:  c681ba1 =  3:  307203e Removed ajaxFormModal: No reason to duplicate code
 4:  1c0919e =  4:  804922f Changed function name: give_name ->after_submit_handler_name
 5:  9cdaeb3 =  5:  50573a9 Improved text on example page
 6:  0e8defa =  6:  4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me
 7:  068723b =  7:  3ac9601 Removed outdated example
 8:  c7f6e55 =  8:  05f4206 Renamed: form -> containerEl
 9:  8405d9e =  9:  9b58983 FIXED: html not defined
10:  90e76c0 = 10:  d169cf6 Remove useless parameter
11:  fe80807 = 11:  31dc239 Added more logging and messages to user
12:  46caa01 = 12:  2f235a5 Implement and reuse processResponse
 -:  ------- > 13:  b2c417e Renamed: form -> triggerEl
 -:  ------- > 14:  39470fb Moved code to its own function
 -:  ------- > 15:  1ed3596 Pass target element explicitly
 -:  ------- > 16:  305ea24 Be more explecit about content
 -:  ------- > 17:  a3b1bb2 Improved displayResponse
 -:  ------- > 18:  aa25331 Improved examples for lazy loading
 -:  ------- > 19:  5183551 Improved documentation for lazy_load
 -:  ------- > 20:  3632554 Improved text for examples
 -:  ------- > 21:  1586539 Options should be on trigger element and not on target
 -:  ------- > 22:  ef069d7 Improved comment
 -:  ------- > 23:  e9ae2a3 Improved documentation
 -:  ------- > 24:  395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window
 -:  ------- > 25:  fa75d0e Implemented deprecation message about 'data-close-modal'
 -:  ------- > 26:  5daa3ef Close modal when response was processed
 -:  ------- > 27:  f83a68e Improved example message
 -:  ------- > 28:  5790dc8 Extended tests for button/input/link
 -:  ------- > 29:  a19a3ae BUGFIX: Do not scroll when a link button is pressed
 -:  ------- > 30:  3928191 Hint type was changed: warning -> error
 -:  ------- > 31:  a023d27 Issue warning when we are trying to load content into button
 -:  ------- > 32:  9fc16f6 Put simple functionality first
 -:  ------- > 33:  daad594 Typo fix
 -:  ------- > 34:  53329f9 Removed A::SaveData module
 -:  ------- > 35:  deecd9c Simplified code
 -:  ------- > 36:  8c8dbc0 Removed Example.pm
 -:  ------- > 37:  5016343 Update to Mojolicious v9.31
 -:  ------- > 38:  3bc7958 Updated modules
 -:  ------- > 39:  95a704d Install missed module
 -:  ------- > 40:  802df67 This project does not have Globals. We provide modules location via command line
 -:  ------- > 41:  05cf81a Do not query live servers while testing

Not expected output:
git range-diff --creation-factor=109 modalnew...refactoring
 -:  ------- >  1:  015bc3e Renamed: replace -> update
 2:  d7792ad =  2:  62343cd Implemented tests for messages with different types
 3:  c681ba1 =  3:  307203e Removed ajaxFormModal: No reason to duplicate code
 4:  1c0919e =  4:  804922f Changed function name: give_name ->after_submit_handler_name
 5:  9cdaeb3 =  5:  50573a9 Improved text on example page
 6:  0e8defa =  6:  4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me
 7:  068723b =  7:  3ac9601 Removed outdated example
 8:  c7f6e55 =  8:  05f4206 Renamed: form -> containerEl
 9:  8405d9e =  9:  9b58983 FIXED: html not defined
10:  90e76c0 = 10:  d169cf6 Remove useless parameter
11:  fe80807 = 11:  31dc239 Added more logging and messages to user
12:  46caa01 = 12:  2f235a5 Implement and reuse processResponse
 -:  ------- > 13:  b2c417e Renamed: form -> triggerEl
 -:  ------- > 14:  39470fb Moved code to its own function
 -:  ------- > 15:  1ed3596 Pass target element explicitly
 -:  ------- > 16:  305ea24 Be more explecit about content
 -:  ------- > 17:  a3b1bb2 Improved displayResponse
 -:  ------- > 18:  aa25331 Improved examples for lazy loading
 -:  ------- > 19:  5183551 Improved documentation for lazy_load
 -:  ------- > 20:  3632554 Improved text for examples
 -:  ------- > 21:  1586539 Options should be on trigger element and not on target
 -:  ------- > 22:  ef069d7 Improved comment
 -:  ------- > 23:  e9ae2a3 Improved documentation
 -:  ------- > 24:  395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window
 -:  ------- > 25:  fa75d0e Implemented deprecation message about 'data-close-modal'
 -:  ------- > 26:  5daa3ef Close modal when response was processed
 -:  ------- > 27:  f83a68e Improved example message
 -:  ------- > 28:  5790dc8 Extended tests for button/input/link
 -:  ------- > 29:  a19a3ae BUGFIX: Do not scroll when a link button is pressed
 -:  ------- > 30:  3928191 Hint type was changed: warning -> error
 -:  ------- > 31:  a023d27 Issue warning when we are trying to load content into button
 -:  ------- > 32:  9fc16f6 Put simple functionality first
 -:  ------- > 33:  daad594 Typo fix
 -:  ------- > 34:  53329f9 Removed A::SaveData module
 -:  ------- > 35:  deecd9c Simplified code
 -:  ------- > 36:  8c8dbc0 Removed Example.pm
 -:  ------- > 37:  5016343 Update to Mojolicious v9.31
 1:  d1bbaf5 ! 38:  3bc7958 Renamed: replace -> update
    @@ Metadata
     Author: Eugen Konkov <konkove@gmail.com>

      ## Commit message ##
    -    Renamed: replace -> update
    +    Updated modules

    -    Because we just send content and not command to from interface
    -
    - ## gulp/config-mock.js ##
    -@@
    - module.exports = {
    -   option: {
    --    "/replace-content.html": {
    -+    "/update-content.html": {
    -       "GET": {
    -         code: "200",
    -         header:  [ "Content-Type", "text/html" ],
    --        file: "mock/replace-content.html",
    -+        file: "mock/update-content.html",
    -       },
    -     },
    -
    --    "/replace-content.json": {
    -+    "/update-content.json": {
    -       "GET": {
    -         code: "200",
    --        file: "mock/replace-content.json",
    -+        file: "mock/update-content.json",
    -       },
    -     },
    -
    -
    - ## mock/replace-content.html => mock/update-content.html ##
    -
    - ## mock/replace-content.json => mock/update-content.json ##
    -
    - ## src/views/blocks/common/form.html ##
    -@@ src/views/blocks/common/form.html: response<br>
    -
    -   <br>
    -   <input  type='submit' class="btn btn-primary" style="width: 170px" onclick="
    --    $( '#ajax-form' ).attr( 'action', '/replace-content.html' );
    -+    $( '#ajax-form' ).attr( 'action', '/update-content.html' );
    -   " value="No replacement"/>
    -
    -   <input  type='submit' class="btn btn-primary" style="width: 170px" onclick="
    --    $( '#ajax-form' ).attr( 'action', '/replace-content.html' );
    -+    $( '#ajax-form' ).attr( 'action', '/update-content.html' );
    -     $( '#ajax-form' ).data( 'load-to', '#form-result' );
    -   " value="Load into target"/>
    -
    -   <input  type='submit' class="btn btn-primary" style="width: 170px" onclick="
    --    $( '#ajax-form' ).attr( 'action', '/replace-content.json' );
    -+    $( '#ajax-form' ).attr( 'action', '/update-content.json' );
    -     $( '#ajax-form' ).data( 'replace-form', 'yes' );
    -   " value="Replace form"/>
    -
    + ## cpanfile.snapshot ##
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Algorithm::Diff::_impl 1.201
    +     requirements:
    +       ExtUtils::MakeMaker 0
    ++  Algorithm-Loops-1.032
    ++    pathname: T/TY/TYEMQ/Algorithm-Loops-1.032.tar.gz
    ++    provides:
    ++      Algorithm::Loops 1.032
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    +   App-cpm-0.997011
    +     pathname: S/SK/SKAJI/App-cpm-0.997011.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       ExtUtils::MakeMaker 0
    +       Math::BigInt 0
    +       perl 5.006
    +-  DBD-Pg-3.15.1
    +-    pathname: T/TU/TURNSTEP/DBD-Pg-3.15.1.tar.gz
    ++  DBD-Pg-3.16.1
    ++    pathname: T/TU/TURNSTEP/DBD-Pg-3.16.1.tar.gz
    +     provides:
    +-      Bundle::DBD::Pg v3.15.1
    +-      DBD::Pg v3.15.1
    ++      Bundle::DBD::Pg v3.16.1
    ++      DBD::Pg v3.16.1
    +     requirements:
    +-      DBI 1.614
    +-      ExtUtils::MakeMaker 6.11
    +-      File::Temp 0
    +-      Test::More 0.88
    +-      Time::HiRes 0
    +-      version 0
    +   DBD-SQLite-1.70
    +     pathname: I/IS/ISHIGAKI/DBD-SQLite-1.70.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Sub::Install 0.921
    +       strict 0
    +       warnings 0
    +-  Data-Printer-1.000004
    +-    pathname: G/GA/GARU/Data-Printer-1.000004.tar.gz
    ++  Data-Printer-1.001000
    ++    pathname: G/GA/GARU/Data-Printer-1.001000.tar.gz
    +     provides:
    +-      DDP undef
    +-      Data::Printer 1.000004
    ++      DDP 1.001000
    ++      Data::Printer 1.001000
    +       Data::Printer::Common undef
    +       Data::Printer::Config undef
    +       Data::Printer::Filter undef
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    +-  DateTime-1.58
    +-    pathname: D/DR/DROLSKY/DateTime-1.58.tar.gz
    +-    provides:
    +-      DateTime 1.58
    +-      DateTime::Duration 1.58
    +-      DateTime::Helpers 1.58
    +-      DateTime::Infinite 1.58
    +-      DateTime::Infinite::Future 1.58
    +-      DateTime::Infinite::Past 1.58
    +-      DateTime::LeapSecond 1.58
    +-      DateTime::PP 1.58
    +-      DateTime::PPExtra 1.58
    +-      DateTime::Types 1.58
    ++  DateTime-1.59
    ++    pathname: D/DR/DROLSKY/DateTime-1.59.tar.gz
    ++    provides:
    ++      DateTime 1.59
    ++      DateTime::Duration 1.59
    ++      DateTime::Helpers 1.59
    ++      DateTime::Infinite 1.59
    ++      DateTime::Infinite::Future 1.59
    ++      DateTime::Infinite::Past 1.59
    ++      DateTime::LeapSecond 1.59
    ++      DateTime::PP 1.59
    ++      DateTime::PPExtra 1.59
    ++      DateTime::Types 1.59
    +     requirements:
    +       Carp 0
    +       DateTime::Locale 1.06
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Specio::Subs 0
    +       Try::Tiny 0
    +       XSLoader 0
    +-      base 0
    +       integer 0
    +       namespace::autoclean 0.19
    +       overload 0
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       ExtUtils::MakeMaker 0
    +       Sub::Exporter::Progressive 0.001011
    +       perl 5.006
    ++  Devel-GlobalPhase-0.003003
    ++    pathname: H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz
    ++    provides:
    ++      Devel::GlobalPhase 0.003003
    ++    requirements:
    ++      perl 5.008
    +   Devel-OverloadInfo-0.007
    +     pathname: I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    +-  Digest-HMAC-1.04
    +-    pathname: A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz
    +-    provides:
    +-      Digest::HMAC 1.04
    +-      Digest::HMAC_MD5 1.04
    +-      Digest::HMAC_SHA1 1.04
    +-    requirements:
    +-      Digest::MD5 2
    +-      Digest::SHA 1
    +-      ExtUtils::MakeMaker 0
    +-      perl 5.004
    +   Dist-CheckConflicts-0.11
    +     pathname: D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +     requirements:
    +       ExtUtils::MakeMaker 0
    +       Mail::Address 0
    +-      Net::DNS 0
    +       Scalar::Util 0
    +       Test::More 0
    +       perl 5.006
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    ++  ExtUtils-Install-2.20
    ++    pathname: B/BI/BINGOS/ExtUtils-Install-2.20.tar.gz
    ++    provides:
    ++      ExtUtils::Install 2.20
    ++      ExtUtils::Install::Warn 2.20
    ++      ExtUtils::Installed 2.20
    ++      ExtUtils::Packlist 2.20
    ++    requirements:
    ++      Carp 0
    ++      Cwd 0
    ++      ExtUtils::MakeMaker 0
    ++      File::Basename 0
    ++      File::Compare 0
    ++      File::Copy 0
    ++      File::Find 0
    ++      File::Path 0
    ++      File::Spec 0
    ++      File::Temp 0
    ++      Test::More 0.47
    ++      perl 5.006
    +   ExtUtils-InstallPaths-0.012
    +     pathname: L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    ++  ExtUtils-MakeMaker-7.64
    ++    pathname: B/BI/BINGOS/ExtUtils-MakeMaker-7.64.tar.gz
    ++    provides:
    ++      ExtUtils::Command 7.64
    ++      ExtUtils::Command::MM 7.64
    ++      ExtUtils::Liblist 7.64
    ++      ExtUtils::Liblist::Kid 7.64
    ++      ExtUtils::MM 7.64
    ++      ExtUtils::MM_AIX 7.64
    ++      ExtUtils::MM_Any 7.64
    ++      ExtUtils::MM_BeOS 7.64
    ++      ExtUtils::MM_Cygwin 7.64
    ++      ExtUtils::MM_DOS 7.64
    ++      ExtUtils::MM_Darwin 7.64
    ++      ExtUtils::MM_MacOS 7.64
    ++      ExtUtils::MM_NW5 7.64
    ++      ExtUtils::MM_OS2 7.64
    ++      ExtUtils::MM_OS390 7.64
    ++      ExtUtils::MM_QNX 7.64
    ++      ExtUtils::MM_UWIN 7.64
    ++      ExtUtils::MM_Unix 7.64
    ++      ExtUtils::MM_VMS 7.64
    ++      ExtUtils::MM_VOS 7.64
    ++      ExtUtils::MM_Win32 7.64
    ++      ExtUtils::MM_Win95 7.64
    ++      ExtUtils::MY 7.64
    ++      ExtUtils::MakeMaker 7.64
    ++      ExtUtils::MakeMaker::Config 7.64
    ++      ExtUtils::MakeMaker::Locale 7.64
    ++      ExtUtils::MakeMaker::_version 7.64
    ++      ExtUtils::MakeMaker::charstar 7.64
    ++      ExtUtils::MakeMaker::version 7.64
    ++      ExtUtils::MakeMaker::version::regex 7.64
    ++      ExtUtils::MakeMaker::version::vpp 7.64
    ++      ExtUtils::Mkbootstrap 7.64
    ++      ExtUtils::Mksymlists 7.64
    ++      ExtUtils::testlib 7.64
    ++      MM 7.64
    ++      MY 7.64
    ++    requirements:
    ++      Data::Dumper 0
    ++      Encode 0
    ++      File::Basename 0
    ++      File::Spec 0.8
    ++      Pod::Man 0
    ++      perl 5.006
    +   ExtUtils-MakeMaker-CPANfile-0.09
    +     pathname: I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       File::Which 0.05
    +       POSIX 0
    +       perl 5.008003
    ++  File-Listing-6.15
    ++    pathname: P/PL/PLICEASE/File-Listing-6.15.tar.gz
    ++    provides:
    ++      File::Listing 6.15
    ++      File::Listing::apache 6.15
    ++      File::Listing::dosftp 6.15
    ++      File::Listing::netware 6.15
    ++      File::Listing::unix 6.15
    ++      File::Listing::vms 6.15
    ++    requirements:
    ++      Exporter 5.57
    ++      ExtUtils::MakeMaker 0
    ++      HTTP::Date 0
    ++      perl 5.006
    +   File-Remove-1.61
    +     pathname: S/SH/SHLOMIF/File-Remove-1.61.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    ++  Filter-signatures-0.17
    ++    pathname: C/CO/CORION/Filter-signatures-0.17.tar.gz
    ++    provides:
    ++      Filter::signatures 0.17
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      Filter::Simple 0.91
    ++      perl 5.006
    ++  Future-0.48
    ++    pathname: P/PE/PEVANS/Future-0.48.tar.gz
    ++    provides:
    ++      Future 0.48
    ++      Future::Exception 0.48
    ++      Future::Mutex 0.48
    ++      Future::Queue 0.48
    ++      Future::Utils 0.48
    ++      Test::Future 0.48
    ++      Test::Future::Deferred 0.48
    ++    requirements:
    ++      Carp 1.25
    ++      Module::Build 0.4004
    ++      Test::Builder::Module 0
    ++      Time::HiRes 0
    ++      perl 5.010
    ++  Future-HTTP-0.14
    ++    pathname: C/CO/CORION/Future-HTTP-0.14.tar.gz
    ++    provides:
    ++      Future::HTTP 0.14
    ++      Future::HTTP::AnyEvent 0.14
    ++      Future::HTTP::Handler 0.14
    ++      Future::HTTP::Mojo 0.14
    ++      Future::HTTP::NetAsync 0.14
    ++      Future::HTTP::Tiny 0.14
    ++      Future::HTTP::Tiny::Paranoid 0.14
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      Filter::signatures 0.13
    ++      Future 0.31
    ++      HTTP::Headers 6.07
    ++      HTTP::Tiny 0
    ++      Moo 2
    ++      perl 5.006
    +   Getopt-Long-Descriptive-0.110
    +     pathname: R/RJ/RJBS/Getopt-Long-Descriptive-0.110.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.012
    +       strict 0
    +       warnings 0
    ++  HTML-Form-6.07
    ++    pathname: O/OA/OALDERS/HTML-Form-6.07.tar.gz
    ++    provides:
    ++      HTML::Form 6.07
    ++      HTML::Form::FileInput 6.07
    ++      HTML::Form::IgnoreInput 6.07
    ++      HTML::Form::ImageInput 6.07
    ++      HTML::Form::Input 6.07
    ++      HTML::Form::KeygenInput 6.07
    ++      HTML::Form::ListInput 6.07
    ++      HTML::Form::SubmitInput 6.07
    ++      HTML::Form::TextInput 6.07
    ++    requirements:
    ++      Carp 0
    ++      Encode 2
    ++      ExtUtils::MakeMaker 0
    ++      HTML::TokeParser 0
    ++      HTTP::Request 6
    ++      HTTP::Request::Common 6.03
    ++      URI 1.10
    ++      perl 5.008001
    ++      strict 0
    ++      vars 0
    +   HTML-Parser-3.78
    +     pathname: O/OA/OALDERS/HTML-Parser-3.78.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       URI::URL 0
    +       XSLoader 0
    +       strict 0
    ++  HTML-Selector-XPath-0.26
    ++    pathname: C/CO/CORION/HTML-Selector-XPath-0.26.tar.gz
    ++    provides:
    ++      HTML::Selector::XPath 0.26
    ++    requirements:
    ++      Carp 0
    ++      Exporter 0
    ++      ExtUtils::MakeMaker 0
    ++      perl 5.008001
    ++      strict 0
    +   HTML-Tagset-3.20
    +     pathname: P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz
    +     provides:
    +       HTML::Tagset 3.20
    +     requirements:
    +       ExtUtils::MakeMaker 0
    ++  HTML-Tree-5.07
    ++    pathname: K/KE/KENTNL/HTML-Tree-5.07.tar.gz
    ++    provides:
    ++      HTML::AsSubs 5.07
    ++      HTML::Element 5.07
    ++      HTML::Element::traverse 5.07
    ++      HTML::Parse 5.07
    ++      HTML::Tree 5.07
    ++      HTML::TreeBuilder 5.07
    ++    requirements:
    ++      Carp 0
    ++      Encode 0
    ++      Exporter 0
    ++      HTML::Entities 0
    ++      HTML::Parser 3.46
    ++      HTML::Tagset 3.02
    ++      Module::Build 0.2808
    ++      Scalar::Util 0
    ++      Test::Fatal 0
    ++      Test::More 0
    ++      base 0
    ++      integer 0
    ++      perl 5.008
    ++  HTTP-Cookies-6.10
    ++    pathname: O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz
    ++    provides:
    ++      HTTP::Cookies 6.10
    ++      HTTP::Cookies::Microsoft 6.10
    ++      HTTP::Cookies::Netscape 6.10
    ++    requirements:
    ++      Carp 0
    ++      ExtUtils::MakeMaker 0
    ++      HTTP::Date 6
    ++      HTTP::Headers::Util 6
    ++      HTTP::Request 0
    ++      locale 0
    ++      perl 5.008001
    ++      strict 0
    +   HTTP-Date-6.05
    +     pathname: O/OA/OALDERS/HTTP-Date-6.05.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.008001
    +       strict 0
    +       warnings 0
    ++  HTTP-Negotiate-6.01
    ++    pathname: G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz
    ++    provides:
    ++      HTTP::Negotiate 6.01
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      HTTP::Headers 6
    ++      perl 5.008001
    +   HTTP-Tinyish-0.17
    +     pathname: M/MI/MIYAGAWA/HTTP-Tinyish-0.17.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       ExtUtils::MakeMaker 0
    +       Scalar::Util 0
    +       perl 5.008001
    ++  IO-Async-0.801
    ++    pathname: P/PE/PEVANS/IO-Async-0.801.tar.gz
    ++    provides:
    ++      Future::IO::Impl::IOAsync undef
    ++      IO::Async 0.801
    ++      IO::Async::Channel 0.801
    ++      IO::Async::Debug 0.801
    ++      IO::Async::File 0.801
    ++      IO::Async::FileStream 0.801
    ++      IO::Async::Function 0.801
    ++      IO::Async::Future 0.801
    ++      IO::Async::Handle 0.801
    ++      IO::Async::Internals::ChildManager 0.801
    ++      IO::Async::Internals::FunctionWorker 0.801
    ++      IO::Async::Listener 0.801
    ++      IO::Async::Loop 0.801
    ++      IO::Async::Loop::Poll 0.801
    ++      IO::Async::Loop::Select 0.801
    ++      IO::Async::LoopTests 0.801
    ++      IO::Async::Metrics undef
    ++      IO::Async::Notifier 0.801
    ++      IO::Async::OS 0.801
    ++      IO::Async::OS::MSWin32 0.801
    ++      IO::Async::OS::cygwin 0.801
    ++      IO::Async::OS::linux 0.801
    ++      IO::Async::PID 0.801
    ++      IO::Async::Process 0.801
    ++      IO::Async::Protocol 0.801
    ++      IO::Async::Protocol::LineStream 0.801
    ++      IO::Async::Protocol::Stream 0.801
    ++      IO::Async::Resolver 0.801
    ++      IO::Async::Routine 0.801
    ++      IO::Async::Signal 0.801
    ++      IO::Async::Socket 0.801
    ++      IO::Async::Stream 0.801
    ++      IO::Async::Test 0.801
    ++      IO::Async::Timer 0.801
    ++      IO::Async::Timer::Absolute 0.801
    ++      IO::Async::Timer::Countdown 0.801
    ++      IO::Async::Timer::Periodic 0.801
    ++    requirements:
    ++      Exporter 5.57
    ++      File::stat 0
    ++      Future 0.33
    ++      Future::Utils 0.18
    ++      IO::Poll 0
    ++      List::Util 0
    ++      Module::Build 0.4004
    ++      Socket 2.007
    ++      Storable 0
    ++      Struct::Dumb 0
    ++      Time::HiRes 0
    ++      perl 5.008004
    +   IO-HTML-1.004
    +     pathname: C/CJ/CJM/IO-HTML-1.004.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       ExtUtils::MakeMaker 0
    +       Test::More 0.31
    +       Time::HiRes 0
    ++  Imager-1.019
    ++    pathname: T/TO/TONYC/Imager-1.019.tar.gz
    ++    provides:
    ++      Imager 1.019
    ++      Imager::Color 1.015
    ++      Imager::Color::Float 1.008
    ++      Imager::Color::Table 1.004
    ++      Imager::CountColor 0.03
    ++      Imager::Expr 1.008
    ++      Imager::Expr::Assem 1.004
    ++      Imager::Expr::Infix 1.008
    ++      Imager::Expr::Postfix 1.008
    ++      Imager::ExtUtils 1.003
    ++      Imager::FORMATS 1.019
    ++      Imager::File::CUR 1.000
    ++      Imager::File::ICO 0.08
    ++      Imager::File::SGI 0.05
    ++      Imager::Fill 1.013
    ++      Imager::Filter::DynTest 0.03
    ++      Imager::Filter::Flines 0.04
    ++      Imager::Filter::Mandelbrot 0.05
    ++      Imager::Font 1.039
    ++      Imager::Font::BBox 1.007
    ++      Imager::Font::FreeType2 1.021
    ++      Imager::Font::Image 1.000
    ++      Imager::Font::Test 1.002
    ++      Imager::Font::Truetype 1.013
    ++      Imager::Font::Type1 1.013
    ++      Imager::Font::Wrap 1.005
    ++      Imager::Fountain 1.009
    ++      Imager::IO 1.019
    ++      Imager::Matrix2d 1.013
    ++      Imager::Preprocess 1.003
    ++      Imager::Probe 1.008
    ++      Imager::Regops 1.000
    ++      Imager::Test 1.007
    ++      Imager::Test::OverUtf8 1.007
    ++      Imager::Transform 1.007
    ++      Imager::TrimColorList 1.000
    ++    requirements:
    ++      Exporter 5.57
    ++      ExtUtils::MakeMaker 0
    ++      Scalar::Util 1.00
    ++      Test::More 0.99
    ++      XSLoader 0
    ++  Imager-File-PNG-0.99
    ++    pathname: T/TO/TONYC/Imager-File-PNG-0.99.tar.gz
    ++    provides:
    ++      Imager::File::PNG 0.99
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      Imager 0.90
    ++      XSLoader 0
    +   Import-Into-1.002005
    +     pathname: H/HA/HAARG/Import-Into-1.002005.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.006
    +       strict 0
    +       warnings 0
    ++  JSON-4.07
    ++    pathname: I/IS/ISHIGAKI/JSON-4.07.tar.gz
    ++    provides:
    ++      JSON 4.07
    ++      JSON::Backend::PP 4.07
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      Test::More 0
    +   JSON-MaybeXS-1.004003
    +     pathname: E/ET/ETHER/JSON-MaybeXS-1.004003.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       ExtUtils::MakeMaker 0
    +       Moo 1.003
    +       Scalar::Util 0
    ++  Log-Log4perl-1.57
    ++    pathname: E/ET/ETJ/Log-Log4perl-1.57.tar.gz
    ++    provides:
    ++      L4pResurrectable 0.01
    ++      Log::Log4perl 1.57
    ++      Log::Log4perl::Appender undef
    ++      Log::Log4perl::Appender::Buffer 1.53
    ++      Log::Log4perl::Appender::DBI undef
    ++      Log::Log4perl::Appender::File undef
    ++      Log::Log4perl::Appender::Limit 1.53
    ++      Log::Log4perl::Appender::RRDs undef
    ++      Log::Log4perl::Appender::Screen undef
    ++      Log::Log4perl::Appender::ScreenColoredLevels undef
    ++      Log::Log4perl::Appender::Socket undef
    ++      Log::Log4perl::Appender::String undef
    ++      Log::Log4perl::Appender::Synchronized 1.53
    ++      Log::Log4perl::Appender::TestArrayBuffer undef
    ++      Log::Log4perl::Appender::TestBuffer undef
    ++      Log::Log4perl::Appender::TestFileCreeper undef
    ++      Log::Log4perl::Catalyst 1.53
    ++      Log::Log4perl::Config undef
    ++      Log::Log4perl::Config::BaseConfigurator undef
    ++      Log::Log4perl::Config::DOMConfigurator 0.03
    ++      Log::Log4perl::Config::PropertyConfigurator undef
    ++      Log::Log4perl::Config::Watch undef
    ++      Log::Log4perl::DateFormat undef
    ++      Log::Log4perl::Filter undef
    ++      Log::Log4perl::Filter::Boolean undef
    ++      Log::Log4perl::Filter::LevelMatch undef
    ++      Log::Log4perl::Filter::LevelRange undef
    ++      Log::Log4perl::Filter::MDC undef
    ++      Log::Log4perl::Filter::StringMatch undef
    ++      Log::Log4perl::InternalDebug undef
    ++      Log::Log4perl::JavaMap undef
    ++      Log::Log4perl::JavaMap::ConsoleAppender undef
    ++      Log::Log4perl::JavaMap::FileAppender undef
    ++      Log::Log4perl::JavaMap::JDBCAppender undef
    ++      Log::Log4perl::JavaMap::NTEventLogAppender undef
    ++      Log::Log4perl::JavaMap::RollingFileAppender undef
    ++      Log::Log4perl::JavaMap::SyslogAppender undef
    ++      Log::Log4perl::JavaMap::TestBuffer undef
    ++      Log::Log4perl::Layout undef
    ++      Log::Log4perl::Layout::NoopLayout undef
    ++      Log::Log4perl::Layout::PatternLayout undef
    ++      Log::Log4perl::Layout::PatternLayout::Multiline undef
    ++      Log::Log4perl::Layout::SimpleLayout undef
    ++      Log::Log4perl::Level undef
    ++      Log::Log4perl::Logger undef
    ++      Log::Log4perl::MDC undef
    ++      Log::Log4perl::NDC undef
    ++      Log::Log4perl::Resurrector undef
    ++      Log::Log4perl::Util undef
    ++      Log::Log4perl::Util::Semaphore undef
    ++      Log::Log4perl::Util::TimeTracker undef
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      File::Path 2.07
    ++      File::Spec 0.82
    ++      perl 5.006
    +   MIME-Charset-1.012.2
    +     pathname: N/NE/NEZUMI/MIME-Charset-1.012.2.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.012
    +       strict 0
    +       warnings 0
    +-  Modern-Perl-1.20220515
    +-    pathname: C/CH/CHROMATIC/Modern-Perl-1.20220515.tar.gz
    ++  Modern-Perl-1.20230106
    ++    pathname: C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz
    +     provides:
    +-      Modern::Perl 1.20220515
    +-      odern::Perl 1.20220515
    ++      Modern::Perl 1.20230106
    ++      odern::Perl 1.20230106
    +     requirements:
    +       ExtUtils::MakeMaker 0
    +       IO::File 0
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       File::Spec 3.00
    +       File::Spec::Functions 0
    +       if 0
    +-      perl 5.005030
    ++      perl 5.00503
    +       strict 0
    +   Module-Runtime-0.016
    +     pathname: Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Scalar::Util 0
    +       YAML::PP 0.027
    +       perl 5.008001
    +-  Mojolicious-9.26
    +-    pathname: S/SR/SRI/Mojolicious-9.26.tar.gz
    ++  Mojolicious-9.31
    ++    pathname: S/SR/SRI/Mojolicious-9.31.tar.gz
    +     provides:
    +       Mojo undef
    +       Mojo::Asset undef
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Mojo::UserAgent::Transactor undef
    +       Mojo::Util undef
    +       Mojo::WebSocket undef
    +-      Mojolicious 9.26
    ++      Mojolicious 9.31
    +       Mojolicious::Command undef
    +       Mojolicious::Command::Author::cpanify undef
    +       Mojolicious::Command::Author::generate undef
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.008001
    +       strict 0
    +       warnings 0
    +-  Net-DNS-1.34
    +-    pathname: N/NL/NLNETLABS/Net-DNS-1.34.tar.gz
    +-    provides:
    +-      Net::DNS 1.34
    +-      Net::DNS::Domain 1855
    +-      Net::DNS::DomainName 1855
    +-      Net::DNS::DomainName1035 1855
    +-      Net::DNS::DomainName2535 1855
    +-      Net::DNS::Header 1855
    +-      Net::DNS::Mailbox 1855
    +-      Net::DNS::Mailbox1035 1855
    +-      Net::DNS::Mailbox2535 1855
    +-      Net::DNS::Nameserver 1860
    +-      Net::DNS::Packet 1865
    +-      Net::DNS::Parameters 1865
    +-      Net::DNS::Question 1855
    +-      Net::DNS::RR 1864
    +-      Net::DNS::RR::A 1857
    +-      Net::DNS::RR::AAAA 1857
    +-      Net::DNS::RR::AFSDB 1857
    +-      Net::DNS::RR::AMTRELAY 1855
    +-      Net::DNS::RR::APL 1857
    +-      Net::DNS::RR::APL::Item 1857
    +-      Net::DNS::RR::CAA 1857
    +-      Net::DNS::RR::CDNSKEY 1857
    +-      Net::DNS::RR::CDS 1857
    +-      Net::DNS::RR::CERT 1856
    +-      Net::DNS::RR::CNAME 1857
    +-      Net::DNS::RR::CSYNC 1857
    +-      Net::DNS::RR::DHCID 1857
    +-      Net::DNS::RR::DNAME 1857
    +-      Net::DNS::RR::DNSKEY 1856
    +-      Net::DNS::RR::DS 1856
    +-      Net::DNS::RR::EUI48 1857
    +-      Net::DNS::RR::EUI64 1857
    +-      Net::DNS::RR::GPOS 1857
    +-      Net::DNS::RR::HINFO 1857
    +-      Net::DNS::RR::HIP 1857
    +-      Net::DNS::RR::HTTPS 1857
    +-      Net::DNS::RR::IPSECKEY 1857
    +-      Net::DNS::RR::ISDN 1857
    +-      Net::DNS::RR::KEY 1857
    +-      Net::DNS::RR::KX 1857
    +-      Net::DNS::RR::L32 1857
    +-      Net::DNS::RR::L64 1857
    +-      Net::DNS::RR::LOC 1857
    +-      Net::DNS::RR::LP 1857
    +-      Net::DNS::RR::MB 1857
    +-      Net::DNS::RR::MG 1857
    +-      Net::DNS::RR::MINFO 1857
    +-      Net::DNS::RR::MR 1857
    +-      Net::DNS::RR::MX 1857
    +-      Net::DNS::RR::NAPTR 1857
    +-      Net::DNS::RR::NID 1857
    +-      Net::DNS::RR::NS 1857
    +-      Net::DNS::RR::NSEC 1857
    +-      Net::DNS::RR::NSEC3 1857
    +-      Net::DNS::RR::NSEC3PARAM 1857
    +-      Net::DNS::RR::NULL 1857
    +-      Net::DNS::RR::OPENPGPKEY 1857
    +-      Net::DNS::RR::OPT 1864
    +-      Net::DNS::RR::OPT::CHAIN 1864
    +-      Net::DNS::RR::OPT::CLIENT_SUBNET 1864
    +-      Net::DNS::RR::OPT::COOKIE 1864
    +-      Net::DNS::RR::OPT::DAU 1864
    +-      Net::DNS::RR::OPT::DHU 1864
    +-      Net::DNS::RR::OPT::EXPIRE 1864
    +-      Net::DNS::RR::OPT::EXTENDED_ERROR 1864
    +-      Net::DNS::RR::OPT::KEY_TAG 1864
    +-      Net::DNS::RR::OPT::N3U 1864
    +-      Net::DNS::RR::OPT::PADDING 1864
    +-      Net::DNS::RR::OPT::TCP_KEEPALIVE 1864
    +-      Net::DNS::RR::PTR 1857
    +-      Net::DNS::RR::PX 1857
    +-      Net::DNS::RR::RP 1857
    +-      Net::DNS::RR::RRSIG 1856
    +-      Net::DNS::RR::RT 1857
    +-      Net::DNS::RR::SIG 1856
    +-      Net::DNS::RR::SMIMEA 1857
    +-      Net::DNS::RR::SOA 1857
    +-      Net::DNS::RR::SPF 1857
    +-      Net::DNS::RR::SRV 1857
    +-      Net::DNS::RR::SSHFP 1857
    +-      Net::DNS::RR::SVCB 1857
    +-      Net::DNS::RR::TKEY 1857
    +-      Net::DNS::RR::TLSA 1857
    +-      Net::DNS::RR::TSIG 1856
    +-      Net::DNS::RR::TXT 1857
    +-      Net::DNS::RR::URI 1857
    +-      Net::DNS::RR::X25 1857
    +-      Net::DNS::RR::ZONEMD 1857
    +-      Net::DNS::Resolver 1855
    +-      Net::DNS::Resolver::Base 1864
    +-      Net::DNS::Resolver::MSWin32 1856
    +-      Net::DNS::Resolver::Recurse 1856
    +-      Net::DNS::Resolver::UNIX 1856
    +-      Net::DNS::Resolver::android 1856
    +-      Net::DNS::Resolver::cygwin 1856
    +-      Net::DNS::Resolver::os2 1856
    +-      Net::DNS::Resolver::os390 1856
    +-      Net::DNS::Text 1855
    +-      Net::DNS::Update 1855
    +-      Net::DNS::ZoneFile 1855
    +-      Net::DNS::ZoneFile::Generator 1855
    +-      Net::DNS::ZoneFile::Text 1855
    +-    requirements:
    +-      Carp 1.1
    +-      Digest::HMAC 1.03
    +-      Digest::MD5 2.13
    +-      Digest::SHA 5.23
    +-      Encode 2.26
    +-      Exporter 5.56
    +-      ExtUtils::MakeMaker 6.66
    +-      File::Spec 0.86
    +-      Getopt::Long 2.43
    +-      IO::File 1.08
    +-      IO::Select 1.14
    +-      IO::Socket 1.26
    +-      IO::Socket::IP 0.38
    +-      MIME::Base64 2.13
    +-      PerlIO 1.05
    +-      Scalar::Util 1.25
    +-      Time::Local 1.19
    +-      perl 5.008009
    ++  Net-Async-WebSocket-0.13
    ++    pathname: P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz
    ++    provides:
    ++      Net::Async::WebSocket 0.13
    ++      Net::Async::WebSocket::Client 0.13
    ++      Net::Async::WebSocket::Protocol 0.13
    ++      Net::Async::WebSocket::Server 0.13
    ++    requirements:
    ++      IO::Async::Listener 0.61
    ++      IO::Async::Notifier 0.63
    ++      IO::Async::Stream 0.34
    ++      Module::Build 0.4004
    ++      Protocol::WebSocket 0.22
    ++      Protocol::WebSocket::Frame 0
    ++      Protocol::WebSocket::Handshake::Client 0
    ++      Protocol::WebSocket::Handshake::Server 0
    ++      Sub::Util 1.40
    ++      URI 0
    ++      perl 5.010
    ++  Net-HTTP-6.22
    ++    pathname: O/OA/OALDERS/Net-HTTP-6.22.tar.gz
    ++    provides:
    ++      Net::HTTP 6.22
    ++      Net::HTTP::Methods 6.22
    ++      Net::HTTP::NB 6.22
    ++      Net::HTTPS 6.22
    ++    requirements:
    ++      Carp 0
    ++      Compress::Raw::Zlib 0
    ++      ExtUtils::MakeMaker 0
    ++      IO::Socket::INET 0
    ++      IO::Uncompress::Gunzip 0
    ++      URI 0
    ++      base 0
    ++      perl 5.006002
    ++      strict 0
    ++      warnings 0
    ++  Object-Import-1.005
    ++    pathname: C/CO/CORION/Object-Import-1.005.tar.gz
    ++    provides:
    ++      Object::Import 1.005
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      File::Temp 0
    ++      IO::Handle 0
    ++      MRO::Compat 0
    ++      Math::BigInt 1.59
    ++      Scalar::Util 0
    ++      Test::More 0.47
    ++      perl 5.008
    ++      strict 0
    ++      warnings 0
    ++  PDF-WebKit-1.2
    ++    pathname: M/MI/MITHALDU/PDF-WebKit-1.2.tar.gz
    ++    provides:
    ++      PDF::WebKit 1.2
    ++      PDF::WebKit::Configuration undef
    ++      PDF::WebKit::Source undef
    ++    requirements:
    ++      ExtUtils::MakeMaker 6.42
    ++      IPC::Run3 0
    ++      Moo 0
    ++      Test::Spec 0
    ++      namespace::clean 0
    ++      perl 5.008008
    +   Package-DeprecationManager-0.17
    +     pathname: D/DR/DROLSKY/Package-DeprecationManager-0.17.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.008
    +       strict 0
    +       warnings 0
    +-  Pod-Parser-1.65
    +-    pathname: M/MA/MAREKR/Pod-Parser-1.65.tar.gz
    +-    provides:
    +-      Pod::Cache 1.65
    +-      Pod::Cache::Item 1.65
    +-      Pod::Find 1.65
    +-      Pod::Hyperlink 1.65
    +-      Pod::InputObjects 1.65
    +-      Pod::InputSource 1.65
    +-      Pod::InteriorSequence 1.65
    +-      Pod::List 1.65
    +-      Pod::Paragraph 1.65
    +-      Pod::ParseTree 1.65
    +-      Pod::ParseUtils 1.65
    +-      Pod::Parser 1.65
    +-      Pod::PlainText 2.07
    +-      Pod::Select 1.65
    ++  PerlX-Maybe-1.202
    ++    pathname: T/TO/TOBYINK/PerlX-Maybe-1.202.tar.gz
    ++    provides:
    ++      PerlX::Maybe 1.202
    ++      Syntax::Feature::Maybe 1.202
    +     requirements:
    +-      Cwd 0
    +-      ExtUtils::MakeMaker 0
    +-      File::Basename 0
    +-      Test::More 0.6
    ++      ExtUtils::MakeMaker 6.17
    ++      Scalar::Util 0
    ++      perl 5.006
    ++  Protocol-WebSocket-0.26
    ++    pathname: V/VT/VTI/Protocol-WebSocket-0.26.tar.gz
    ++    provides:
    ++      Protocol::WebSocket 0.26
    ++      Protocol::WebSocket::Client undef
    ++      Protocol::WebSocket::Cookie undef
    ++      Protocol::WebSocket::Cookie::Request undef
    ++      Protocol::WebSocket::Cookie::Response undef
    ++      Protocol::WebSocket::Frame undef
    ++      Protocol::WebSocket::Handshake undef
    ++      Protocol::WebSocket::Handshake::Client undef
    ++      Protocol::WebSocket::Handshake::Server undef
    ++      Protocol::WebSocket::Message undef
    ++      Protocol::WebSocket::Request undef
    ++      Protocol::WebSocket::Response undef
    ++      Protocol::WebSocket::Stateful undef
    ++      Protocol::WebSocket::URL undef
    ++    requirements:
    ++      Carp 0
    ++      Digest::MD5 0
    ++      Digest::SHA 0
    ++      Module::Build::Tiny 0.035
    ++      Scalar::Util 0
    +   Regexp-Common-2017060201
    +     pathname: A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Sub::Quote 0
    +       Try::Tiny 0.04
    +       perl 5.008001
    ++  Scalar-List-Utils-1.62
    ++    pathname: P/PE/PEVANS/Scalar-List-Utils-1.62.tar.gz
    ++    provides:
    ++      List::Util 1.62
    ++      List::Util::XS 1.62
    ++      Scalar::Util 1.62
    ++      Sub::Util 1.62
    ++    requirements:
    ++      ExtUtils::MakeMaker 0
    ++      perl 5.006
    +   Scope-Guard-0.21
    +     pathname: C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       perl 5.008001
    +       strict 0
    +       warnings 0
    ++  Struct-Dumb-0.12
    ++    pathname: P/PE/PEVANS/Struct-Dumb-0.12.tar.gz
    ++    provides:
    ++      Struct::Dumb 0.12
    ++    requirements:
    ++      Module::Build 0.4004
    +   Sub-Exporter-0.988
    +     pathname: R/RJ/RJBS/Sub-Exporter-0.988.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Test::Harness 3.35
    +       Test::More 1.302047
    +       Test::Warn 0.30
    ++  Test-Spec-0.54
    ++    pathname: A/AK/AKZHAN/Test-Spec-0.54.tar.gz
    ++    provides:
    ++      Test::Spec 0.54
    ++      Test::Spec::Context undef
    ++      Test::Spec::Example undef
    ++      Test::Spec::ExportProxy 0.54
    ++      Test::Spec::Mocks undef
    ++      Test::Spec::Mocks::Expectation undef
    ++      Test::Spec::Mocks::MockObject undef
    ++      Test::Spec::Mocks::Stub undef
    ++      Test::Spec::SharedHash undef
    ++      Test::Spec::TodoExample undef
    ++    requirements:
    ++      Carp 0
    ++      Devel::GlobalPhase 0
    ++      Exporter 0
    ++      ExtUtils::MakeMaker 0
    ++      List::Util 0
    ++      Package::Stash 0.23
    ++      Scalar::Util 1.11
    ++      TAP::Parser 0
    ++      Test::Deep 0.103
    ++      Test::More 0.88
    ++      Test::Trap 0
    ++      Tie::IxHash 0
    ++      constant 0
    ++  Test-Trap-v0.3.4
    ++    pathname: E/EB/EBHANSSEN/Test-Trap-v0.3.4.tar.gz
    ++    provides:
    ++      Test::Trap v0.3.4
    ++      Test::Trap::Builder v0.3.4
    ++      Test::Trap::Builder::PerlIO v0.3.4
    ++      Test::Trap::Builder::SystemSafe v0.3.4
    ++      Test::Trap::Builder::TempFile v0.3.4
    ++    requirements:
    ++      Carp 0
    ++      Config 0
    ++      Data::Dump 0
    ++      Exporter 0
    ++      File::Temp 0
    ++      IO::Handle 0
    ++      Module::Build 0
    ++      Test::Builder 0
    ++      Test::More 0
    ++      Test::Tester 0.107
    ++      base 0
    ++      constant 0
    ++      lib 0
    ++      perl v5.6.2
    ++      strict 0
    ++      version 0
    ++      warnings 0
    +   Test-Warn-0.36
    +     pathname: B/BI/BIGJ/Test-Warn-0.36.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       Tie::Handle 0
    +       perl 5.006
    +       strict 0
    ++  Tie-IxHash-1.23
    ++    pathname: C/CH/CHORNY/Tie-IxHash-1.23.tar.gz
    ++    provides:
    ++      Tie::IxHash 1.23
    ++    requirements:
    ++      Test::More 0
    ++      perl 5.005
    +   Tie-ToObject-0.03
    +     pathname: N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       strict 0
    +       utf8 0
    +       warnings 0
    ++  URI-ws-0.03
    ++    pathname: P/PL/PLICEASE/URI-ws-0.03.tar.gz
    ++    provides:
    ++      URI::ws 0.03
    ++      URI::wss 0.03
    ++    requirements:
    ++      ExtUtils::MakeMaker 6.30
    ++      URI 0
    +   Unicode-LineBreak-2019.001
    +     pathname: N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       base 0
    +       lib 0
    +       perl 5.008
    ++  WWW-Mechanize-2.10
    ++    pathname: O/OA/OALDERS/WWW-Mechanize-2.10.tar.gz
    ++    provides:
    ++      WWW::Mechanize 2.10
    ++      WWW::Mechanize::Image 2.10
    ++      WWW::Mechanize::Link 2.10
    ++    requirements:
    ++      Carp 0
    ++      ExtUtils::MakeMaker 0
    ++      Getopt::Long 0
    ++      HTML::Form 1.00
    ++      HTML::HeadParser 0
    ++      HTML::TokeParser 0
    ++      HTML::TreeBuilder 5
    ++      HTTP::Cookies 0
    ++      HTTP::Request 1.30
    ++      HTTP::Request::Common 0
    ++      LWP::UserAgent 6.45
    ++      Pod::Usage 0
    ++      Scalar::Util 1.14
    ++      Tie::RefHash 0
    ++      URI::URL 0
    ++      URI::file 0
    ++      base 0
    ++      perl 5.006
    ++      strict 0
    ++      warnings 0
    ++  WWW-Mechanize-Chrome-0.68
    ++    pathname: C/CO/CORION/WWW-Mechanize-Chrome-0.68.tar.gz
    ++    provides:
    ++      Chrome::DevToolsProtocol 0.68
    ++      Chrome::DevToolsProtocol::Target 0.68
    ++      Chrome::DevToolsProtocol::Transport 0.68
    ++      Chrome::DevToolsProtocol::Transport::AnyEvent 0.68
    ++      Chrome::DevToolsProtocol::Transport::Mojo 0.68
    ++      Chrome::DevToolsProtocol::Transport::NetAsync 0.68
    ++      Chrome::DevToolsProtocol::Transport::Pipe 0.68
    ++      Chrome::DevToolsProtocol::Transport::Pipe::AnyEvent 0.68
    ++      Chrome::DevToolsProtocol::Transport::Pipe::Mojo 0.68
    ++      Chrome::DevToolsProtocol::Transport::Pipe::NetAsync 0.68
    ++      HTTP::Cookies::ChromeDevTools 0.68
    ++      WWW::Mechanize::Chrome 0.68
    ++      WWW::Mechanize::Chrome::Cookbook 0.68
    ++      WWW::Mechanize::Chrome::DSL 0.68
    ++      WWW::Mechanize::Chrome::Examples 0.68
    ++      WWW::Mechanize::Chrome::Node 0.68
    ++      WWW::Mechanize::Chrome::Troubleshooting 0.68
    ++      WWW::Mechanize::Chrome::URLBlacklist 0.68
    ++      Win32::InheritHandles 0.68
    ++    requirements:
    ++      Algorithm::Loops 0
    ++      Carp 0
    ++      Exporter 5
    ++      ExtUtils::MakeMaker 5.52_01
    ++      File::Basename 0
    ++      File::Spec 0
    ++      Filter::signatures 0.16
    ++      Future 0.35
    ++      Future::HTTP 0.06
    ++      HTML::Selector::XPath 0
    ++      HTTP::Cookies 0
    ++      HTTP::Headers 0
    ++      HTTP::Response 0
    ++      IO::Async 0
    ++      IO::Socket::INET 0
    ++      IPC::Open3 0
    ++      Imager 0
    ++      Imager::File::PNG 0
    ++      JSON 0
    ++      Log::Log4perl 0
    ++      MIME::Base64 0
    ++      Moo 2
    ++      Net::Async::WebSocket::Client 0.12
    ++      Object::Import 0
    ++      POSIX 0
    ++      PerlX::Maybe 0
    ++      Scalar::Util 0
    ++      Storable 0
    ++      Try::Tiny 0
    ++      URI 0
    ++      URI::file 0
    ++      URI::ws 0
    ++      WWW::Mechanize::Link 0
    ++      perl 5.010
    ++  WWW-RobotRules-6.02
    ++    pathname: G/GA/GAAS/WWW-RobotRules-6.02.tar.gz
    ++    provides:
    ++      WWW::RobotRules 6.02
    ++      WWW::RobotRules::AnyDBM_File 6.00
    ++      WWW::RobotRules::InCore 6.02
    ++    requirements:
    ++      AnyDBM_File 0
    ++      ExtUtils::MakeMaker 0
    ++      Fcntl 0
    ++      URI 1.10
    ++      perl 5.008001
    +   Win32-ShellQuote-0.003001
    +     pathname: H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz
    +     provides:
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +     requirements:
    +       ExtUtils::MakeMaker 0
    +       perl 5.008001
    +-  YAML-LibYAML-0.83
    +-    pathname: T/TI/TINITA/YAML-LibYAML-0.83.tar.gz
    ++  YAML-LibYAML-0.86
    ++    pathname: I/IN/INGY/YAML-LibYAML-0.86.tar.gz
    +     provides:
    +-      YAML::LibYAML 0.83
    +-      YAML::XS 0.83
    ++      YAML::LibYAML 0.86
    ++      YAML::XS 0.86
    +       YAML::XS::LibYAML undef
    +     requirements:
    +       ExtUtils::MakeMaker 0
    +@@ cpanfile.snapshot: DISTRIBUTIONS
    +       XSLoader 0
    +       lib 0
    +       perl 5.008001
    ++  libwww-perl-6.67
    ++    pathname: O/OA/OALDERS/libwww-perl-6.67.tar.gz
    ++    provides:
    ++      LWP 6.67
    ++      LWP::Authen::Basic 6.67
    ++      LWP::Authen::Digest 6.67
    ++      LWP::Authen::Ntlm 6.67
    ++      LWP::ConnCache 6.67
    ++      LWP::Debug 6.67
    ++      LWP::Debug::TraceHTTP 6.67
    ++      LWP::DebugFile 6.67
    ++      LWP::MemberMixin 6.67
    ++      LWP::Protocol 6.67
    ++      LWP::Protocol::cpan 6.67
    ++      LWP::Protocol::data 6.67
    ++      LWP::Protocol::file 6.67
    ++      LWP::Protocol::ftp 6.67
    ++      LWP::Protocol::gopher 6.67
    ++      LWP::Protocol::http 6.67
    ++      LWP::Protocol::loopback 6.67
    ++      LWP::Protocol::mailto 6.67
    ++      LWP::Protocol::nntp 6.67
    ++      LWP::Protocol::nogo 6.67
    ++      LWP::RobotUA 6.67
    ++      LWP::Simple 6.67
    ++      LWP::UserAgent 6.67
    ++    requirements:
    ++      CPAN::Meta::Requirements 2.120620
    ++      Digest::MD5 0
    ++      Encode 2.12
    ++      Encode::Locale 0
    ++      ExtUtils::MakeMaker 0
    ++      File::Copy 0
    ++      File::Listing 6
    ++      File::Temp 0
    ++      Getopt::Long 0
    ++      HTML::Entities 0
    ++      HTML::HeadParser 0
    ++      HTTP::Cookies 6
    ++      HTTP::Date 6
    ++      HTTP::Negotiate 6
    ++      HTTP::Request 6
    ++      HTTP::Request::Common 6
    ++      HTTP::Response 6
    ++      HTTP::Status 6.18
    ++      IO::Select 0
    ++      IO::Socket 0
    ++      LWP::MediaTypes 6
    ++      MIME::Base64 2.1
    ++      Module::Metadata 0
    ++      Net::FTP 2.58
    ++      Net::HTTP 6.18
    ++      Scalar::Util 0
    ++      Try::Tiny 0
    ++      URI 1.10
    ++      URI::Escape 0
    ++      WWW::RobotRules 6
    ++      parent 0.217
    ++      perl 5.008001
    ++      strict 0
    ++      warnings 0
    +   local-lib-2.000029
    +     pathname: H/HA/HAARG/local-lib-2.000029.tar.gz
    +     provides:
 -:  ------- > 39:  95a704d Install missed module
 -:  ------- > 40:  802df67 This project does not have Globals. We provide modules location via command line
 -:  ------- > 41:  05cf81a Do not query live servers while testing


Left-right comparison of this brances:
> 05cf81a (HEAD -> refactoring) Do not query live servers while testing
> 802df67 This project does not have Globals. We provide modules location via command line
> 95a704d Install missed module
> 3bc7958 Updated modules
> 5016343 Update to Mojolicious v9.31
> 8c8dbc0 Removed Example.pm
> deecd9c Simplified code
> 53329f9 Removed A::SaveData module
> daad594 Typo fix
> 9fc16f6 Put simple functionality first
> a023d27 Issue warning when we are trying to load content into button
> 3928191 Hint type was changed: warning -> error
> a19a3ae BUGFIX: Do not scroll when a link button is pressed
> 5790dc8 Extended tests for button/input/link
> f83a68e Improved example message
> 5daa3ef Close modal when response was processed
> fa75d0e Implemented deprecation message about 'data-close-modal'
> 395ddf9 Do not close modal window when ESC is keypressed and there is not an active modal window
> e9ae2a3 Improved documentation
> ef069d7 Improved comment
> 1586539 Options should be on trigger element and not on target
> 3632554 Improved text for examples
> 5183551 Improved documentation for lazy_load
> aa25331 Improved examples for lazy loading
> a3b1bb2 Improved displayResponse
> 305ea24 Be more explecit about content
> 1ed3596 Pass target element explicitly
> 39470fb Moved code to its own function
> b2c417e Renamed: form -> triggerEl
= 2f235a5 Implement and reuse processResponse
= 31dc239 Added more logging and messages to user
= d169cf6 Remove useless parameter
= 9b58983 FIXED: html not defined
= 05f4206 Renamed: form -> containerEl
= 3ac9601 Removed outdated example
= 4263831 Renamed flag which controls how deal with new content: replace-form -> replace-me
= 50573a9 Improved text on example page
= 804922f Changed function name: give_name ->after_submit_handler_name
= 307203e Removed ajaxFormModal: No reason to duplicate code
= 62343cd Implemented tests for messages with different types
> 015bc3e Renamed: replace -> update
| = 46caa01 (modalnew) Implement and reuse processResponse
| = fe80807 Added more logging and messages to user
| = 90e76c0 Remove useless parameter
| = 8405d9e FIXED: html not defined
| = c7f6e55 Renamed: form -> containerEl
| = 068723b Removed outdated example
| = 0e8defa Renamed flag which controls how deal with new content: replace-form -> replace-me
| = 9cdaeb3 Improved text on example page
| = 1c0919e Changed function name: give_name ->after_submit_handler_name
| = c681ba1 Removed ajaxFormModal: No reason to duplicate code
| = d7792ad Implemented tests for messages with different types
| < d1bbaf5 Renamed: replace -> update
|/
o aa81394 Tests were regroped by meaning

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-04-02 21:56 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-26 12:54 --creation-factor=100 does not show code Eugen Konkov
2022-07-28 14:59 ` Johannes Schindelin
2022-07-28 16:52   ` Re* " Junio C Hamano
2022-07-28 17:12     ` Ævar Arnfjörð Bjarmason
2022-07-28 17:44       ` Junio C Hamano
2022-07-28 19:46         ` Ævar Arnfjörð Bjarmason
2022-07-28 19:54           ` Junio C Hamano
2022-07-28 17:49     ` [PATCH] format-patch: clarify --creation-factor=<factor> Eric Sunshine
2022-07-28 20:55       ` Ævar Arnfjörð Bjarmason
2022-07-28 20:59         ` Junio C Hamano
2022-07-28 21:09           ` Eric Sunshine
2022-07-30  0:25             ` Eric Sunshine
2022-07-31 18:56               ` Junio C Hamano
2022-07-29 13:16     ` Re* --creation-factor=100 does not show code Johannes Schindelin
2022-07-29 22:19       ` Junio C Hamano
2022-08-01 23:17         ` Junio C Hamano
2023-04-02 21:55           ` Eugen Konkov

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).