-
Notifications
You must be signed in to change notification settings - Fork 3k
Release versions #2260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release versions #2260
Conversation
8c617ca
to
169655b
Compare
Great to have this distinction for various releases and enforce a check on those. I am not fond of
or
|
@0xc0170 Thanks for the response!
That one is a bit wierd, because would the value of the key ever be anything besides
I think this is fine and more descriptive. I will make this change! |
Previously, the condition for including a target in a release was decided by a 'release' key being set to 'true' in hal/targets.json. This doesn't have enough granularity when we release multiple versions of mbed. This PR changes the 'release' key to an array of strings, where each member is a version that the target supports. Currently the valid versions are '2' and '5'. This PR also adds more robust checking for invalid target configurations in a release. This is enforced whenever the release list is built from the data, preventing invalid targets from coming into the release. Finally, it updates the build_release.py script to use the new api for fetching release targets.
This modifies the behavior of 'mcu_toolchain_matrix' in build_api.py. It now prints release version support in the matrix. It also defaults to only showing targets in mbed OS 5. You can still show older release versions by modifying the 'release_version' parameter of the function.
The key 'release' in hal/targets.json is ambiguous. This changes the key to 'release_versions' to emphasize that the entries should be version numbers/strings and that it should be an array, not a singular value.
b79bfbf
to
0e4b78f
Compare
@0xc0170 Change made! Let me know if you have any other feedback! I'll go ahead and run tests on this. /morph test |
@mbed-bot: TEST HOST_OSES=windows |
Result: ABORTEDYour command has finished executing! Here's what you wrote!
Outputmbed Build Number: 545 Test failed! |
Went ahead and killed the |
/morph test |
[Build 728] |
Result: FAILUREYour command has finished executing! Here's what you wrote!
Outputmbed Build Number: 546 Test failed! |
Intro
This introduces the concept of "release versions" to the tools.
Previously, the condition for including a target in a release was decided by a
release
key being set totrue
inhal/targets.json
. This doesn't have enough granularity when we release multiple versions of mbed.Todo
Code Changes
This PR changes the
release
key inhal/targets.json
to an array of strings, where each member is a version that the target supports. Currently the valid versions are"2"
and"5"
.You can now build up lists of these release configurations by calling the new function
get_mbed_official_release
inbuild_api.py
. This function add checks for invalid target configurations in a release. This is enforced whenever it is called, preventing invalid targets from coming into the release.It updates the
build_release.py
script to useget_mbed_official_release
for fetching release targets.It modifies the behavior of
mcu_toolchain_matrix
inbuild_api.py
. It now prints release version support in the matrix. It also defaults to only showing targets supported by mbed OS 5. You can still show older release versions by modifying therelease_version
parameter ofmcu_toolchain_matrix
.Public facing changes
New format of
release
key inhal/targets.json
Old
New
Removal of LPC2460 and XBED_LPC1768 from
build_release.py
These two platforms do not support the
ARM
oruARM
toolchain, so they are not supported by the version 2 release.Version 5 supports only
ARM
,GCC_ARM
, andIAR
toolchainsEven if a platform supports
uARM
orGCC_CR
, onlyARM
,GCC_ARM
, andIAR
will be returned in the release target tuple returned byget_mbed_official_release
.MCU-Toolchain matrix
Old output of
python tools\make.py -S
:New output of
python tools\make.py -S
:Enforcement of valid release target configurations
For the following examples, I removed both
ARM
anduARM
from the LPC11U68supported_toolchains
key.cc @0xc0170 @bogdanm