Skip to content

Commit

Permalink
Merge branch '9_3_X' into TIMOB-28027-9_3_X
Browse files Browse the repository at this point in the history
  • Loading branch information
ssekhri authored Oct 7, 2020
2 parents 5511b29 + 506a7fe commit 1edc5c1
Show file tree
Hide file tree
Showing 561 changed files with 14,562 additions and 8,241 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/backport.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Backport
on:
pull_request:
pull_request_target:
types:
- closed
- labeled
Expand All @@ -11,7 +11,7 @@ jobs:
name: Backport
steps:
- name: Backport
uses: ewanharris/backport@v1.0.28-13
uses: ewanharris/backport@v1.0.28-24
with:
bot_username: build
bot_token: d5bd2737eafb4b5b5c1040e2d71e86626f8ce1b5
Expand Down
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,16 @@ junit_report.xml
/iphone/TitaniumKit/build
/iphone/lib/libTiCore.a

.vscode/
.vscode/*
!.vscode/extensions.json
!.vscode/settings.json

/android/runtime/v8/src/native/V8Snapshots.h

.nyc_output/
coverage/

tests/diffs/
# in-memory blobs written to disk as the expected image for image compariosn tests
tests/Resources/ios/snapshots/1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].png
tests/Resources/android/snapshots/1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].png
7 changes: 7 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
disabled_rules: # rule identifiers to exclude from running
- orphaned_doc_comment
- line_length
- identifier_name
included: # paths to include during linting. `--path` is ignored if present.
- iphone/Classes

105 changes: 105 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,108 @@
# [9.2.0](https://github.com/appcelerator/titanium_mobile/compare/9_1_X...9.2.0) (2020-09-15)

## About this release

Titanium SDK 9.2.0 is a minor release of the SDK, addressing high-priority issues from previous releases.

As of this release, Titanium SDK 9.1.x will not receive updates more than six months after the release of 9.2.0 (2021-03-15). Any needed fixes will be in 9.2.x or later supported releases within the 9.x branch.
See [Axway Appcelerator Deprecation Policy](https://docs.axway.com/bundle/AMPLIFY_Appcelerator_Services_Overview_allOS_en/page/axway_appcelerator_deprecation_policy.html) and [Nominal Lifetimes](https://docs.axway.com/bundle/AMPLIFY_Appcelerator_Services_Overview_allOS_en/page/axway_appcelerator_product_lifecycle.html#AxwayAppceleratorProductLifecycle-NominalLifetimes) documents for details.

:warning: With the release of Titanium SDK 9.0.0, we no longer support Node.js 8.X. Node 10.13.0 is the new minimum supported version.

## Community Credits

* Hans Knöchel
* add since version for Ti.UI.Picker.datePickerStyle ([ab250c3](https://github.com/appcelerator/titanium_mobile/commit/ab250c32cb52d8a6a0c2aa301a1fcd719ca84868))
* [TIMOB-28104](https://jira.appcelerator.org/browse/TIMOB-28104) - support new date picker styles ([d3cdfc5](https://github.com/appcelerator/titanium_mobile/commit/d3cdfc59bd7707ca2d5a1c27420e91f85019cf3f))

* Michael Gangolf
* add missing line in scrollableview example ([dbdb869](https://github.com/appcelerator/titanium_mobile/commit/dbdb869e6fd9003d6801fc2516239f2547b8af90))
* fix Ti.UI.Window.extendSafeArea default value text ([136620c](https://github.com/appcelerator/titanium_mobile/commit/136620c668e4a2eb4501331d97cd228c5bca4aed))

## Bug Fixes

### Android platform

* [TIMOB-28090](https://jira.appcelerator.org/browse/TIMOB-28090) - allow node to clear event loop ([d6d9a5b](https://github.com/appcelerator/titanium_mobile/commit/d6d9a5b8333425366fef96333c51942b0f28d799))

### iOS platform

* [TIMOB-28108](https://jira.appcelerator.org/browse/TIMOB-28108) - allow Ti.UI.RefreshControl.tintColor to accept a semantic color ([815a0fc](https://github.com/appcelerator/titanium_mobile/commit/815a0fcceeda984578b3451e5688e7dcac429376))
* [TIMOB-28113](https://jira.appcelerator.org/browse/TIMOB-28113) - do not update properties if transition animation ([4a835fd](https://github.com/appcelerator/titanium_mobile/commit/4a835fd1581c7f949a0e05a2ff23b22112b6b7e3))
* [TIMOB-28062](https://jira.appcelerator.org/browse/TIMOB-28062) - enable swift development in Titanium ([2b4aa7b](https://github.com/appcelerator/titanium_mobile/commit/2b4aa7b3a0b7a7ef18c0824a2900db5945206871))
* [TIMOB-28116](https://jira.appcelerator.org/browse/TIMOB-28116) - exclude arm64 arch for sim target if native modules aren't xcframeworks ([faba6e1](https://github.com/appcelerator/titanium_mobile/commit/faba6e1c06c8d468b43189c7422ef326617d0585))
* [TIMOB-28042](https://jira.appcelerator.org/browse/TIMOB-28042) - exclude arm64 architecture from simulator build ([178bf92](https://github.com/appcelerator/titanium_mobile/commit/178bf926f2ba4955a4e4b0939e47e48d7a64e238))
* fix Ti.Filesystem.getAsset and getFile on devices ([f57e938](https://github.com/appcelerator/titanium_mobile/commit/f57e9381402f87347447231fd140cf7277fedaf3))
* [TIMOB-27985](https://jira.appcelerator.org/browse/TIMOB-27985) - fix to add resources and sources file in widget extension ([4b97cec](https://github.com/appcelerator/titanium_mobile/commit/4b97cec8ec74d7760c3eff0031ef9b75c2fcaa95))
* gaurd code for MediaModule on xcode 11 to avoid compile issues ([a9dae74](https://github.com/appcelerator/titanium_mobile/commit/a9dae74ca9a993803bdfef52e261fcae2f0c967d))
* [TIMOB-28112](https://jira.appcelerator.org/browse/TIMOB-28112) - guard new picker types ([fa8f547](https://github.com/appcelerator/titanium_mobile/commit/fa8f5475e9588e91eebfd3c0a10c0f663c74e8d2))
* handle adding Ti.UI.Shortcut when existing array is nil ([82e011a](https://github.com/appcelerator/titanium_mobile/commit/82e011aa1bfff059415ff181e5e4f607ca9fa9b5))
* modify BOOL to bool for return types to fix JS representation ([0b251e2](https://github.com/appcelerator/titanium_mobile/commit/0b251e28075eba2685efd30a18f8d1df915f5647))
* [TIMOB-28100](https://jira.appcelerator.org/browse/TIMOB-28100) - only include presentationControllerDidDismiss when photogallery is used ([14a5e5b](https://github.com/appcelerator/titanium_mobile/commit/14a5e5ba65de2c5b2d656d0aae4b30c4b6b57ef9))
* [TIMOB-28126](https://jira.appcelerator.org/browse/TIMOB-28126) - rely on flush interval ([0c83fab](https://github.com/appcelerator/titanium_mobile/commit/0c83fabf6bd8abff5370dfb5208ec35b32cc890b))
* [TIMOB-28091](https://jira.appcelerator.org/browse/TIMOB-28091) - update liveview for ios 14 compatibility ([e89065b](https://github.com/appcelerator/titanium_mobile/commit/e89065bad920d25df94f144390912a3bc65190d8))
* [TIMOB-28101](https://jira.appcelerator.org/browse/TIMOB-28101) - use arc to create corner radius instead of qudratic curve ([b5ed723](https://github.com/appcelerator/titanium_mobile/commit/b5ed72357f697293a3d2e2a3ff957ff47bb13fa1))
* [TIMOB-28103](https://jira.appcelerator.org/browse/TIMOB-28103) [TIMOB-28110](https://jira.appcelerator.org/browse/TIMOB-28110) - view shadow missing with multiple borderRadius values ([2a38bf3](https://github.com/appcelerator/titanium_mobile/commit/2a38bf33e06831c0c58d489686153acdbf057225))
* fix location of Ti.Filesystem.applicationDataDirectory on macos ([9caf847](https://github.com/appcelerator/titanium_mobile/commit/9caf8475b5c55ffac256c181896809d01a5b62e3))


### Multiple platforms

* [TIMOB-28094](https://jira.appcelerator.org/browse/TIMOB-28094) - process.toString() ([a15f7f6](https://github.com/appcelerator/titanium_mobile/commit/a15f7f65a6c738ab444570c7236435245e72d6b2))

## Features

### iOS platform

* [TIMOB-28077](https://jira.appcelerator.org/browse/TIMOB-28077) - added new error constant and updated doc for local network privacy ([f8de8c0](https://github.com/appcelerator/titanium_mobile/commit/f8de8c08c68398b5b5b871e655455f6d8c529d6e))
* add Ti.Blob.toArrayBuffer() ([e42bbcb](https://github.com/appcelerator/titanium_mobile/commit/e42bbcbf1295123c3a0f7d8fb94179df89358a28))
* [TIMOB-28098](https://jira.appcelerator.org/browse/TIMOB-28098) - add Ti.Platform.versionPatch ([a78e9cc](https://github.com/appcelerator/titanium_mobile/commit/a78e9ccf9b937fd9066ba13bbc855f3a37557482))
* [TIMOB-27984](https://jira.appcelerator.org/browse/TIMOB-27984) - allow multiple photo selection ([04b4292](https://github.com/appcelerator/titanium_mobile/commit/04b42929d71cef4abc9c6f891caf78da2f714b81))
* build modules as xcframeworks (w/ macos support) ([5b766ae](https://github.com/appcelerator/titanium_mobile/commit/5b766ae9207255dcc60ee4c04b154cc4b0de04e9))
* [TIMOB-28012](https://jira.appcelerator.org/browse/TIMOB-28012) - expose new APIs to customize paging control ([6acad54](https://github.com/appcelerator/titanium_mobile/commit/6acad54cd44535a5efcb1556a8cce9e73032fb65))
* [TIMOB-27976](https://jira.appcelerator.org/browse/TIMOB-27976) - expose new APIs to use location AccuracyAuthorization ([a55f9a3](https://github.com/appcelerator/titanium_mobile/commit/a55f9a3fc21bd21c4e610e909d9039748b8b05e1))
* [TIMOB-27987](https://jira.appcelerator.org/browse/TIMOB-27987) - expose new iOS 14 APIs in Ti.UI.WebView ([840b0d2](https://github.com/appcelerator/titanium_mobile/commit/840b0d279f79248d1511fc518fa28fda9573be73))
* [TIMOB-27132](https://jira.appcelerator.org/browse/TIMOB-27132) - support macos/dist-macappstore targets ([cfac6e4](https://github.com/appcelerator/titanium_mobile/commit/cfac6e4bf1c6926c3727dcbff5c79221bfb651a2))
* [TIMOB-28078](https://jira.appcelerator.org/browse/TIMOB-28078) - support new APIs timeoutForResource and waitsForConnectivity ([09f20d2](https://github.com/appcelerator/titanium_mobile/commit/09f20d28bcfe8b610291f73dad7bb716cd3ac7d3))
* [TIMOB-28116](https://jira.appcelerator.org/browse/TIMOB-28116) - use/support/build xcframeworks ([133527e](https://github.com/appcelerator/titanium_mobile/commit/133527ed517518b13a64cd50a8dd65d61c8b76b7))

### Multiple platforms

* [TIMOB-28061](https://jira.appcelerator.org/browse/TIMOB-28061) - add os version major/minor int constants ([3fd8535](https://github.com/appcelerator/titanium_mobile/commit/3fd8535013797129fbe6ca381692fce5b7ae55da))
* [TIMOB-28061](https://jira.appcelerator.org/browse/TIMOB-28061) - add OS_ANDROID/OS_IOS for non-transpiled builds ([b21c5d7](https://github.com/appcelerator/titanium_mobile/commit/b21c5d79d00e6efad06fcea441712f57c3bbaa01))
* [TIMOB-28098](https://jira.appcelerator.org/browse/TIMOB-28098) - add OS_VERSION_PATCH global ([86d33df](https://github.com/appcelerator/titanium_mobile/commit/86d33df7d7ce85ff596f392e702095c04b3ca296))
* [TIMOB-28093](https://jira.appcelerator.org/browse/TIMOB-28093) - add uprightWidth/uprightHeight props to Ti.Blob ([09b4591](https://github.com/appcelerator/titanium_mobile/commit/09b4591804f3c15a1854c2d5a48a6c55645af26d))
* [TIMOB-28070](https://jira.appcelerator.org/browse/TIMOB-28070) - add vscode config files to app templates ([f8ef53a](https://github.com/appcelerator/titanium_mobile/commit/f8ef53ac276dace006cd40e65f7ffb798c38eb6e))
* [TIMOB-28030](https://jira.appcelerator.org/browse/TIMOB-28030) - add WebView blockedURLs property ([9006c00](https://github.com/appcelerator/titanium_mobile/commit/9006c0044c6657976951ebb5fb1ede4dde0e2d35))

### Android platform

* add Ti.Blob.toArrayBuffer() ([36e7244](https://github.com/appcelerator/titanium_mobile/commit/36e7244f5333f40b108eb7847403e629f98ff57f))
* [TIMOB-28098](https://jira.appcelerator.org/browse/TIMOB-28098) - add Ti.Platform.versionPatch ([587ddea](https://github.com/appcelerator/titanium_mobile/commit/587ddea90acf9a5660f6f5499186a09366aaf26c))
* support converting byte[] to ArrayBuffer ([9e77600](https://github.com/appcelerator/titanium_mobile/commit/9e77600acbaed9dd7d2d301c9fec3687bcf6a77b))

## Performance Improvements

### Multiple platforms

* make buffer shim more efficient ([9efe874](https://github.com/appcelerator/titanium_mobile/commit/9efe8742508abc1ce40f35d8add9100e675cbab3))

## SDK Module Versions

| Module | Android version | iOS Version |
| ----------- | --------------- | ----------- |
| facebook | 9.0.0 | 8.0.0 |
| ti.cloudpush | 7.1.0 | n/a |
| ti.map | 5.0.1 | 4.0.0 |
| ti.webdialog | 2.0.0 | 1.2.0 |
| ti.playservices | 17.1.1 | n/a |
| ti.identity | 3.0.2 | 2.0.0 |
| urlSession | n/a | 2.2.0 |
| ti.coremotion | n/a | 2.1.0 |
| ti.applesignin | n/a | 1.1.1 |
| ti.cloud | 3.2.11 | 3.2.11 |
| hyperloop | 5.0.3 | 5.0.3 |

# [9.1.0](https://github.com/appcelerator/titanium_mobile/compare/9_0_X...9.1.0) (2020-08-06)

## About this release
Expand Down
66 changes: 57 additions & 9 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ def androidUnitTests(nodeVersion, npmVersion, testOnDevices) {
}
} // timeout
} catch (e) {
archiveArtifacts 'tmp/mocha/build/build_*.log' // save build log if build failed
gatherAndroidCrashReports()
throw e
} finally {
Expand All @@ -117,7 +118,7 @@ def androidUnitTests(nodeVersion, npmVersion, testOnDevices) {
// save the junit reports as artifacts explicitly so danger.js can use them later
stash includes: 'junit.*.xml', name: 'test-report-android'
junit 'junit.*.xml'
archiveArtifacts allowEmptyArchive: true, artifacts: 'tests/diffs/'
archiveArtifacts allowEmptyArchive: true, artifacts: 'tests/diffs/,tests/generated/'
} // nodejs
} finally {
deleteDir()
Expand All @@ -126,9 +127,9 @@ def androidUnitTests(nodeVersion, npmVersion, testOnDevices) {
}
}

def iosUnitTests(deviceFamily, nodeVersion, npmVersion) {
def macosUnitTests(nodeVersion, npmVersion) {
return {
node('git && osx && xcode-11') { // Use xcode-11 to make use of ios 13 APIs
node('git && osx && xcode-12 && osx-10.15') {
// TODO: Do a shallow checkout rather than stash/unstash?
unstash 'mocha-tests'
try {
Expand All @@ -139,9 +140,55 @@ def iosUnitTests(deviceFamily, nodeVersion, npmVersion) {
sh label: 'Install SDK', script: "npm run deploy -- ${zipName} --select" // installs the sdk
try {
timeout(20) {
sh label: 'Run Test Suite', script: "npm run test:integration -- ios -F ${deviceFamily}"
sh label: 'Run Test Suite on macOS', script: 'npm run test:integration -- ios -T macos'
}
} catch (e) {
gatherIOSCrashReports('mocha') // app name is mocha
throw e
} finally {
sh 'npm run clean:sdks' // remove non-GA sdks
sh 'npm run clean:modules' // remove modules
}
// save the junit reports as artifacts explicitly so danger.js can use them later
stash includes: 'junit.ios.macos.xml', name: "test-report-ios-macos"
junit 'junit.ios.macos.xml'
// Save any diffed images
archiveArtifacts allowEmptyArchive: true, artifacts: 'tests/diffs/'
} // nodejs
} finally {
deleteDir()
}
}
}
}

def iosUnitTests(deviceFamily, nodeVersion, npmVersion, testOnDevices) {
return {
def labels = 'git && osx'
if (testOnDevices && deviceFamily == 'iphone') {
labels += ' && macos-darwin' // run main branch tests on devices, use node with devices connected
} else {
labels += '&& xcode-12' // Use xcode-12 to make use of ios 14 APIs
}
node(labels) {
// TODO: Do a shallow checkout rather than stash/unstash?
unstash 'mocha-tests'
try {
nodejs(nodeJSInstallationName: "node ${nodeVersion}") {
ensureNPM(npmVersion)
sh 'npm ci'
def zipName = getBuiltSDK()
sh label: 'Install SDK', script: "npm run deploy -- ${zipName} --select" // installs the sdk
try {
timeout(40) {
if (testOnDevices && deviceFamily == 'iphone') {
sh label: 'Run Test Suite on device(s)', script: "npm run test:integration -- ios -F ${deviceFamily} -T device -C all"
} else { // run PR tests on simulator
sh label: 'Run Test Suite on simulator', script: "npm run test:integration -- ios -F ${deviceFamily}"
}
}
} catch (e) {
archiveArtifacts 'tmp/mocha/build/build_*.log' // save build log if build failed
gatherIOSCrashReports('mocha') // app name is mocha
throw e
} finally {
Expand Down Expand Up @@ -185,7 +232,7 @@ def cliUnitTests(nodeVersion, npmVersion) {
// Wrap in timestamper
timestamps {
try {
node('git && android-sdk && android-ndk && ant && gperf && osx && xcode-11') {
node('git && android-sdk && android-ndk && ant && gperf && osx && xcode-12 && osx-10.15') {
stage('Checkout') {
// Update our shared reference repo for all branches/PRs
dir('..') {
Expand Down Expand Up @@ -306,10 +353,11 @@ timestamps {
stage('Test') {
parallel(
'android unit tests': androidUnitTests(nodeVersion, npmVersion, testOnDevices),
'iPhone unit tests': iosUnitTests('iphone', nodeVersion, npmVersion),
'iPad unit tests': iosUnitTests('ipad', nodeVersion, npmVersion),
'iPhone unit tests': iosUnitTests('iphone', nodeVersion, npmVersion, testOnDevices),
'iPad unit tests': iosUnitTests('ipad', nodeVersion, npmVersion, testOnDevices),
'macOS unit tests': macosUnitTests(nodeVersion, npmVersion),
'cli unit tests': cliUnitTests(nodeVersion, npmVersion),
failFast: true
failFast: false
)
}

Expand Down Expand Up @@ -469,7 +517,7 @@ timestamps {
} catch (e) {}

// it's ok to not grab all test results, still run Danger.JS (even if some platforms crashed or we failed before tests)
def reports = [ 'ios-ipad', 'ios-iphone', 'android', 'cli' ]
def reports = [ 'ios-ipad', 'ios-iphone', 'ios-macos', 'android', 'cli' ]
for (int i = 0; i < reports.size(); i++) {
try {
unstash "test-report-${reports[i]}"
Expand Down
1 change: 1 addition & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,5 @@ dependencies {
}

implementation "androidx.appcompat:appcompat:${project.ext.tiAndroidXAppCompatLibVersion}"
implementation "com.google.android.material:material:${project.ext.tiMaterialLibVersion}"
}
2 changes: 1 addition & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<application android:name=".TitaniumTestApplication" android:icon="@drawable/appicon" android:label="TitaniumTest" android:theme="@style/Theme.AppCompat" android:usesCleartextTraffic="true">
<application android:name=".TitaniumTestApplication" android:icon="@drawable/appicon" android:label="TitaniumTest" android:theme="@style/Theme.MaterialComponents.Bridge" android:usesCleartextTraffic="true">
<activity android:name=".TitaniumTestActivity" android:theme="@style/Theme.Titanium" android:alwaysRetainTaskState="true" android:configChanges="${tiActivityConfigChanges}">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
Expand Down
Loading

0 comments on commit 1edc5c1

Please sign in to comment.