I like Jesse's proposal for #3 I think we should use a new command, I like cordova *downgrade* platform
As I usually read most cordova questions on stackoverflow, most people is editing and tellign others to edit the .plist manually and doing some other manual changes. I always point them to use hooks or plugins to do that, but as it's harder they don't want to do it. BTW, I think we should add a way to write on the AndroidManifest.xml and info.plist from the config.xml as phonegap build does, using the config-file tag. Right now it's possible to use the config-file tag on plugin.xml but not on config.xml 2016-03-16 14:54 GMT+01:00 Carlos Santana <csantan...@gmail.com>: > Here is an example [1] of hooks created by ionic team member extending > config.xml to allow user to configure their native sdk settings allowing > have platforms as build artifacts. > > This could be a start at looking at some basic configuration settings via > hooks cordova provides or just in cordova tooling (i.e. platformAPI parser) > > [1]: https://github.com/mhartington/cordova-config-utils > > > On Tue, Mar 15, 2016 at 10:31 PM Carlos Santana <csantan...@gmail.com> > wrote: > > > Scratch the "migrate cli command" idea. Now I think about it really messy > > and it will be another hackHooks. > > > > I think we concentrate to provide more capabilities thru config.xml and > > hooks for making migration more smooth. > > > > Like a running hooks on after_platform_update event and providing more > > information in the hook context argument with from to platform info > > > > > > > > On Tue, Mar 15, 2016 at 9:52 PM Carlos Santana <csantan...@gmail.com> > > wrote: > > > >> By "I like the proposal and deleting all previous versions I don't see > as > >> an issue." I meant that I don't have an issue if we don't have this > feature > >> to clean old. I prefer not to have it > >> > >> On Tue, Mar 15, 2016 at 9:51 PM Carlos Santana <csantan...@gmail.com> > >> wrote: > >> > >>> I like the proposal and deleting all previous versions I don't see as > an > >>> issue. > >>> > >>> I didn't get the part of using symlinks, I don't symlinks they bring a > >>> lot of problems to implement correctly I prefer we stick to real > directory > >>> and rename directories, user can choose to create symlinks on their > needs, > >>> we would just handle them. > >>> > >>> If end up doing a flag I prefer just deleting the one being replace, as > >>> --no-backup > >>> cordova platform update ios --no-backup (using nopt notation) > >>> will do the rename ios -> ios@4.0.1 > >>> will do the add ios > >>> then only then if the add works and all plugins present get install and > >>> cli exist with none zero go and don't save the backup and delete the > folder > >>> that was rename to ios@4.0.1 > >>> > >>> But I agree for now implement default to always do a backup, no flag > >>> (maybe experimental) > >>> > >>> User needs to be explicit on harmful actions, they can do platform rm > >>> ios@4.0.1 will simple delete /platforms/ios@4.0.1 > >>> and he can do it for any platform current/active or old backups > >>> > >>> I'm OK about this proposal and we can start a new one that covers how > to > >>> help with migration. Since update becomes backup, > >>> We need to think how much we invest in migration, value of cordova is > on > >>> the runtime (core platform, and plugins) > >>> > >>> We can do start iterating with implementing enablement but specific > >>> migration tasks/actions are built on real experiences by the community. > >>> Meaning plugins/extensions that are plugable to handle migration, today > >>> peope do with hooks, I call those hackHooks :-), hooks that do hacks to > >>> make platforms build artifacts and be able to restore everything that > can't > >>> be restore with platform+plugins+config.xml > >>> > >>> So the flow I see if as the following: > >>> > >>> cordova platform update ios > >>> .... > >>> mv platforms/ios platforms/ios@4.0.1 > >>> add platforms/ios > >>> .... > >>> cordova migrate ios ios@4.0.1 > >>> > >>> This cli migrate command migrate helps user migrate things from 4.0.1 > >>> (ios@4.0.1) to 4.1 (ios/current) > >>> migrate will run the actions/tasks/extensions added by the user, this > >>> actions/tasks/extensions (don't have a good name for migrations > "things") > >>> will be available on npm with keyword cordova:migrate > >>> For example there can be a command "migrate add > >>> cordova-migrate-entitlements" (this tasks migrate ios entitlements > from an > >>> old project to a new project) > >>> this tasks/extension will be added to list of steps to do to automate > >>> migration when cli command migrate runs > >>> Cordova project can provide the tooling and maybe a handful (or zero) > of > >>> well known tasks for migration, but not more, the rest will come from > the > >>> community/3rd party to maintain and publish, this will be a way for > people > >>> like Darryl and Tommy that have knowledge on migration and hooks they > can > >>> convert those to migration npm packages to share. > >>> > >>> > >>> > >>> > >>> > >>> > >>> On Mon, Mar 14, 2016 at 8:21 PM Jesse <purplecabb...@gmail.com> wrote: > >>> > >>>> Yeah, the simple approach is probably the best! > >>>> > >>>> Move to strike --kill or any variation of it, and let developers > delete > >>>> what they want to. If it proves to be an issue, then we will address > >>>> it. > >>>> > >>>> > >>>> @purplecabbage > >>>> risingj.com > >>>> > >>>> On Mon, Mar 14, 2016 at 3:58 PM, Parashuram N <panar...@microsoft.com > > > >>>> wrote: > >>>> > >>>> > Instead of adding an entire flag to remove previous versions, does > it > >>>> make > >>>> > sense to have cordova platform android@oldVersion. Alternatively, > >>>> users > >>>> > could simple use the terminal to delete older versions from the > >>>> command > >>>> > line inside the platform folders. > >>>> > If we have users asking for a way to “remove all older platforms”, > we > >>>> > could then introduce this flag. > >>>> > > >>>> > On 3/14/16, 2:07 PM, "Shazron" <shaz...@gmail.com> wrote: > >>>> > > >>>> > >Note: > >>>> > >I prefer `--remove-previous-versions` to `--kill` so as to be > >>>> > >unambiguous and explicit. > >>>> > > > >>>> > >On Mon, Mar 14, 2016 at 2:01 PM, Shazron <shaz...@gmail.com> > wrote: > >>>> > >> +1 I like it (esp reasons in #2) > >>>> > >> > >>>> > >> I agree that platform rm+add is not there yet, case in point all > >>>> the > >>>> > >> related issues in the "Issue Links" in this issue: > >>>> > >> > >>>> > > >>>> > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fissues.apache.org%2fjira%2fbrowse%2fCB-10775&data=01%7c01%7cpanarasi%40microsoft.com%7c224926aef1e64b5a937008d34c4cc8af%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=1VmIoBecXUp3dVIMCsRB2dy7PzdHzpvHH0CgXu05Nyc%3d > >>>> > >> > >>>> > >> Some comments: > >>>> > >> > >>>> > >> `cordova platform ls` should list these previous versions as > well. > >>>> > >> > >>>> > >> `cordova platform add ios` should not delete these previous > >>>> versions? > >>>> > >> > >>>> > >> `cordova platform update ios --kill` kills *all* previous > versions, > >>>> > >> regardless of major version (clarification) > >>>> > >> > >>>> > >> `cordova platform rm ios` should just remove the current version > >>>> so it > >>>> > >> doesn't get confusing. If we have listing of the previous > versions > >>>> > >> above in `cordova platform ls`, you would have to explicitly do a > >>>> > >> `cordova platform rm ios@4.0.1` for example. However, this does > >>>> not > >>>> > >> solve for a way to remove *all* previous versions (we will have > to > >>>> > >> figure out a new command?) > >>>> > >> > >>>> > >> > >>>> > >> On Mon, Mar 14, 2016 at 1:29 PM, Jesse <purplecabb...@gmail.com> > >>>> wrote: > >>>> > >>> Considering all of the points previously mentioned, I would like > >>>> to > >>>> > make a > >>>> > >>> supplementary proposal. > >>>> > >>> > >>>> > >>> We seem to all agree that platform rm+add is ideal in a world > >>>> where we > >>>> > can > >>>> > >>> truly consider platforms as artifacts, but we are really not > >>>> there yet. > >>>> > >>> The zipped snapshot of the platform before the update that > Carlos > >>>> > mentions > >>>> > >>> is a good non-destructive way of allowing a developer the chance > >>>> to > >>>> > always > >>>> > >>> go back. > >>>> > >>> I would like to take this approach one step further and suggest: > >>>> > >>> (note: I am using 'ios' as the example platform, but this > >>>> applies to > >>>> > >>> any/all platforms ) > >>>> > >>> > >>>> > >>> 1. when updating a project, we rename the previous > platforms/ios/ > >>>> to > >>>> > >>> include the version it was, and leave it in the platforms > folder. > >>>> > >>> ex. platforms/ios/ -> platforms/ios@4.0.1/ > >>>> > >>> > >>>> > >>> 2. platforms/ios would always contain the latest ios version > >>>> installed > >>>> > for > >>>> > >>> this project. This would allow most tooling to work unchanged, > and > >>>> > >>> sidesteps symlink issues on windows with things like ios-latest > -> > >>>> > ios@4.02 > >>>> > >>> > >>>> > >>> 3. [optional or stretch goal] 'platform rm ios' could be used to > >>>> go > >>>> > back to > >>>> > >>> the previous 'current' version ( according to semver ) or should > >>>> this > >>>> > be a > >>>> > >>> new command? like 'cordova platform pop ios' ? > >>>> > >>> > >>>> > >>> 4. we can add a flag to platform update ios --kill to do a > >>>> destructive > >>>> > >>> update for users who know that that is what they want. > >>>> > >>> > >>>> > >>> 5. [optional | stretch ] allow build/run of platform artifacts > as > >>>> > well, so > >>>> > >>> developers can run commands like : 'cordova run ios@4.0.1' > >>>> > >>> > >>>> > >>> 6. the platform listed in config.xml would always be the latest > >>>> one, > >>>> > >>> regardless of how many artifacts were still around. > >>>> > >>> > >>>> > >>> Thoughts? Issues? Comments? > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> > >>>> > >>> @purplecabbage > >>>> > >>> > >>>> > > >>>> > https://na01.safelinks.protection.outlook.com/?url=risingj.com&data=01%7c01%7cpanarasi%40microsoft.com%7c224926aef1e64b5a937008d34c4cc8af%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=AYCfungKQfswLZClqFCBX2oacLlJixX8xOGAFiJjJcQ%3d > >>>> > >>> > >>>> > >>> On Wed, Mar 9, 2016 at 10:38 AM, Dan Polivy < > >>>> d...@cellartracker.com> > >>>> > wrote: > >>>> > >>> > >>>> > >>>> As a user of cordova (and list lurker), I thought I'd chime in > >>>> and say > >>>> > >>>> Carlos hit on some very good points. In theory I like the idea > of > >>>> > treating > >>>> > >>>> platforms like build artifacts, but in reality -- at least for > my > >>>> > current > >>>> > >>>> usage -- things are far from that. Making this type of change > >>>> will > >>>> > make my > >>>> > >>>> upgrades more challenging. I'm willing to live with that, but > >>>> PLEASE > >>>> > make > >>>> > >>>> sure you do a backup (or tell the user to) "just in case" > before > >>>> > nuking > >>>> > >>>> their directory. > >>>> > >>>> > >>>> > >>>> Right now, I find I do more native (non CLI) development on iOS > >>>> > compared > >>>> > >>>> to other platforms. I'd have to do a full inventory of all of > my > >>>> > native > >>>> > >>>> customizations, but as Carlos mentions it is a combination of: > >>>> > >>>> > >>>> > >>>> - working around bugs/limitations in the tools > >>>> > >>>> - additional AppDelegate customizations for native analytics > >>>> > libraries and > >>>> > >>>> error handling as our app is remotely hosted > >>>> > >>>> - the addition of dependencies as cocoapods > >>>> > >>>> - other build/plist customizations which are far simpler to > >>>> modify > >>>> > >>>> directly, e.g. adding an entitlements file to support universal > >>>> > links, or > >>>> > >>>> adding ITSEncryptionExportComplianceCode to the plist to > >>>> simplify app > >>>> > >>>> submissions > >>>> > >>>> > >>>> > >>>> Anyway, please just keep in mind those of us who may be doing > >>>> things > >>>> > the > >>>> > >>>> "old way" as you move forward here. > >>>> > >>>> > >>>> > >>>> Dan > >>>> > >>>> > >>>> > >>>> -----Original Message----- > >>>> > >>>> From: Carlos Santana [mailto:csantan...@gmail.com] > >>>> > >>>> Sent: Tuesday, March 08, 2016 3:16 PM > >>>> > >>>> To: dev@cordova.apache.org > >>>> > >>>> Subject: Re: [PROPOSAL] 'cordova platform update' alias for rm, > >>>> add in > >>>> > >>>> cordova-ios > >>>> > >>>> > >>>> > >>>> I was never a fan of the "platform update" command since it was > >>>> not > >>>> > fully > >>>> > >>>> tested across the board. > >>>> > >>>> like all the permutations possible to/from upgrade. meaning > >>>> going for > >>>> > very > >>>> > >>>> old like 3.6 to 5.1 > >>>> > >>>> > >>>> > >>>> If we do this I think it will break a lot of people that got > >>>> used to > >>>> > >>>> changing files inside platform/ios/ in terms of changing XCode > >>>> > settings in > >>>> > >>>> pbxproj like: > >>>> > >>>> - use story board to launch app to be able to support ipad pro > >>>> > >>>> - some initialization code in AppDelegate > >>>> > >>>> - Any native code they added like NativeUI to mix web and > native > >>>> > >>>> - Changes to StoryBoard to adjust webview inside native view > >>>> > >>>> - Build and Signing settings in project or target in XCode > >>>> > >>>> - Installation of cocoapods > >>>> > >>>> - Xcode Build phases scripts > >>>> > >>>> > >>>> > >>>> Meaning that they will need to restore or generate all this > >>>> things > >>>> > with > >>>> > >>>> hooks or plugins. > >>>> > >>>> > >>>> > >>>> I know that Darryl Pogue and Tommy have projects where they > can > >>>> > >>>> successfully treat platfforms folder as 100% build artifact > that > >>>> they > >>>> > can > >>>> > >>>> throw away. But to get there is not super easy > >>>> > >>>> > >>>> > >>>> "platform update ios" has being scoped to only touch the > >>>> CordovaLib > >>>> > xcode > >>>> > >>>> project, leaving the app xcode project not touched that's why > >>>> it's > >>>> > being > >>>> > >>>> safe all along > >>>> > >>>> > >>>> > >>>> What was the root cause of the recent problems with 4.1.0 for > >>>> update? > >>>> > >>>> > >>>> > >>>> Maybe we can restrict update command to major version, meaning > >>>> going > >>>> > from > >>>> > >>>> 4.x to 4.x is OK but from 3.x to 4.x is not OK. > >>>> > >>>> > >>>> > >>>> In the current release of the IBM MobileFirst, were we have a > >>>> CLI to > >>>> > wrap > >>>> > >>>> cordova commands we had a "$ mfp cordova platform update" > >>>> > >>>> We took a backup of the platform folder and create a zip with a > >>>> > timestamp > >>>> > >>>> (like ios_1457477724404.zip) > >>>> > >>>> We did this just in case the command was destructive and user > >>>> didn't > >>>> > lost > >>>> > >>>> files just in case they didn't have all files checked-in/backup > >>>> > >>>> > >>>> > >>>> So doing a backup would be good if we move forward with this > >>>> > destructive > >>>> > >>>> action of doing a platform remove > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> On Tue, Mar 8, 2016 at 5:36 PM So, Byoungro < > >>>> byoungro...@intel.com> > >>>> > wrote: > >>>> > >>>> > >>>> > >>>> > I second that. +1 > >>>> > >>>> > > >>>> > >>>> > Byoungro So > >>>> > >>>> > SSG / DPD / Mobile Computing and Compilers > >>>> > >>>> > Intel Corporation > >>>> > >>>> > > >>>> > >>>> > From: Anis KADRI <anis.ka...@gmail.com<mailto: > >>>> anis.ka...@gmail.com > >>>> > >> > >>>> > >>>> > Reply-To: "dev@cordova.apache.org<mailto: > >>>> dev@cordova.apache.org>" < > >>>> > >>>> > dev@cordova.apache.org<mailto:dev@cordova.apache.org>> > >>>> > >>>> > Date: Tuesday, March 8, 2016 at 2:34 PM > >>>> > >>>> > To: "dev@cordova.apache.org<mailto:dev@cordova.apache.org>" > < > >>>> > >>>> > dev@cordova.apache.org<mailto:dev@cordova.apache.org>> > >>>> > >>>> > Subject: Re: [PROPOSAL] 'cordova platform update' alias for > >>>> rm, add > >>>> > in > >>>> > >>>> > cordova-ios > >>>> > >>>> > > >>>> > >>>> > I support this as well. Real updates never work. Better to > >>>> > remove/add. > >>>> > >>>> > > >>>> > >>>> > On Tue, Mar 8, 2016 at 12:04 PM Steven Gill < > >>>> stevengil...@gmail.com > >>>> > >>>> > <mailto:stevengil...@gmail.com>> wrote: > >>>> > >>>> > > >>>> > >>>> > I would also like to see this happen. Would this cause > >>>> problems if > >>>> > we did > >>>> > >>>> > this for other platforms? > >>>> > >>>> > > >>>> > >>>> > On Tue, Mar 8, 2016 at 11:55 AM, Shazron <shaz...@gmail.com > >>>> <mailto: > >>>> > >>>> > shaz...@gmail.com>> wrote: > >>>> > >>>> > > >>>> > >>>> > > See: > >>>> > >>>> > > > >>>> > > >>>> > https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fissues.apache.org%2fjira%2fbrowse%2fCB-10775&data=01%7c01%7cpanarasi%40microsoft.com%7c224926aef1e64b5a937008d34c4cc8af%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=1VmIoBecXUp3dVIMCsRB2dy7PzdHzpvHH0CgXu05Nyc%3d > >>>> > >>>> > > > >>>> > >>>> > > Problem: > >>>> > >>>> > > For cordova-ios, "cordova platform update" does its own > >>>> thing, > >>>> > which > >>>> > >>>> > > causes problems. > >>>> > >>>> > > > >>>> > >>>> > > Proposal: > >>>> > >>>> > > Change "cordova platform update ios@version" to be > >>>> basically an > >>>> > alias > >>>> > >>>> > for: > >>>> > >>>> > > "cordova platform rm ios" > >>>> > >>>> > > "cordova platform add ios@version" > >>>> > >>>> > > > >>>> > >>>> > > > >>>> > > --------------------------------------------------------------------- > >>>> > >>>> > > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > >>>> > <mailto: > >>>> > >>>> > dev-unsubscr...@cordova.apache.org> > >>>> > >>>> > > For additional commands, e-mail: > dev-h...@cordova.apache.org > >>>> > <mailto: > >>>> > >>>> > dev-h...@cordova.apache.org> > >>>> > >>>> > > > >>>> > >>>> > > > >>>> > >>>> > > >>>> > >>>> > > >>>> > >>>> > > >>>> > >>>> > > >>>> > > --------------------------------------------------------------------- > >>>> > >>>> > To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > >>>> > >>>> > For additional commands, e-mail: dev-h...@cordova.apache.org > >>>> > >>>> > > >>>> > >>>> > >>>> > >>>> > >>>> --------------------------------------------------------------------- > >>>> > >>>> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > >>>> > >>>> For additional commands, e-mail: dev-h...@cordova.apache.org > >>>> > >>>> > >>>> > > > >>>> > > >--------------------------------------------------------------------- > >>>> > >To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org > >>>> > >For additional commands, e-mail: dev-h...@cordova.apache.org > >>>> > > > >>>> > > >>>> > > >>>> > >>> >