[ 
https://issues.apache.org/jira/browse/CB-12738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16004355#comment-16004355
 ] 

ASF GitHub Bot commented on CB-12738:
-------------------------------------

GitHub user matrosov-nikita opened a pull request:

    https://github.com/apache/cordova-lib/pull/554

    CB-12738: Cordova ignores plugin dependency version on windows platform

    <!--
    Please make sure the checklist boxes are all checked before submitting the 
PR. The checklist
    is intended as a quick reference, for complete details please see our 
Contributor Guidelines:
    
    http://cordova.apache.org/contribute/contribute_guidelines.html
    
    Thanks!
    -->
    
    ### Platforms affected
    windows
    
    ### What does this PR do?
    Steps to reproduce w\ `cordova-7.0.2-dev`:
    1) `cordova create sample`
    2) `cordova platform add android`
    3) `cordova plugin add cordova-plugin-file-transfer`
    
    `Cordova-plugin-file-transfer` has `cordova-plugin-file@^4.0.0` as 
dependency and it should install the latest version (`4.4.3`), but after 
installation, I get `4.0.0`. Cordova treats `^` symbol as special in windows 
shell when running `npm.cmd install` and ignores it. We should enclose version 
range with quotes in case of windows platform.
    
    ### Checklist
    - [x] [Reported an issue](http://cordova.apache.org/contribute/issues.html) 
in the JIRA database
    - [x] Commit message follows the format: "CB-3232: (android) Fix bug with 
resolving file paths", where CB-xxxx is the JIRA ID & "android" is the platform 
affected.
    - [ ] Added automated test coverage as appropriate for this change.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/matrosov-nikita/cordova-lib 
fix-plugin-dependency

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-lib/pull/554.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #554
    
----
commit d0c2bef764856f12cac0f77152ffb022d77ab3e1
Author: Nikita Matrosov <[email protected]>
Date:   2017-05-10T08:58:51Z

    CB-12738: Cordova ignore plugin dependency version on windows platform

----


> cordova ignores plugin dependency version
> -----------------------------------------
>
>                 Key: CB-12738
>                 URL: https://issues.apache.org/jira/browse/CB-12738
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-cli, cordova-lib
>            Reporter: Marcus Pridham
>
> You can see this with the cordova-plugin-file-transfer.  When you install 
> this plugin and it installs the cordova-plugin-file plugin dependency the CLI 
> writes
> Fetching plugin "cordova-plugin-file" via npm
> The first problem is in the PluginInfo _parseDependency function
> https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;a=blob;f=cordova-common/src/PluginInfo/PluginInfo.js;h=48174707b0dbf6f60eb65faeb14c51e4b3868b1b;hb=HEAD#l108
> It does not parse out the dependency version.  This part:
> {code}
>         var dep =
>             { id : tag.attrib.id
>             , url : tag.attrib.url || ''
>             , subdir : tag.attrib.subdir || ''
>             , commit : tag.attrib.commit
>             };
> {code}
> Should be:
> {code}
>         var dep =
>             { id : tag.attrib.id
>             , url : tag.attrib.url || ''
>             , subdir : tag.attrib.subdir || ''
>             , commit : tag.attrib.commit
>             , version : tag.attrib.version
>             };
> {code}  
> The second problem is in the plugman installDependency method
> https://git-wip-us.apache.org/repos/asf?p=cordova-lib.git;a=blob;f=cordova-lib/src/plugman/install.js;h=fca77c688d2b8f19ce63cb176f50ecd44c9a9032;hb=HEAD#l603
> The dep_src is only constructed using the plugin id.
> This:
> {code}
> var dep_src = dep.url.length ? dep.url : dep.id;
> {code}
> Should look something like:
> {code}
>         var dep_src;
>         if (dep.url.length) {
>             dep_src = dep.url;
>         }
>         else if (dep.version) {
>             dep_src = dep.id + '@' + dep.version;
>         } else {
>             dep_src = dep.id;
>         } 
> {code}
> With these changes the Cordova CLI correctly reports:
> Fetching plugin "cordova-plugin-file@^4.0.0" via npm



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to