1. build_component.py automatically generates release version (and upload to bucket) based on following rules:
a. the first 3 segments of the component package the same as version of the release (1.2.3-r4 -> release=1.2.3.X).
b. release.X=current_release.X+1 where current_release.X = 0 if the package version does not exist yet.
2. build_component.py uploads architecture specific version of components once at a time. In order to release a new components for 2 platforms, you need to execute both:
build_component.py --platform_chromeos_arm32 |component_name|
build_component.py --platform_chromeos_intel64 |component_name|
build_component.py was originally designed to execute on official builders so this behavior is reasonable. But in practice this script is used by developers to do manual release on dev machine and we no longer pursue running this script on official builder (instead we plan to support this in DLC project).
Problem:
When component owner at one point starts to support a new architecture, this script will upload to the first release that 1) does not support this architecture 2) release version == component package version (first 3 segments). Obviously, this release version is not necessarily the latest one (when release.major never changes).
Proposal:
We add parameter target-version in the script. We make sure 1) the first 3 segments of target-version is equal to first 3 segments of package version. 2) target-version/architecture folder does not exist on gsbucket.
This gives user an option to bypass uploading to an old release version.
Comment 1 by xiaochu@chromium.org
, Sep 14