If URL can be relative, why do we need a new path parameter? All we would need is to treat leading ./ or ../ as relative to the plugin not root, which I think is fine.
I'll sleep on it and draw it out on whiteboard tomorrow to make sure all the cases are handled. On Tue, Sep 3, 2013 at 11:56 PM, Andrew Grieve <agri...@chromium.org> wrote: > Agree the use-case is valid. Here's a variation on (1) that I think is > marginally nicer: > > url="." to be made optional, but default value is "." > subdir="" works only with git repos and is always relative to the root of > the repo. > path="" works with git repos or local paths and is relative to the > plugin.xml of the current plugin. You can't have "url" or "subdir" if you > have "path". > > Support was just added for specifying commit and path within url. So, we > could actually just deprecate "subdir". and have "url" or "path" > > E.g.: url="some/path.git" would specify a git URL relative to the current > plugin's git url. > E.g.: url="#branch2" would specify a branch on the current URL > (cordova-labs style) > E.g.: url="#branch2:plugins/A" would specify a branch on the current URL > plus a subdir within it. > E.g.: url="#:plugins/A" would be invalid. (Use path if you just want to > set the path) > E.g.: path="../B" is always a relative fs path. If the current plugin is > from git, then be careful not to go above the git root. > > > On Tue, Sep 3, 2013 at 10:27 PM, Michal Mocny <mmo...@chromium.org> wrote: > >> Mulling this over a bit, I think I would like a solution for specifying >> dependancies that would work regardless of where/how the plugins are >> hosted, git or local. If you had: >> >> BB_PLUGINS/ >> - plug1/ >> - plug2/ >> ... >> >> (and plug1 depends on plug2), then: >> >> cordova plugin add LOCAL/PATH/TO/BB_PLUGINS/plug1 ..and.. cordova >> plugin add GIT_REPO:BB_PLUGINS/plug1 >> >> ..should both work without changing all of the dependency tags in plug1. >> Actually, the plugin author should not have an explicit say in how a user >> manages these directories (except in the directory structure). Note that >> this situation applies whenever a user clones your plugin repo to locally, >> or for the reverse direction, when ever they add your plugins into their >> teams' git repo. >> >> >> Right now, thats not possible, because when installing from local path >> with >> url="." there is no way to know which of the plugins parent directories to >> consider as the "root". We could resolve this using several ways, among >> them: >> >> (1) Jeffreys proposal: dropping the url="." means "path relative to this >> plugin" (note however, that I propose it also works when installing from a >> git repo). Deprecate/warn against using url=".". >> >> (2) Support a new special file to "mark" the plugin root dir so we can >> walk >> the directory tree to find the valid target for url="." (ie, replace the >> requirement for a .git with a requirement for a .cordova_repo, which BB >> and >> others could place within their plugin bundle). >> >> >> I like (1). >> >> -Michal >> >> >> On Tue, Sep 3, 2013 at 9:54 PM, Michal Mocny <mmo...@chromium.org> wrote: >> >> > Sounds reasonable to me. >> > >> > Conceptually, I'm not sure why the syntax for (2) shouldn't do what you >> > request when the url for the original plugin was a local path? Maybe >> just >> > a bug? >> > >> > -Michal >> > >> > >> > On Tue, Sep 3, 2013 at 9:38 PM, Jeffrey Heifetz < >> jheif...@blackberry.com>wrote: >> > >> >> We were working on a redistribution of Cordova that included some >> plugins >> >> and ran into a use-case not covered by the current plugin spec.[1] >> >> >> >> Currently there are two ways to specify a dependency >> >> 1. Using a combination of url, commit and subdir which plugman will use >> >> to clone down a repo and install >> >> 2. Set the url to ".", skip the commit and specify a subdir relative to >> >> the root of the repo. Plugman then runs git-rev parse to find the root >> and >> >> install from there. >> >> >> >> I would like to propose a third way which would be relative to the >> >> current install and not use git at all >> >> 3. Skip the url, skip the commit and specify a subdir relative to the >> >> current plugin.xml. >> >> >> >> This would allow us to distribute a version of cordova with plugins to >> >> anyone without an unnecessary requirement on git (considering the >> plugins >> >> are fully installed) >> >> >> >> >> >> >> >> 1. http://cordova.apache.org/docs/en/3.0.0/plugin_ref_spec.md.html >> >> >> >> --------------------------------------------------------------------- >> >> This transmission (including any attachments) may contain confidential >> >> information, privileged material (including material protected by the >> >> solicitor-client or other applicable privileges), or constitute >> non-public >> >> information. Any use of this information by anyone other than the >> intended >> >> recipient is prohibited. If you have received this transmission in >> error, >> >> please immediately reply to the sender and delete this information from >> >> your system. Use, dissemination, distribution, or reproduction of this >> >> transmission by unintended recipients is not authorized and may be >> unlawful. >> >> >> > >> > >> > >