All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
get_apk.py
can download Firefox releases and bets >= 59. Nightly is known to be broken because of https://bugzilla.mozilla.org/show_bug.cgi?id=1469303.
push_apk.py
now supports custom Google Play tracks. Allowed tracks are defined per product and must be whitelisted ingoogleplay.py
.
- get_l10n_strings:
--major-version-number
option to fetchwhatsnew
section from a specific version instead of a channel. This is particularly useful in the context of Release Candidates, when you want to update listings as they used to be, but get the latestwhatsnew
.
- Remove unneeded check for distinct package names which broke Klar+GeckoView upload
- Support Google Play's new
internal
track - Support Firefox Focus/Klar APKs. Specific tests for these APKs were added.
push_apk()
has its command line arguments changed.- There is no need to precise the package name and the architecture anymore. These values are automatically extracted and checked from the passed APKs. As a consequence, APKs are now (unordered) positional arguments.
--track
is now required and doesn't default toalpha
anymore.
- More data is extracted from APKs and checked.
- Namely: processor architecture, Firefox version, Firefox buildId, locales, Android package name, Android API level, Android version code.
mozapkpublisher.apk
was split in favor ofmozapkpublisher.apk.{extractor,checker}
mozapkpublisher.apk.extractor
relies on androguard to extract Android specific data- It works with a copy of the APKs, in the (very unlikely) case the APK gets modified by the extracting function
mozapkpublisher.apk.checker
verifies the common values are all identical and the different ones are correctly order and none is missing.
Base
parser now accepts positional arguments in parameters dictionary. They must be filled as{'*args': [positional_arg_1, positional_arg_2, positional_arg_3]}
- Python 2 support has been droppped. Handling unicode strings in both Python 2 and 3 became too risky for the pros Python 2 gave.
- get_l10n_strings.py now exists. It fetches strings from the Google Play store for later use (by push_apk.py).
- push_apk.py
- You now need to provide where the Google Play linsting are taken from (
--update-gp-strings-from-l10n-store
,--update-gp-strings-from-file
, or even--no-gp-string-update
). - Google Play strings are now verified: Data structure must comply to a given schema. Actual strings aren't checked.
- Option
--dry-run
becomes--commit
. By default, no transaction is committed. - Option
--do-not-contact-google-play
was added. It allows to run the script without making any call to Google.
- You now need to provide where the Google Play linsting are taken from (
- Non-script files are moved to
mozapkpublisher/common.
- Dawn project
- Publish Nightly on top of Aurora
- Fetch and upload Nightly listings/recent changes
- Optimize network requests on both stores_l10n and Google Play ends
- Remove the ability to download Aurora APKs
- get_apk.py: Fix checksum detection when file is in a subfolder
- Upgrade upstream dependencies
- Verifies if
rollout_percentage
is actually used on the rollout channel. Without it, you may go full rollout, like explained in bug 1354038 comment 2
- Upgrade requests package
- Python 2: Fix encoding issue when uploading locales that contain non-ASCII characters
- push_apk.py first publishes listing then "what's new". This fixes unsupported locales described in bug 1349039
- get_apk.py doesn't break because files are internally renamed after being downloaded
- get_apk.py:
--clean
- Check if version codes are correctly ordered
- get_apk.py supports checksum files for Fennec >= 53.0b1
- en-GB is now updated like any other locale
- Upgrade pyOpenSSL, in order to keep support for OpenSSL v1.1.0
- Use new store_l10n APIs
- New installation instructions for OS X
- Better logs
- Test coverage
- Check to prevent single locale APKs to be pushed (bug 1314712)
- --dry-run flag
- Mute some debug logs coming from dependencies
- Other missing files in package
- Missing files in final package
- Initial release