Fix: #11102
Edgecases included:
1. File Renamed instead of deleted+new file
If the changes made to the file after kotlin conversion
are not too different, Git's heuristics identifies the
changelist as a rename directly and "git status" outputs
"renamed :" instead of "deleted:" + "new file:".
2. Files modified:
Let the user confirm whether all modified changes are intended.
Also adds an emulator run benchmarking suite that works in combo with matrix
If branch builds result in cache upload of emulator files the cache files there will
need to be scoped for just changes on the snapshot file(s)
* Add a tools/migrate.sh file for Kotlin migration
Once actual code migration is done, once the code compiles correctly, tests
passes, and before any commit is done, run `tools/migrate.sh`. This will create the
two commits, as we want them in the migration process.
* Fix script for the mac
Signed-off-by: Kshitij Patil <kshitijpatil98@gmail.com>
Co-authored-by: Kshitij Patil <kshitijpatil98@gmail.com>
this shrinks the window where a publish may leave the versioning out of sync
Related #8219 - still a tiny window where a merge within 10mins or so of a publish
may cause problems
This is required for it to work on Java 11, and the old version in use without
this change is obsolete (because it does not work on java11)
Note that GitHub macos-latest - which is used by the workflow that runs this script
as well as normal development environments - has this installed, verified in:
https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#android
(command line tools 4.x is sufficient, it is current "latest" and is installed)
According to https://support.crowdin.com/api/update-file/ , currently, if a string is changed in english, it'll be
marked as needing review everywhere. This is a problem because we either want to add meta-clarification (for translator)
or correct typo. This change ensure that we have the behaviour we want; strings as never seen as changed. If we want to
really change a string, it'll be a new id
This can't be tested until it is actually merged in github.
With the addition of amazon publishing, and another 'applicationId'
in build.gradle, the search for the original app name broke so parallel
rename was not working
There is no need to scan for those values dynamically though, they are fixed
deeply in order to preserve application contintuity on the app stores, so
we can just hard-code them
Previous change meant we never had universal APKs but they are useful
This enables them again if you send a command-line toggle in, and then
uses the toggle to upload builds to github
This reduces built APK to 7.5MB vs 10.4MB
Careful consideration was taken to version range space so we won't exhaust it
Manual downloads (github attachments, mostly) are configured as armv7 since no
one uses x86 in real devices anymore - and armv8 devices can run armv7 code
There was an expectation in the importer script that all
language codes had a 2-letter root, but many valid codes that Android
accepts have 3-letter codes *and* collide with the 2-letter codes (fi vs fil)
There was the expectation in the LanguageUtil object that languages
all had 2-letter roots as well, it was altered to split on '-' instead
of on specific character indices, with associated unit testing to verify
Additionally, the 'yu' (Cantonese) custom code needed to map to 'yue'