On 12/15/2016 11:09 AM, Ben Finney wrote:
> Control: retitle -1 python-coverage: install bundled third-party 
> ‘jquery.hotkeys.js’ library
> 
> On 15-Dec-2016, Loic Dachary wrote:
>> In the case of this javascript dependency, there is no reliable API,
>> no backward compatibility and no releases.
> 
> That sounds like you're trying to convince people to never use this
> library :-) How did you reach those condemning conclusions?

:-) This is a useful file to copy/paste, I'm just saying it does not have the 
qualities one would expect from a packaged library.

>> Do you acknowledge that packaging coverage.py with dependencies that
>> are different from those provided in the upstream source may
>> introduce bugs ?
> 
> Certainly, any change to any software can introduce bugs. Why do you
> ask whether I acknowledge that?

Because I'd like to know what kind of testing/verification was done to verify 
that these changes did not introduce bugs.

> 
> If I understand you correctly, you are asking in this bug report that
> Debian's ‘python-coverage’ packages would bundle a third-party library
> that is a slightly different version of the already-packaged
> ‘libjs-jquery-hotkeys’.
> 
> That isn't an option, as explained earlier. So we'll need to seek
> another solution. I think correct solutions would include:
> 
> * Remove the dependency. If the state of that code is as bad as you
>   say, this would be a good option; I hope we'll find that it's not as
>   dire as you portray above.
> 
> * Make the dependency optional. This is recorded in the Coverage.py
>   issue tracker <URL:https://bitbucket.org/ned/coveragepy/issues/279/>.
> 
> * Bring Coverage.py forward to use the latest API for ‘jquery.hotkeys’.
> 
> There may be other options. What are your thoughts?

The better option would be to have automated tests verifying the differences 
between the upstream files and the dependencies do not introduce regressions or 
behavior changes. The debian policy does not require that upstream files are 
replaced with packages that do not match the upstream files.

In the case of jquery.hotkeys.js, the interface is different (the packaged file 
has hotkeys . and / to and they are not present in the file provided by 
coverage.py) and hotkeys won't work on all content editable areas. These are 
user facing differences.

As a general rule, when files are bundled with the upstream sources, it is safe 
to assume they are unique to the upstream. Before replacing them with a 
packaged version they should be compared and each difference analyzed. If there 
are no differences, the files can be replaced by the packaged version. If there 
are differences and they did not modify the API nor the user interface, it may 
not be enough to decide they are not significant. Contrary to C ABI/API, 
javascript allows the user to reach into the internals in ways that are not 
documented or supported. This could be considered an upstream bug (in which 
case a bug report should be filed upstream) but it also means the upstream 
files cannot be replaced by the packaged files without introducing a regression.

Cheers

-- 
Loïc Dachary, Artisan Logiciel Libre

Reply via email to