Cool. 
You've convinced me, I'm okay with symlink and admin only now. 
Glad to hear you're testing on windows! Someone from ms may offer you a wp8 to 
test on. :p
Once we fully embrace browserify we won't need the define wrap code for js, so 
it is at least a temporary issue. 



> On Jan 26, 2015, at 5:24 PM, Andrew Grieve <[email protected]> wrote:
> 
> Changes don't touch js code at all. Just .java / .m / .h.
> 
> I *did* do what Jesse suggested with the project.pbxproj references for
> iOS. Still ended up creating symlink source files anyways though, just so
> that I can fs.readlink them upon uninstall and figure out which project
> references to remove.
> 
> For Android, you can link in CordovaLib without a symlink by doing what I
> did for the test/ project (
> https://github.com/apache/cordova-android/blob/master/test/settings.gradle).
> You could probably link in all the plugin sources by listing them out in
> the gradle file as well, but that would be far more work.
> 
> I noted on the first of the JIRAs, but I *did* test all of this out on a
> windows 8 VM and it worked fine. Without admin, you get a permissions
> error, with admin rights, it works fine. Since this flag is just for plugin
> authors, I don't think it's a big deal that on Windows it requires admin.
> That said, if someone wants to put the work in to rejigger it to not need
> them, that's good too! And hey... I hear Windows 10 is around the corner...
> Maybe with such a big version jump it will have userland symlinks!?
> 
>> On Mon, Jan 26, 2015 at 6:51 PM, Jesse <[email protected]> wrote:
>> 
>> The same trick is available from xcode, which means the file or folder gets
>> added to the project, but it is 'referenced' from it's location, without
>> copying local.  I too prefer the approach of NOT needing to symlink,
>> 
>> Again, to Andrew, did you test any of this on windows? Android Studio is
>> available for windows too right, how much of your install base is on
>> windows?
>> 
>> Also, didn't mention this earlier, but how are we handling the differences
>> between checkin js plugin state and runtime js plugin state?  In order to
>> run and load correctly js-module code needs to be wrapped in a
>> cordova.define(...) call.
>> 
>> 
>> 
>> 
>> @purplecabbage
>> risingj.com
>> 
>> On Mon, Jan 26, 2015 at 3:31 PM, Murat Sutunc <[email protected]>
>> wrote:
>> 
>>> I've some concerns about linking workflow in Windows.
>>> Having admin rights in a cmd prompt is not desirable - there are many
>>> cases where a user might not have the rights. I'm currently investigating
>>> `Junctions` to see if it will work for this scenario. Alternatively we
>> can
>>> do the trick Jesse suggested earlier for Windows. I'll follow up with a
>> PR
>>> later to enable this for Windows devs.
>>> 
>>> -----Original Message-----
>>> From: [email protected] [mailto:[email protected]] On Behalf Of Andrew
>>> Grieve
>>> Sent: Monday, January 26, 2015 8:50 AM
>>> To: Andrew Grieve
>>> Cc: dev
>>> Subject: Re: FYI: Created a plugin to help with local plugin development
>>> 
>>> And... now:
>>> 
>>>    createmobilespec.sh --linkplatforms
>>> 
>>> and
>>> 
>>>    createmobilespec.sh --link
>>> 
>>> is and alias for
>>> 
>>>    createmobilespec.sh --linkplugins --linkplatforms
>>> 
>>> So, for iOS and Android, this will create a project where you can edit
>>> native files in both plugins and platform and the changes will be
>> reflected
>>> in cordova-ios, cordova-android, cordova-plugin-foo* repos!
>>> 
>>> Also - looks like I had accidentally hardcoded --browserify to be on on
>>> Thursday.
>>> Fixed now, but if you noticed mobilespec being funny, it's because
>>> --browserify was on.
>>> 
>>> 
>>> 
>>> On Thu, Jan 22, 2015 at 10:30 PM, Andrew Grieve <[email protected]>
>>> wrote:
>>> 
>>>> Implemented the iOS approach:
>>>> https://issues.apache.org/jira/browse/CB-8354
>>>> 
>>>>    createmobilespec.sh --linkplugins --android --ios
>>>> 
>>>> This lets you (after command-line building once in Android's case):
>>>> 1. open the project in Android Studio or Xcode 2. edit plugin .java /
>>>> .m / .h 3. see the change reflected in your local cordova-plugin-foo
>>>> directories
>>>> 
>>>> Also added:
>>>> 
>>>>    createmobilespec.sh --browserify
>>>> 
>>>> which does what you think it does.
>>>> 
>>>> 
>>>> On Mon, Jan 5, 2015 at 9:49 PM, Andrew Grieve <[email protected]>
>>>> wrote:
>>>> 
>>>>> Thought about Windows, but didn't test on it. Figured since --link
>>>>> was a hot-off-the-press flag, that if there were bugs with it we
>>>>> could keep iterating.
>>>>> 
>>>>> iOS approach makes sense to me. I've added it to the JIRA.
>>>>> 
>>>>> On Mon, Jan 5, 2015 at 6:53 PM, Jesse <[email protected]>
>> wrote:
>>>>> 
>>>>>> Andrew, did you test your changes in Android Studio for Windows? I
>>>>>> am curious how well symlinks work there.
>>>>>> Visual Studio and XCode both support adding file/folder references,
>>>>>> which would mean that saving a changed plugin native file would save
>>>>>> it to it's original location.  This is the way I have typically
>>> developed plugins:
>>>>>> - install once
>>>>>> - change file paths in the IDE to point to the plugin-repo directly
>>>>>> - debug / iterate / add functionality in the IDE
>>>>>> - once satisfied, remove the plugin, and re-install the way a mortal
>>>>>> user would, smoke test
>>>>>> - publish
>>>>>> 
>>>>>> essentially, avoiding constant re/un/installing
>>>>>> 
>>>>>> 
>>>>>> @purplecabbage
>>>>>> risingj.com
>>>>>> 
>>>>>> On Mon, Jan 5, 2015 at 12:56 PM, Andrew Grieve
>>>>>> <[email protected]>
>>>>>> wrote:
>>>>>> 
>>>>>>> Along these lines, I likewise got frustrated with my workflow and
>>>>>> added a
>>>>>>> new feature to "cordova plugin add --link".
>>>>>>> 
>>>>>>> Instead of just creating symlink in the plugins/ directory, it now
>>>>>>> also creates symlinks for .java files, so that you can edit plugin
>>>>>>> .java
>>>>>> files
>>>>>>> in Android Studio, and hitting save will cause the original plugin
>>>>>> .java
>>>>>>> file to be updated!
>>>>>>> 
>>>>>>> Worth experimenting with for other platforms as well I think, but
>>>>>>> this setup does require the IDE & build tools to play nicely with
>>>>>>> symlinks (which is why I did it for Android only).
>>>>>>> 
>>>>>>> https://issues.apache.org/jira/browse/CB-8244.
>>>>>>> 
>>>>>>>> On Mon, Dec 1, 2014 at 5:13 PM, Michal Mocny <[email protected]>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> Took the opportunity to use our new plugin hooks and created a
>>>>>> plugin to
>>>>>>>> automate a tedious task I've been doing a lot of recently:
>>>>>>>> plugin re-installation.
>>>>>>>> 
>>>>>>>> https://github.com/mmocny/cordova-plugin-plugin-auto-upgrade
>>>>>>>> 
>>>>>>>> As per the README:
>>>>>>>> ================
>>>>>>>> 
>>>>>>>> This plugin with automatically upgrade (re-install) a set of
>>>>>>>> plugins (specified by you) before every cordova prepare. This is
>>>>>>>> useful if
>>>>>> you
>>>>>>> are
>>>>>>>> doing plugin development and would like to automatically
>>>>>>>> synchronize
>>>>>> your
>>>>>>>> app with any changes made to your plugin.
>>>>>>>> 
>>>>>>>> Install the plugin: cordova plugin add
>>>>>>>> org.apache.cordova.labs.pluginAutoUpgrade
>>>>>>>> 
>>>>>>>> At root of your app, create a pluginAutoUpgrade.json file, which
>>>>>> looks
>>>>>>>> like:
>>>>>>>> 
>>>>>>>> {
>>>>>>>>  "PLUGIN_ID": "PLUGIN_INSTALL_PATH",
>>>>>>>>  "PLUGIN_ID2": "PLUGIN_INSTALL_PATH"
>>>>>>>> }
>>>>>>>> 
>>>>>>>> ================
>>>>>>>> 
>>>>>>>> This is useful if you are making changes to a plugin inside the
>>>>>> plugin's
>>>>>>>> directory structure.
>>>>>>>> 
>>>>>>>> For more meaty plugin work, you are possibly better off making
>>>>>>>> native changes inside platforms/ and js changes inside plugins/,
>>>>>>>> and being
>>>>>> very
>>>>>>>> careful to not clobber your work (or use the build/run scripts
>>>>>> directly
>>>>>>> to
>>>>>>>> skip prepare entirely).  I'm considering improving that workflow
>>>>>>>> as
>>>>>> well.
>>>>>>>> 
>>>>>>>> For now, I've found this plugin useful for minor plugin work.
>>>>>> Sharing in
>>>>>>>> case you do, too.
>>>>>>>> 
>>>>>>>> -Michal
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>> 

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

Reply via email to