All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Push to Amazon support
- Focus and Klar were sent in the same transaction, which cannot happen.
- False positive exception about multiple architectures
update_apk_description.py
: https://l10n.mozilla-community.org/stores_l10n/ is now retired making the script useless.get_l10n_strings.py
: Automation hasn't used this script since Bug 1560876. Moreover, likeupdate_apk_description.py
, this script doesn't work anymore.- Exceptions
TranslationMissingData
,NoTranslationGiven
which aren't used anymore
- Any track can now be targeted with rollout
- Using
track="rollout"
is now deprecated (specify the target track instead) - Uses RAII to represent operations that require an "edit"
--skip-check-package-names
. When pushing or checking an APK, expected package names must always be provided
EditService
now calls the Google Play API v3- Fennec Beta can now match 68.Y pattern
- Support new GP error when an APK is uploaded
push_apk.py
does not upload strings (likedescription
orwhatsnew
) because https://l10n.mozilla-community.org/stores_l10n/ is about to be removed.update_apk_description.py
remains in case we still want a manual upload whilestores_l10n
is around
- Fennec ARM64 push on Release.
push_apk
doesn't error out anymore if an APK has already been uploaded
- Python 3.5 support
- When multiple package names were used, packages weren't filtered properly
- Missing tar.gz package which was missing due to a pypi error
check_apks.py
. This script runs the same checks aspush_apk.py
- Allow AArch64 on Fennec Nightly and Beta only
- Fennec checks no longer implicitly check that all packages have the same name, but rather lean on
--expected-package-name
- x86_64 push
- Options to skip specific sanity checks
--skip-check-ordered-version-codes
: Skip check that asserts version codes are different, x86 code > arm code--skip-check-multiple-locales
: Skip check that asserts that apks all have multiple locales--skip-check-same-locales
: Skip check that asserts that all apks have the same locales--skip-checks-fennec
: Skip checks that are Fennec-specific (ini-checking, checking version-to-package-name compliance)--skip-check-package-names
: Skip assertion that apks match a specified package name- Note: if this isn't provided, then you must provide at least one
--expected-package-name
- Note: if this isn't provided, then you must provide at least one
Note: This was released in a branch off of 0.14.0
! These changes don't exist in 1.0.0
- x86_64 push
push_apk
must be called as a function with parameters, rather than mockedargv
arguments* Refactorspush_apk
to use a variable Google Play Strings interface
- Auto-detection of which package-name corresponds to which sanity checks
- AArch64 push
- Allow an architecture to not share the same API levels with others.
- Allow AArch64 on Fennec Nightly only
- Support pushing
fenix
- Reference Browser doesn't try to find
firefox_version
anymore.
- Nightly en-US releases are downloadable
- Support pushing
reference-browser
- APK Downloads now happen in parallel
- Added requirements.txt.in in package so setup.py works
setup.py
gets better formatted requirements. This avoids pip install errors.
- requirements are now split in several files depending on whether they're for testings, coveralls or production
- Python 3.7 support
get_l10n_strings
:--major-version-number
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