summaryrefslogtreecommitdiff
path: root/python
AgeCommit message (Collapse)Author
2025-03-14Apply gofmt to build/soong/python Spandan Das
Test: go build ./python Change-Id: I1a25ff919071797eedb95b4abcca4d7c09faab97
2025-03-13Merge "Add Shared libraries support for Android python libraries" into main Treehugger Robot
2025-03-12Add Shared libraries support for Android python libraries Brett Brotherton
- New shared_libs property to Python code for specify shared libs that should be packed into the library for modules with compiled code. - Expand shared_lib dependencies when building the python library. - Change python main entrypoint to extract the zip if there are any shared libraries in the executable to workaround linker limitations Bug: 395678202 Change-Id: Id94caebf36f7eb1cfa492b2fa78f8c56623e9a43 Test: m py-grpcio
2025-03-11Expand TestSuiteInfoProvider to all test modules Cole Faust
Test suites have been historically only defined in the AndroidMk functions. But in soong-only builds, we don't run AndroidMk. It appears Colin already started making a TestSuiteInfo provider, but hadn't set it on all test modules yet. Expand it to all the test modules, and add export it to make so that make can check that it matches LOCAL_COMPATIBILITY_SUITES. Bug: 388850000 Test: m nothing Change-Id: Iee8959742117604fd560c95be60f3cb7cf3d9ae4
2025-02-24Revert "Temporarily disable python precompilation for py3.13" Dan Willemsen
This reverts commit 7ca4d103891b6a508266d8b37def22de535a1811. prebuilts/build-tools has been updated to 3.13. Bug: 388344853 Test: treehugger Change-Id: Ifb3bc461aa77f693a57782284da1784ad651a6ad
2025-02-19Convert python_binary_host modules' module-info.json to Soong Bill Yang
Bug: 397158845 Test: m out/target/product/vsoc_x86_64/module-info.json Test: Inspect module-info.json diff, CI Change-Id: I542e9b3d02e989602800199899ba516bad4f94fe
2025-02-18Install tradefed dynamic config file in soong-only builds Cole Faust
Make has this behavior where it will find a DynamicConfig.xml file in the same directory in the module and install it next to the main tradefed config file. Recreate that behavior in soong-only builds. https://cs.android.com/android/platform/superproject/main/+/main:build/make/core/base_rules.mk;l=859;drc=6a8fff595ba4cbb87b7e124fd630f548c5c4e2cb Bug: 396761822 Test: SOONG_ONLY=true atest -m -c CtsNetTestCases -- --test-arg com.android.testutils.ConnectivityTestTargetPreparer:ignore-mobile-data-check:true Change-Id: I69f1c262200d62cc0d3c590b6adbeb401af63ab9
2025-02-12Don't panic in ModuleForTests and friends Colin Cross
Panicking in ModuleForTests and similar test helper functions was a mistake. Go's test runner stops running tests as soon as any test panics, which means debugging multiple tests panicking requires rerunning all the tests after fixing each panic to find the next one. Pass the *testing.T into ModuleForTests and friends so that it can call t.Fatalf instead. Test: all soong tests pass Change-Id: I5d0f2424eaf04fb795079e6d1e4b9469d8c7033c
2025-02-10Merge "Temporarily disable python precompilation for py3.13" into main Dan Willemsen
2025-02-03Temporarily disable python precompilation for py3.13 Dan Willemsen
The precompilation logic assumes that the source tree matches the python prebuilts, which is not necessarily true. This very much breaks during major version upgrades, so just disable precompilation temporarily while we generate new prebuilts. Bug: 388344853 Test: treehugger Change-Id: I8d412c5cc112566d1bdad1f03ade606331dacb02
2025-01-31Remove python2 support from soong rules Cole Faust
Python2 has been removed from the android build. Removing the python version transition mutator should lead to some slight analysis time performance improvements. I also made embedded_launcher in base_properties no longer blueprint:"mutated", so that we can migrate usages to the main property struct and remove the `version` property struct. Many python tests were not being run due to a `if d.desc != "module with duplicate runfile path" { continue }` line, I removed that and fixed the tests. I also removed the test for an error when there are no source files, because that check has been relaxed since, and I think it's legitimate to have a python library that only has data files, not source files. And there are some of those libraries in the source tree. Bug: 203436762 Test: m nothing --no-skip-soong-tests Change-Id: Idf18e39233418237ecc83f70f65d83d4ea496633
2025-01-29Merge "Install python tests to testcases/ in soong-only" into main Treehugger Robot
2025-01-29Merge "Convert python_test's module-info.json to soong" into main Treehugger Robot
2025-01-29Install python tests to testcases/ in soong-only Cole Faust
Needed for atest to work on python tests. Bug: 391924360 Test: atest vts_vndk_dependency_test Change-Id: Iabc05a58e4bbe958365a1027bcec25aa058ed1c9
2025-01-29Convert python_test's module-info.json to soong Cole Faust
This causes the python launcher's shared libs to no longer be listed under the "required" field, but that seems to not be necessary to still run python tests with atest. Bug: 389720048 Test: atest vts_vndk_dependency_test Change-Id: I7eb96af18aeb550530799431c8bacceb581f66c2
2025-01-28Remove py2 tests from runtest.sh Cole Faust
Python2 is being removed. Bug: 203436762 Test: Presubmits Change-Id: I5d73b61f5a3c8b7fc588725a78003da235c299b9
2025-01-21Convert python modules to use ModuleProxy. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: Ide5bdf2bc1bf41efaf694a66769df907888e51cb
2025-01-07Add device_first_data to python modules Inseob Kim
Bug: 354060773 Test: atest avf_early_vm_test Change-Id: I3c6065598bf4c3e8670e6fa78dfdfeea75e5fd38
2024-12-18Remove source_file_provider.go after it's last usage was removed. Yu Liu
Bug: 377723687 Test: Unit tests and compare the ninja and mk files generated. Change-Id: Iff10448dc4dda49e1f02258a4c113db75778a95d
2024-10-24Remove testing package Cole Faust
The testing package defined test_spec and code_metadata module types, but they were never used and the owner left google. Bug: 372091092 Test: Presubmits Change-Id: I2d34ce173ec46483719a1d333180937b3da1fa04
2024-10-23Include device_common_data in python test data Cole Faust
Device_common_data was packaging the data into the python executable, but some tests also distribute the data externally from the executable, and those external distrobutions weren't picking up device_common_data. Bug: 372091092 Test: m nothing Change-Id: Id5678c11a609c9d63d4935f2aa7c469059c017d7
2024-10-21Add new properties to aid in removing the 1-variant fallback Cole Faust
These new properties are essentially methods to specify "outgoing transitions" in blueprint files. There are lots of host tests that want to include apps built for device in their data, so they need a property that adds dependencies based on the device variants instead of copying the same host variants. After this cl is submitted, I'll do an LSC to update all the usages that are relying on the 1-variant fallback to use these properties instead. Bug: 372091092 Test: m nothing --no-skip-soong-tests Change-Id: I45b8fb024da120ad61606e3a21de86e4392be2a4
2024-09-09Remove BUILD_BROKEN_USES_SOONG_PYTHON2_MODULES Cole Faust
It's been available for over a year, lets progress the python3 migration by removing it. Bug: 203436762 Test: Presubmits Change-Id: I46a6477ec65e98b7e6df5cc1359f676dcbd0f08e
2024-07-17Convert python_version mutator to TransitionMutator Colin Cross
Replace python.versionMutator with a TransitionMutator. Bug: 319288033 Flag: EXEMPT refactor Test: all soong tests pass Change-Id: I12eafbe0563b202db8cadf69cbacdf39ce6f11b5
2024-06-18Use OutputFilesProvider on python_binary_host mrziwang
In the context of incremental soong, the output files inter-module-communication will be through OutputFilesProvider. The OutputFileProducer interface will be deprecated. Test: CI Bug: 339477385 Change-Id: I20f619d088503ca482ea55e81639933c88f1286b
2024-05-10Remove duplicated CollectDependencyAconfigFiles() Justin Yun
android.ModuleBase already calls aconfigUpdateAndroidBuildActions() that is the same with CollectDependencyAconfigFiles(). Remove the CollectDependencyAconfigFiles() to avoid duplication with aconfigUpdateAndroidBuildActions(). To make the aconfig information available in GenerateAndroidBuildActions() of all modules, call aconfigUpdateAndroidBuildActions() before calling GenerateAndroidBuildActions() of each module. Also, we don't need SetAconfigFileMkEntries(), which is a duplicate of aconfigUpdateAndroidMkData() Bug: 335363964 Test: diff `adb shell printflags` before and after the change. Change-Id: I52808e442e9fed7db1eae7b7c5ed0b1c5ba74f5d
2024-05-09Merge "relax the restriction on .proto files in data" into main Treehugger Robot
2024-05-08Remove embedded_launcher: true usages Cole Faust
The default value for embedded_launcher has been changed to true. Bug: 174041232 Test: Presubmits Change-Id: I2fb4b920828307e60c0fae6864ba720c7c31e1f2
2024-05-08relax the restriction on .proto files in data Raphael Blistein
Context: yaqs/7447701439926763520#a1 Bug: b/339454115 Test: go test Change-Id: If3ed81334a192993d32404301b55ca7b4f5780ae
2024-04-29Compress precompiled python zips Cole Faust
When making this script deterministic we accidentally changed it so that none of the entries in the output zip file were compressed. Re-add the compression. Adding the compression makes atest go from 67M to 34M, at the cost of 0.33s startup time instead of 0.28s. Test: Presubmits Change-Id: I4e58eb76235ddabf0195694cdd3644f26b7e84ec
2024-04-22Merge "Revert^2 "Make embedded_launcher true by default"" into main Cole Faust
2024-04-18Revert^2 "Make embedded_launcher true by default" Cole Faust
This reverts commit 578066be90d3e1960c02b5c80c29e92bca70a70b. Reason for revert: Relanding Change-Id: I63f01362cc11c02c4800ae1c21652c7cf4b8a799
2024-04-16Implement test-only for python_ rules Ronald Braunstein
Similar to: aosp/3040036 and aosp/3035329, implements a test-only property for python_library and sets it for python_host. This combined with aosp/3045317 produces: gqui from "flatten(~/aosp-main-with-phones/out/soong/ownership/all_teams.pb, teams)" proto ~/aosp-main-with-phones/build/soong/android/team_proto/team.proto:AllTeams 'select teams.kind, count(*) total, sum(teams.test_only) as test_only, sum(teams.top_level_target) as top_level, where teams.kind like "%py%" group by teams.kind' +-----------------------------+-------+-----------+-----------+ | teams.kind | total | test_only | top_level | +-----------------------------+-------+-----------+-----------+ | cpython3_cc_defaults | 1 | 0 | 0 | | cpython3_cc_prebuilt_binary | 4 | 0 | 0 | | python_binary_host | 222 | 0 | 0 | | python_defaults | 27 | 0 | 0 | | python_library | 38 | 0 | 0 | | python_library_host | 131 | 0 | 0 | | python_test | 5 | 5 | 5 | | python_test_host | 172 | 172 | 172 | +-----------------------------+-------+-----------+-----------+ Change-Id: Iea14fcdbfd782d37ac0a3c780820deeed5f1923d Test: m blueprint_tests Test: go test ./python
2024-04-11Merge "Revert "Make embedded_launcher true by default"" into main Charlie Boutier
2024-04-11Revert "Make embedded_launcher true by default" Charlie Boutier
This reverts commit 8a038ed871230ba6280642b5c0e83a37d076aa79. Reason for revert: investigate breaking test suits Avatar and BumbleBluetoothTests Change-Id: I8e4498fb5854bf62df6d161ac0c6cce49d471afe
2024-04-10Merge "Make embedded_launcher true by default" into main Cole Faust
2024-03-29Merge "Improve errors when compiling python code" into main Treehugger Robot
2024-03-28Improve errors when compiling python code Cole Faust
Now a stacktrace involving precompile_python.py won't be shown, and it will show all errors instead of just the first one. Bug: 331488610 Test: Presubmits Change-Id: I47376ca6764c0f84d1aaf5db329664e20143640a
2024-03-28Remove the mkdir of the parent Directories for protobufs. Haamed Gheibi
Bug: 330794730 Change-Id: I7b221ffc9dde67c27186848727c4a698644507aa
2024-03-26Make embedded_launcher true by default Cole Faust
embedded_launcher causes the python interpreter to be bundled in the built zip file. This is beneficial because: - You can export the built executable and run it on systems without python or an old version of python. The CI servers have python 3.7, so it's useful to update that. - Because the python version is known, the python sources will be precompiled. - It will start running the code directly from the zip file, without extracting the binary to a temporary directory like non-embedded launcher binaries. This is particuarly useful because some developers use the extracted files directly instead of using `importlib.resources`, so having the non-extracting implementation gives them a nudge in the right direction. Make embedded_launcher the default so that more developers will do the right thing when developing python programs. Bug: 331488610 Test: Presubmits Change-Id: Ideb113a1d4d3b29ac04d57a48d111a99f77b2dfc
2024-02-08Merge "Fix non-deterministic python compilation" into main Anas Sulaiman
2024-02-07Fix non-deterministic python compilation Anas Sulaiman
This CL fixes timestamps for zip entries to a hardcoded value to ensure deterministic zip archives across checkouts, not just for incremental builds. The value chosen for the fixed date is the same as the one used by soong_zip. Bug: b/322788229 Test: Ran a few builds and verified that mdate for zipped files are fixed as well as the generated zip files have identical hashes. Change-Id: I3cd6fcf559d4d83d8813c93319b46e267ae64a2b
2024-02-07Merge "Generate ATS 2.0 config for Mobly test." into main Ziwei Zhang
2024-02-07Generate ATS 2.0 config for Mobly test. Ziwei Zhang
- Support test_config and test_config_template - The `config` file extension is widly used by TF. Use `configv2` for ATS 2.0 tests to avoid configuration errors in TF. - Add `mobly` tag to support atest Test: m CtsBluetoothMultiDevicesTestCases (with `runner = "mobly"`) Bug: 299850687 Change-Id: Idbed90ab30e35aeed8cdeeb0aa0aa7adb75a3cd9
2024-02-01Fix non-deterministic python compilation Anas Sulaiman
Timestamps in pyc files and zip archives were causing cache misses in RBE. Bug: b/322788229 Test: Ran a few local builds and verified improved cache hit rate for metalava actions. Change-Id: I9375694d26a107f5c0c43bbd685bd8e86349d187
2024-01-10Propagate aconfig providers for more modules. LaMont Jones
Bug: 308625757 Test: manual Change-Id: Iaf6d45a4259f1c6c34476c34c431344283ae2830
2023-12-14Convert SetProvider to generic providers API Colin Cross
Convert all of the callers of SetProvider to use the type-safe android.SetProvider API. Bug: 316410648 Test: builds Change-Id: If58f4b5355264ddab2045bc3591a4eac19cd58fc
2023-12-08Remove ConvertWithBp2build implementations Colin Cross
Remove the ConvertWithBp2build implementations from all the module types, along with the related code. Bug: 315353489 Test: m blueprint_tests Change-Id: I212672286686a318893bc7348ddd5a5ec51e77a7
2023-12-05Add source file provider for genrule/srcs, python libraries and rust libraries. Aditya Choudhary
Change-Id: I2d7d4684a10c15aeecc27b8db800ab27a807d2e2
2023-11-30Move test data installation to Soong Colin Cross
To generate module-info.json in Soong for b/309006256 Soong needs to know the test data paths. Moving test data installation into Soong will also help later for test suite packaging. Add ModuleContext.InstallTestData that installs the files listed in a []DataPath alongside the test. The files will also be passed to Make to allow it to continue packaging them into the test suites for now. Update the module types that are producing LOCAL_TEST_DATA entries in their Android.mk files to go through InstallTestData instead. Bug: 311428265 Test: atest --host toybox-gtests --test-timeout=120000 Change-Id: Ia8b964f86e584ea464667fd86a48d754d118bead