Xiyue Deng <manp...@gmail.com> writes:

> [[PGP Signed Part:Undecided]]
> Hi Nicholas,
>
> Nicholas D Steeves <s...@debian.org> writes:
>
>> Xiyue Deng <manp...@gmail.com> writes:
>>
>> Git pull, then read along with the reply that follows inline.
>>
>>>> Xiyue Deng <manp...@gmail.com> writes:
>>>>
>>>>>    * Drop unused override_dh_auto_test in d/rules (dh_elpa_test is in
>>>>>      effect)
>>>>
>>>>   override_dh_auto_test:
>>>>     @echo Using dh_elpa_test to run tests instead of upstream Makefile
>>>>
>>>> Used to be useful, because the Makefile tests used to run as well as the
>>>> dh_elpa_test ones.  Dh_elpa_test was also "in effect then"...
>>>>
>>>
>>> I believe dh_elpa_test disables dh_auto_test by default unless it is
>>> disabled in debian/elpa-test[1].  I think you did this change back in
>>> this commit[2] back in 2019.  On the other hand, it looks like
>>> dh_auto_test was disabled by dh-elpa even earlier[3].  Maybe you were
>>> referring to even more back then?  Anyway, would be good to figure this
>>> out.
>>
>> Some team members voluntarily accommodate backports and/or
>> oldstable-backports.  Write something like "No longer needed" or
>> something to that effect, if it's buildable on bookworm and bullseye.
>> If not buildable, talk to whoever added the B-D.
>>
>> If "Drop unnecessary Build-Depends on markdown" were true than discount
>> shouldn't become a B-D.  So there's a major contradiction in your
>> changelog entries and/or thinking.  Likewise, in the interest of
>> timeliness I'm fixing this myself.  Read the updated changelog carefully
>> and recursively follow any references.  Also, consider that if markdown
>> wasn't a B-D we wouldn't have received this RC bug notifying us of
>> markdowns removal, and it's probable no one would have noticed until
>> users complained.  That might have been after Trixie's release.  If
>> nothing else, the B-D is worth it for that.
>>
>
> (Here your response was below a past discussion on dh_elpa_test but was
> really about B-D, and I got a bit confused, but I'll assume the
> previously quoted texts are not relevant here.  I believe your were
> referring to a later part that discusses B-D.)
>
> I'd like to clarify that the contradiction in the changelog was an
> oversight and I tried to fix that: I realized that `discount' provides a
> compatible markdown command and should be a suitable replacement of the
> `markdown' and used that in place of markdown.  I tried to remove that
> entry about dropping, as you can see from my first upload on mentors[1].
> It got overwritten due to a later `gbp dch` as I didn't commit that
> changelog yet and added more work and hence that change was lost.  So in
> retrospect, I realized the early change mentioning that `markdown' is
> "unnecessary" was incorrect and tried to replace it with `discount', but
> forgot to remove the earlier entry generated from `gbp dch`.  Please
> also see my previous reply (quoted below) for my analysis on how
> markdown-mode checks for available commands to process.  I guess the
> better word to describe it is "optional" instead of "unused" indeed,
> which I tried to remove from d/changelog anyway.
>
>> Why should your colleagues give you the time of day (ie: spend any of
>> their time to review your work) if you systematically refuse to trust
>> their work?  Doing security audits would be a better use
>> skepticism/suspicion ;)
>>
>
> I hope the previous explanation would clarify that there is no
> ill-intent to discredit any of the existing work.
>
>>>>>    * Update debian copyright year in d/copyright
>>>>
>>>> -Copyright: 2015-2017 David Bremner <brem...@debian.org>
>>>> +Copyright: 2015-2024 David Bremner <brem...@debian.org>
>>>>
>>>> In terms of copyright, please explain your understanding of copyright
>>>> what you're doing here.  This is not a mere 's/17/24/' symbol
>>>> manipulation.
>>>>
>>>
>>> I was thinking about adding myself to copyright, but I remember one of
>>> the early reviews I got (which I forgot from whom) suggested that adding
>>> oneself to copyright list would require significant change to the
>>> debian/ files so I didn't do it and instead extending the copyright year
>>> coverage of the existing entry.  Maybe in such case like this one, I
>>> should go over the git history and add all people that had contributed
>>> and also add myself to the list.  Wdyt?
>>
>> For upstream, we copy what upstream says, and it's non-authoritative.
>> For debian/*, we are the authority, and it affects all of our
>> downstreams.  This means one needs to get it right.
>>
>> Rather than communicating on the level of symbol manipulation, I expect
>> you to write in a way that demonstrates a minimal understanding of
>> copyright and license.  Go to #debian-mentors on IRC and ask for reading
>> material, then get back to me about what your proposed change actual
>> means.  Key terms: "introduction to copyright free software dfsg Debian
>> packaging maintainers".
>>
>> You did add yourself to copyright, which is fine, but just remember that
>> I expect that your work will evolve from symbol manipulation to
>> understanding.  I've added a TODO for you in the changelog.  Answer
>> those questions, write a human-authored response rather than
>> machine-talk regurgitation of the git data and I think you'll meet the
>> minimum requirements.
>>
>
> I hoped my previous explanation could clarify that I have no
> ill-intention.  I guess I'll have to be more explicit here: I think
> copyright is used to acknowledge intellectual work and to ensure that
> Debian has legal permission to host and redistribute the work, and
> making it right is important.  I believe my current approach to add all
> people previously worked on `debian/*' is on the right track.
>
> I'll address the TODOs in later part.
>
>>>>> Note: this revision drops the dependency on markdown, which is important
>>>>> so that itself and all its reverse dependencies are free from
>>>>> bug#1063645 so that they are free from being removed from testing.
>>>>
>>>> This is premature.  Also, does upstream skip functional tests if a
>>>> $PATH/markdown binary cannot be called?  If this is the case then the
>>>> correct action is to configure a $PATH/compatible-markdown-replacement.
>>>>
>>>
>>> I checked by a simple grep in tests/markdown-test.el.  I had a closer
>>> look just now and it looks like it will consider 3 commands, `markdown',
>>> `pandoc', `markdown_py', and use one that is available[4].  As we already
>>> depends on pandoc, it will use it instead of markdown.  That said, it
>>> would be better if we use an alternative markdown implementation to
>>> replace the out-of-date markdown, so I have now used discount to replace
>>> markdown and reworked the Build-Depends list in the source stanza[5], as
>>> well as the Recommends list in binary stanza[6].
>>
>> Follow the breadcrumb trail that I made more explicit for you.
>>
>>> I have also compared the output with or without markdown and with
>>> discount:
>>>
>>> With markdown dependency:
>>> ,----
>>> | Ran 543 tests, 540 results as expected, 0 unexpected, 3 skipped 
>>> (2024-06-11 04:04:39+0000, 1.465706 sec)
>>> | 1 expected failures
>>> | 
>>> | 3 skipped results:
>>> |   SKIPPED  test-markdown-flyspell/check-word-p
>>> |   SKIPPED  test-markdown-flyspell/remove-overlay
>>> |   SKIPPED  test-markdown-flyspell/yaml-metadata
>>> `----
>>>
>>> Without markdown dependency:
>>> ,----
>>> | Ran 543 tests, 540 results as expected, 0 unexpected, 3 skipped 
>>> (2024-06-11 03:56:33+0000, 1.504459 sec)
>>> | 1 expected failures
>>> | 
>>> | 3 skipped results:
>>> |   SKIPPED  test-markdown-flyspell/check-word-p
>>> |   SKIPPED  test-markdown-flyspell/remove-overlay
>>> |   SKIPPED  test-markdown-flyspell/yaml-metadata
>>> `----
>>>
>>> With discount replacing markdown:
>>> ,----
>>> | Ran 543 tests, 540 results as expected, 0 unexpected, 3 skipped 
>>> (2024-06-11 04:55:59+0000, 1.410098 sec)
>>> | 1 expected failures
>>> | 
>>> | 3 skipped results:
>>> |   SKIPPED  test-markdown-flyspell/check-word-p
>>> |   SKIPPED  test-markdown-flyspell/remove-overlay
>>> |   SKIPPED  test-markdown-flyspell/yaml-metadata
>>> `----
>>>
>>> So regardless of dropping markdown or adding discount, the test behavior
>>> did not change.  I think now with discount replacing markdown it is in a
>>> better state.
>>
>> Really?  It looks to me like you proved this:
>>
>>   (setq markdown-state 3)
>>   (setq without-markdown-state 3)
>>   (setq with-discount-state 3)
>>   (setq markdown-to-discount-diff 0)
>>   (setq markdown-state (/ markdown-state markdown-to-discount-diff))
>>
>> I know this isn't idiomatically correct, but I want non-LISPers to be
>> able to understand this gentle point.
>>
>
> Sorry but you completely lost me here, especially the calculation in
> this last assignment.  What does it mean?
>
>> Please resolve this issue by completing the TODO item I put in the
>> changelog.
>>
>
> For completeness let me copy your TODO items here:
>
> ,----
> |  TODO: read the source code to see if it needs to be patched to use
> |  discount-by-default during tests, as well as in the default config.  That
> |  work will go in this section.  Answer if they're unit tests or functional
> |  tests?  That justification needs to go here.  If I have to look this
> |  stuff up myself then you can't share credit.
> `----
>
> The tests need not to be patched.  Looking into tests/markdown-test.el,
> and try to search for `markdown-command', you can find
> * 11 occurrences that it's bound to `markdown-command-identity' that
> copies a given region, which is basically a mock implementation;
> * 1 occurrence that it's bound to a lisp function that records all
> arguments;
> * 3 occurrences that it's bound to a `pandoc' command with or without
> arguments;
>   - This shows why pandoc is not used as an alternative in B-D because
>   there are tests directly use it.
> * 1 occurrence that it's bound to a non-existent command;
> * 1 occurrence it's bound to `false';
> now, this leaves 1 occurrence that it actually checks the availability
> of the command using `executable-find'.  As I mentioned in previous
> mail, it will try to find the first available command in `markdown',
> `pandoc', or `markdown_py'.  As we have package "discount" replacing
> package "markdown" which also provides `/usr/bin/markdown', it should
> still work.  In fact, the package will still work with pandoc as the
> only B-D because it can handle markdown format just fine.  This also
> explains why the 3 scenarios produce the same result: as long as the
> command "markdown" or "pandoc" are available, the tests will work as
> intended.
>
> Regarding your question of test types, except the 4 tests that use a
> real markdown-command which are functional tests, all others can be
> considered unit tests with a mock markdown-command.
>
> ,----
> |  P.S: Were we to "discount | libtext-multimarkdown-perl", the latter would
> |  never be tested, because the first branch is always chosen.
> `----
>
> Alternatives in B-D are useful in case one package is not available in
> all Debian supported architectures so that the rest of the alternatives
> can be used instead.  In this case, yes the latter would never be used
> because discount is available in all supported archs.
>
>> Best,
>> Nicholas
>>
>
> [1] Upload #1 on https://mentors.debian.net/package/markdown-mode/
>
> P.S. I feel that your wording in the last email is quite strong, and I
> don't think this was necessary.  If there is something I did or said that
> you dislike or make you uncomfortable please let me know.

Friendly ping.

-- 
Xiyue Deng

Reply via email to