Hi, guys.
We've cherry-picked all the commits related to iOS9 / Xcode 7 issues into 3.9.x and send corresponding
PR to 3.9.x branch [1]. Shazrov, Steve please review when possible.
Regarding new board for 3.9.2 release - neither Sergey nor me don't have a permissions to
create a shared queries, so we just tagged issues with <cordova-ios-3.9.2> label. You
can find all tagged issues using a query [2].
---
[1] https://github.com/apache/cordova-ios/pull/175
[2] https://issues.apache.org/jira/browse/CB-9729?jql=labels%20%3D%20cordova-ios-3.9.2
-----Original Message-----
From: Shazron [mailto:shazron@gmail.com]
Sent: Friday, October 23, 2015 3:29 PM
To: dev@cordova.apache.org
Subject: Re: [DISCUSS] cordova-ios 4.0.0 release
Sorry for the late reply -- took a sick day.
I'd really like to just get cordova-ios 4.x out without a patch release in between, since
there are just a few more issues left before we can clear the board (I'll triage it again),
and a 4.x release would follow closely a 3.9.2 release.
After mulling it over -- what I want and what is needed is of course two things. I really
don't want the headache of third-party plugin breakage issues on the first day of release,
which will happen. The API removals (although our prerogative) never had a deprecation warning.
In a perfect world, after blogging about it and communicating it to plugin authors, they would
update their plugins in a backwards compatible way immediately (which I plan to write a howto
included in the platform and/or blog post -- there's a jira issue for it)
No plugin author updates things without encountering a breakage after hearing from their users
-- blog posts just don't have the impact that code breakage does :) So -- here's a plan:
A cordova-ios-3.9.2 release, there should be two goals:
1. iOS 9 / Xcode 7 fixes (scan the 4.x kanban board for all fixed issues) 2. Add deprecation/removal
warnings through the macro (https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2fmaster%2fCordovaLib%2fClasses%2fPublic%2fCDVAvailabilityDeprecated.h%23L23&data=01%7c01%7cv-vlkoti%40064d.mgd.microsoft.com%7cd6ed60025678403e0fd008d2dba59f1b%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=7p9BQz45eR6YUHUjiySQolzVCT9bNmqidrTQTVkn8OM%3d).
Not a deprecation, but a removal since that is our prerogative for major version bumps.
For #2, for the API items that have been removed (through the macros)
-- we include strong language and pointers on how to fix it, and/or instructions for users
to contact the plugin author to fix. Not sure how hard -- we could have some introspection
in the plugin to actually print out the plugin id responsible.
For cordova-ios-3.9.2 I would create a kanban board "cordova-ios-3.9.2" (linked to label 'cordova-ios-3.9.2'),
then go through the cordova-ios-4.x board, see what issues apply, then add the label "cordova-ios-3.9.2"
which would automatically appear on the new board. Go through the items in the new board,
and cherry-pick the patches into the 3.9.x branch.
Can Microsoft take on this 3.9.2 release while I continue to get the 4.x release out?
FYI -- ATS is handled by the CLI (should be in the next cli release) and is not dependent
on the cordova-ios platform.
Thoughts?
On Wed, Oct 21, 2015 at 10:24 AM, Nikhil Khandelwal <nikhilkh@microsoft.com> wrote:
> Sent the message before completing it.
>
> What are good tasks to be poached on cordova-ios-4.x? In particular, my team can help
out with cordova-lib related ios tasks. Also, fixing plugins or filing issues for upcoming
breakages are great areas we can help out. ios 4.x has critical fixes for XCode 7 usage which
people need sooner rather than later [1]. Could you mark them with a tag 'poachable'? We can
follow up on slack as well if this requires back and forth. I'll ping you later today.
>
> As for breaking change below, I've not been keeping up ios-4.x as closely - I must've
missed the communication on it. I understand there is a possibility of breaking because of
how "categories" work in Objective-C (I just read up on it - it's a nifty feature). I also
understand that they were not *intended* to be used. AFAIK we do not document our platform
APIs and even our core plugins (camera) was using this particular API. As we discussed in
cordova F2F, developers do not have high confidence with the version of plugins (particularly
third party) to pick and choose and anything we could do in how we version our API/manage
breaking changes - will make Cordova a smoother experience. The impact of this breaking change
is HIGH from the small sample set of plugins we tested.
>
> As far as I understand, Cordova-ios 3.9.x is not usable with XCODE 7 - ATS, ENABLE_BITCODE
being two issues[2]. Cordova-ios 4.x is not ready and will likely break the third-party plugins
they use when it releases. Should we really push for a patch release for cordova-ios 3.9.x
to fix XCODE 7 issues? @Shaz: How feasible would this be? I know some of us at Microsoft can
help do this with guidance.
>
> [1]
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fstacko
> verflow.com%2fsearch%3fq%3dENABLE_BITCODE%2b%255Bcordova%255D&data=01%
> 7c01%7cv-vlkoti%40064d.mgd.microsoft.com%7cd6ed60025678403e0fd008d2dba
> 59f1b%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=6TZPBz5vNlDgL1A9c7%
> 2fsUoknh553FwrIqL7pjbsqcFE%3d [2]
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fstacko
> verflow.com%2fsearch%3fq%3d%2522XCODE%2b7%2522%2b%255Bcordova%255D&dat
> a=01%7c01%7cv-vlkoti%40064d.mgd.microsoft.com%7cd6ed60025678403e0fd008
> d2dba59f1b%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=LKaFhkW05D%2fG
> ZcInG4LUTRm9Am2QMyMMxhrwcFtCIK0%3d
>
> -----Original Message-----
> From: Nikhil Khandelwal [mailto:nikhilkh@microsoft.com]
> Sent: Wednesday, October 21, 2015 7:09 AM
> To: dev@cordova.apache.org
> Subject: RE: [DISCUSS] cordova-ios 4.0.0 release
>
> What are good tasks to be poached on cordova-ios-4.x? In particular, my team can help
out with cordova-lib related ios tasks. Also, fixing plugins or filing issues for upcoming
breakages are great areas we can help out. ios 4.x has critical fixes for XCode 7 usage which
people need sooner rather than later [1]. Could you mark them with a tag 'poachable'? We can
follow up on slack as well if this requires back and forth. I'll ping you later today.
>
> As for breaking change below, I've not been keeping up ios-4.x as
> closely - I must've missed the communication on it. I understand there
> is a possibility of breaking because of how "categories" work in
> Objective-C (I just read up on it - it's a nifty feature). I also
> understand that they were not *intended* to be used. AFAIK we do not
> document our platform APIs and even our core plugins (camera) was
> using this particular API. As we discussed in cordova F2F
>
> As far as I understand, Cordova-ios 3.9.x is not usable with XCODE 7 - ATS, ENABLE_BITCODE
being two issues[2]. Cordova-ios 4.x is not ready and will likely break the third-party plugins
they use when it releases. Should we really push for a patch release for cordova-ios 3.9.x
to fix XCODE 7 issues? @Shaz: How feasible would this be?
>
> [1]
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fstacko
> verflow.com%2fsearch%3fq%3dENABLE_BITCODE%2b%255Bcordova%255D&data=01%
> 7c01%7cnikhilkh%40microsoft.com%7cea1259c06ea744fff37e08d2da213c72%7c7
> 2f988bf86f141af91ab2d7cd011db47%7c1&sdata=EssE%2b0BTiymN1aS7HtBoOVM%2b
> usvcGAKZHanRs9QZXYw%3d [2]
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2fstacko
> verflow.com%2fsearch%3fq%3d%2522XCODE%2b7%2522%2b%255Bcordova%255D&dat
> a=01%7c01%7cnikhilkh%40microsoft.com%7cea1259c06ea744fff37e08d2da213c7
> 2%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=PBGhQ3sro1fE6Ft3ZOHBv3R
> kLdNMOg%2fp4gFgSq2Eets%3d
>
> -Nikhil
>
> -----Original Message-----
> From: Shazron [mailto:shazron@gmail.com]
> Sent: Tuesday, October 20, 2015 10:34 PM
> To: dev@cordova.apache.org
> Subject: Re: [DISCUSS] cordova-ios 4.0.0 release
>
> This release will not be complete as long as the cordova-ios-4.x board has issues. The
only major issue is the plugin building stuff plus docs.
>
> The removal was projected for some time - you might not have remembered the discussions
in JIRA. NSData+Base64 are "Categories" in Objective-C parlance. These were *never* documented
to be used outside of Cordova and are fair game for removal, particularly a major version
release. The problem with Categories are, other non-Cordova code can implement these Categories
with the same names as well -- and during runtime the implementation that is "chosen" is indeterminate.
We can't have that with Cordova since JSON serialization and deserialization are important
for the bridge.
>
> Yes, a blog post and "migration guide" is coming, among other things
> on my plate -- see
> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fissue
> s.apache.org%2fjira%2fbrowse%2fCB-9785&data=01%7c01%7cnikhilkh%40micro
> soft.com%7c65695fee7d4149d0fd4108d2d9d9507f%7c72f988bf86f141af91ab2d7c
> d011db47%7c1&sdata=sGf5ya8dvvT2BxunFhyA0X7IzCXRdEG4bxmbZT0rgu0%3d
> My plan is to send pull requests to some plugins with the common issues, so people can
see how to update.
>
>
>
> On Tue, Oct 20, 2015 at 9:45 PM, Nikhil Khandelwal <nikhilkh@microsoft.com> wrote:
>> Where are we with this release?
>>
>> Alexander Sorokin did some analysis on plugin build failures because of this ios-4.0-dev
and there are quite a few.
>>
>> This spreadsheet summarizes the build failures with the build log in a comment:
>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fdocs.
>> google.com%2fspreadsheets%2fd%2f1sm8ioXY21z3RdyqT7J9n1Q_hmm9zgod5awTo
>> F
>> F_X66U%2fedit%3fusp%3dsharing&data=01%7c01%7cnikhilkh%40microsoft.com
>> %
>> 7c65695fee7d4149d0fd4108d2d9d9507f%7c72f988bf86f141af91ab2d7cd011db47
>> % 7c1&sdata=PTiv%2bPvncuJ4g0b%2bj8GTO1ovdCKL8Y%2fHFW4QEQt%2b6i8%3d
>>
>> Quite a few of the failures are because of the removal of NsData+Base64.h https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2fmaster%2fguides%2fAPI%2520changes%2520in%25204.0.md%23nsdatabase64h.&data=01%7c01%7cnikhilkh%40microsoft.com%7c65695fee7d4149d0fd4108d2d9d9507f%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=GS43mbEp5TKlUWs4A2mRMZ36sMaBxniFC%2fQbRkzzg24%3d
What's the rationale behind removing this? Did we deprecate these methods before we removed
them?
>>
>> I understand the changes for plugin developers are simple - but it does seem to require
a number of plugins to be updated to ensure apps are not broken.
>>
>> It will be great to publish a blog post on cordova blog about these breaking changes.
>>
>> -Nikhil
>>
>>
>> -----Original Message-----
>> From: Carlos Santana [mailto:csantana23@gmail.com]
>> Sent: Wednesday, September 2, 2015 10:22 PM
>> To: dev@cordova.apache.org
>> Subject: Re: [DISCUSS] cordova-ios 4.0.0 release
>>
>> +1 Choo Choo ...
>>
>> I reviewed all links in your proposal and they look and don't have
>> concerns
>>
>> IBM MobileFirst was affected only by the API change of using
>> webviewengine now but that's so far the only major change
>>
>> In the kaban board for 4.0 there are some issues I consider nice to
>> have that are not blockers to get a 4.0 out for iOS if we get closed
>> to the ios9 launched date they can be deferred to a 4.0.1
>>
>> On Tue, Sep 1, 2015 at 7:38 PM Shazron <shazron@gmail.com> wrote:
>>
>>> Gotta get the train going again, it's been too long.
>>>
>>> The kanban board for this is at:
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fiss
>>> u
>>> e
>>> s.apache.org%2fjira%2fsecure%2fRapidBoard.jspa%3frapidView%3d76&data
>>> =
>>> 0
>>> 1%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286
>>> %
>>> 7
>>> c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=b11%2bCUSw4d5Q9SN%2b8roA
>>> W
>>> o
>>> Ra2plB0lJXeCJb9RC2Sqw%3d
>>>
>>> Please help if you can by assigning an issue to yourself, and
>>> selecting the "Start Progress" button. This will show who is working
>>> on what in the middle "In Progress" column.
>>>
>>> I've trimmed this and it includes cordova-ios platform issues, and
>>> some plugin issues. Priority given to platform issues of course, and
>>> issues with iOS 9. If there is a pressing issue that needs to go in,
>>> assign it the label "cordova-ios-4.0.x" but propose it to this
>>> thread first so we don't get de-railed, there's only so much room on
>>> the train. Similarly if you think an issue can get thrown off the
>>> train to cordova-ios-5.0.x, post on this thread.
>>>
>>> Focus is on core plugin stability with the new platform, since it
>>> does have API changes. If downstream distribution people are on this
>>> list, this concerns your third-party plugins too.
>>>
>>> The easiest way to test if it affects your plugin building:
>>>
>>> ```
>>> cordova platform add
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgit
>>> h
>>> u
>>> b.com%2fapache%2fcordova-ios.git&data=01%7c01%7cnikhilkh%40microsoft.
>>> c
>>> om%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d7cd011
>>> d b 47%7c1&sdata=%2fyEILBHFok2F6BK9aeOOd3ibr3V4GNFhvhWWek%2fRqjs%3d
>>> cordova plugin add your-plugin-id
>>> cordova build
>>> ```
>>>
>>> Plugin updates and highlights:
>>> - API changes doc:
>>>
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2fmaster%2fguides%2fAPI%2520changes%2520in%25204.0.md&data=01%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=oc6rb7Mbb2%2bDmKRPwtRBd3jyl0gh74mA5I%2fwiHLpqhM%3d
>>> - 3 new private core plugins to the platform:
>>>
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2ftree%2fmaster%2fCordovaLib%2fClasses%2fPrivate%2fPlugins&data=01%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=xoM2X4%2bcjp9oqKHhtviNfEdimxiIR%2bTJrg80tI1Fbek%3d
>>> - Plugin localized strings and resource loading:
>>>
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2fmaster%2fCordovaLib%2fClasses%2fPublic%2fCDVPlugin%252BResources.h&data=01%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=m2xhhALHTJ8rb2aPg68hMWVcU9ebo51zGXwihQEr1LY%3d
>>> - Preferences helper:
>>>
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgithub.com%2fapache%2fcordova-ios%2fblob%2fmaster%2fCordovaLib%2fClasses%2fPublic%2fNSDictionary%252BCordovaPreferences.h&data=01%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=jUUM60Yks2vRWVPJdeUc8Hhek3CuH6bYKwQlbXDZSxM%3d
>>> - WebViews as plugins. UIWebView is a private core plugin (see above).
>>> WKWebView as a plugin installable
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fgit
>>> h
>>> u
>>> b.com%2fapache%2fcordova-plugins%2ftree%2fmaster%2fwkwebview-engine&
>>> d
>>> a
>>> ta=01%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41f
>>> b
>>> 2
>>> 86%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=oxWiqvoBbVXRKZVL64w2
>>> W
>>> O
>>> XjbBJ%2fdvVu2cBVnV4hf9Y%3d
>>>
>>> I also want to highlight this scenario which a lot of people will
>>> encounter:
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fiss
>>> u
>>> e
>>> s.apache.org%2fjira%2fbrowse%2fCB-9592&data=01%7c01%7cnikhilkh%40mic
>>> r
>>> o
>>> soft.com%7c457cbbc8d60c461beede08d2b41fb286%7c72f988bf86f141af91ab2d
>>> 7 c
>>> d011db47%7c1&sdata=oMjN7hq1FiR8YIr7tk6t4L8cG6FwAlCHVCiV7MYZdQs%3d
>>>
>>> I had to trim features and push it off to cordova-ios-5.0.x:
>>> https://na01.safelinks.protection.outlook.com/?url=https%3a%2f%2fiss
>>> u
>>> e
>>> s.apache.org%2fjira%2fsecure%2fRapidBoard.jspa%3frapidView%3d86&data
>>> =
>>> 0
>>> 1%7c01%7cnikhilkh%40microsoft.com%7c457cbbc8d60c461beede08d2b41fb286
>>> %
>>> 7
>>> c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=4N1dxtFBRjM%2fgJULVWBYLc
>>> 0
>>> Z
>>> NH7rJArJX5KlvDBqC68%3d
>>>
>>> Planned ship/vote date is around iOS 9 release time, which I believe
>>> is in
>>> 2 weeks or so (mid Sept 2015).
>>>
>>> Choo choo....
>>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
> For additional commands, e-mail: dev-help@cordova.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org
For additional commands, e-mail: dev-help@cordova.apache.org