apache / cordova-paramedic

Apache Cordova - Paramedic
https://cordova.apache.org/
Apache License 2.0
36 stars 53 forks source link

(windows-)debug-mode-plugin? #186

Open janpio opened 5 years ago

janpio commented 5 years ago

debug-mode-plugin is a plugin that is installed into the projects only when run for Windows projects:

https://github.com/apache/cordova-paramedic/blob/80eb5d442d19de34b003f04f21fda6b4cb7bcdd0/lib/ParamedicApp.js#L77-L79

It is described as a "Plugin to enable package debugging to allow app run without active local/remote desktop session".

During testing on how to get Paramedic to run on Appveyor CI for Windows, this plugin pops up as not being able to be run in an admin prompt, which Appveyor unfortunately uses. So I am trying to find out more about it.

@vladimir-kotikov, you added this plugin back in 2016: https://github.com/apache/cordova-paramedic/commit/28d5dac1d7adf2ba11027936421a71ede356fdce#diff-19a6844df51501521e8c6894d2409964 Are you still around and can maybe help me understand what this is doing and what it is needed for? What use cases does this enable?

janpio commented 5 years ago

Found this when looking for related things: https://github.com/appveyor/ci/issues/201#issuecomment-180349566

Another thing to be aware of is that Windows Store apps don't run w/o active desktop or remote session out of the box. We use some trick to enable special debug mode to get it working on our CI:

apache/cordova-medic@49da31f#diff-02ebb0a2743750f76789021349d1f4c9R219

apache/cordova-medic:lib/patches/EnableDebuggingForPackage.ps1@master

The two links this includes point to cordova-medic, which lets us understand when these files were actually added to Cordova: https://github.com/apache/cordova-medic/commit/fe88e35aa2783a0734c321a7f87cdb4a4bb7902d#diff-53ebcd64cdfe27c747bcf921f35fe9e8 Aug 5, 2014 by @sgrebnov and @vladimir-kotikov

It's interesting now that this seems to have been added to be able to run in CI, which back then probably meant Jenkins or Buildbot!? Maybe that did not have the same problems as AppVeyor of only running in admin prompts and because of that worked back then?

vladimir-kotikov commented 5 years ago

@janpio If I remember correctly (this was a looooong time ago :)) we used Azure VMs to run CI (that was Jenkins IIRC) for Windows platform on and had some issues due to Windows VMs running in headless mode, without desktop session attached which this plugin fixes. Since we were running CI under non-admin user on those machines this plugin worked just fine for us.

janpio commented 5 years ago

Thanks for that context :)