[
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]