How to reproduce the functionality on a best-effort basis
Наївними є ті люди, які записують у package.json the deps' exact
version numbers, вважаючи, що цим вони забезпечують собі безпроблемне
життя у майбутньому.
Була the app, написана за часів Cordova 4.x (~1.5 роки тому). Майже літом '17, apk вже не билдиться, тому що:
- стара версія Кордови́ працює тільки з node <= 4.8;
- кілька місяців тому злий Гоогл у SDK Tools зламав cli utils.
Якщо 1ше можна було передбачити, для чого у мене давно є свій легкий node version manager, то 2й пункт--це є знущання.
Apparently, Гоогл має свої, окремі уявлення про semver.
SDK Tools, Revision 25.1.7: все гаразд.
25.3.0:
Obsolete/deprecated tools have been removed:
- android
- ant scripts
26.0.0:
- tools/android now attempts to reproduce the functionality of android in tools prior to version 25.3.0 by invoking the new tools.
- All avd, target, and device commands should work as before.
- sdk commands will be translated to similar commands using tools/bin/sdkmanager on a best-effort basis.
Всередині, Кордова́ пускає android list target --compact, щоб
дізнатися чи було, напр., SDK platform 21 інстальовано. У нових SDK
Tools, Гоогл ємулювали стару утиліту android, перейменувавши
субкоманду target у targets, тобто зараз "нова" утиліта android
лається на неправільні параметри.
Навіть якщо би вони не займалися паскудством з the (accidental?) renaming, Кордові́ це не допомогло би, тому що всі deprecated utils, не гаючи часу, друкують банер, що вони є deprecated. Роблять це вони, як всі напевно здогадались, у stdout, замість stderr, так що всі 3rd party apps, які парсили the output тепер валяться на на the invalid input.
Alphabet Inc. (the parent company of Google) Market Cap: $652.159B.
