Commit Graph

2554 Commits

Author SHA1 Message Date
Paul Duffin
160fe41c39 Enable api_lint in java_sdk_library
Adds api_lint.enabled property to control whether API linting should be
performed.

Test: m checkapi
Bug: 156126315
Change-Id: I87ca5a942228cf6af1a9939f0334d6fc46c39a63
2020-05-11 18:05:45 +01:00
Artur Satayev
d9b503aa85 Introduce app -deps-info.
Similar to APEX-deps-info, app deps info produces two lists with
transitive dependencies.

Bug: 149622332
Test: m NetworkStack-deps-info
Change-Id: Ic6d94df3b7b4be5afe328a0abe768beee1a58362
Merged-In: Ic6d94df3b7b4be5afe328a0abe768beee1a58362
Exempt-From-Owner-Approval: cp from aosp
(cherry picked from commit 1111b84822)
2020-05-11 18:03:07 +01:00
satayev
ecea813997 Merge "Introduce app -deps-info." 2020-05-11 16:51:30 +00:00
Artur Satayev
1111b84822 Introduce app -deps-info.
Similar to APEX-deps-info, app deps info produces two lists with
transitive dependencies.

Bug: 149622332
Test: m NetworkStack-deps-info
Change-Id: Ic6d94df3b7b4be5afe328a0abe768beee1a58362
Exempt-From-Owner-Approval: previous patch approved.
2020-05-11 16:51:06 +00:00
Treehugger Robot
26aaea8db7 Merge "java_sdk_library: Path extraction from deps depend on tag" am: a586fecea6 am: 122ed148ec
Change-Id: If7603702de30a3103aabb76b3b939c832f3520df
2020-05-11 15:05:03 +00:00
Treehugger Robot
a586fecea6 Merge "java_sdk_library: Path extraction from deps depend on tag" 2020-05-11 14:47:21 +00:00
Treehugger Robot
ad8b9a938c Merge "Expand SystemApi annotation for generating system api" am: d2e4822774 am: b98fe19829
Change-Id: Ic2aef0610a58bb361ef37cca2668f4396182b630
2020-05-11 14:45:31 +00:00
Anton Hansson
3361a294c0 Fix API lint copy command
The space after the backtick prevents it working when copy-pasting it
into the shell.

Test: create lint error => m => cp/pasted command runs successfully
Change-Id: I42b8b60d01dcaed34dbde0390eb1691d656a32cf
2020-05-11 15:40:30 +01:00
Treehugger Robot
d2e4822774 Merge "Expand SystemApi annotation for generating system api" 2020-05-11 14:24:36 +00:00
Paul Duffin
b476a1eb50 Merge "Switch java_sdk_library_import to use SetDefaultableHook()" into rvc-dev 2020-05-11 09:39:39 +00:00
Paul Duffin
bf735aa744 Switch java_sdk_library_import to use SetDefaultableHook()
Ensure consistency with java_sdk_library.

Bug: 155295806
Test: m checkapi
Merged-In: I074e7c865b6b52c7bcf568da3342d8772623ce4f
Change-Id: I074e7c865b6b52c7bcf568da3342d8772623ce4f
(cherry picked from commit 6e7ecbf972)
2020-05-11 08:58:39 +01:00
Paul Duffin
077fd650a1 Merge changes Iffdd9f19,Ia4e744c9,Ibafdb6e9,I3df60f0b into rvc-dev
* changes:
  java_sdk_library: Specify visibility of stubs modules
  Retry: Fix snapshot of a host/device cc_library with stubs
  Retry: Adds support for 'ignored-on-host'
  Retry: Detect invalid arch specific properties in snapshot
2020-05-11 07:56:51 +00:00
Paul Duffin
3ea55a20e8 Switch java_sdk_library_import to use SetDefaultableHook() am: 6e7ecbf972 am: 8e2521d47c
Change-Id: Ic0fca40a42a9eba6fc19ef7aff143fde6d0451a1
2020-05-11 01:28:10 +00:00
Paul Duffin
344c4eeda9 java_sdk_library: Specify visibility of stubs modules
Adds two new properties to specify the visibility of the stubs modules
(source and library) created by the java_sdk_library. Excludes
visibility property from being inherited when creating the module so it
can be properly specified by copying across the relevant property.

Test: m checkapi
Bug: 155164730
Merged-In: Iffdd9f191ff0d74646356ac577560cc38efdd790
Change-Id: Iffdd9f191ff0d74646356ac577560cc38efdd790
(cherry picked from commit 4911a89181)
2020-05-10 23:56:52 +01:00
Paul Duffin
08385bf9ac Retry: Detect invalid arch specific properties in snapshot
Previously, the snapshot code did not know whether a specific property
could be arch specific or not and assumed that they all were which
meant that it could generate snapshots containing arch specific values
for properties that are not arch specific and so would fail when
unpacked.

This change requires arch specific fields in SdkMemberProperties to be
tagged as such using `android:"arch_variant"` (just as in module input
property structures). Any property without that must have properties
that are common across all variants.

Bug: 155628860
Test: m nothing
Merged-In: I3df60f0b53ba02ec2c55a80c7da058eac5909d26
Change-Id: I3df60f0b53ba02ec2c55a80c7da058eac5909d26
(cherry picked from commit 864e1b45db)
2020-05-10 23:56:18 +01:00
Paul Duffin
c878250d3f java_sdk_library: Path extraction from deps depend on tag
Previously, the information that the java_sdk_library extracted from
its child dependencies was determined purely by the type of the
dependency and whether it had a tag of the appropriate type. The actual
tag itself was ignored. That worked but was a little fragile as it
relied on there being no overlap between the types of the dependencies
or if there was overlap on the order in which the dependencies were
processed and the dependency types were checked to ensure that the
correct information was collected.

This change makes the information that is extracted dependent on the
tag that is used. That makes the behavior much more robust and also
simplifes the follow up change which may get the stubs source and API
files from separate droidstubs invocations.

Changes:
* A func field is added to the scopeDependencyTag that is supplied with
  a dependency from which to extract the information and scopePaths
  into which the information will be stored.
* Each scopeDependencyTag instance supplies its own function.
* Various items are renamed to more closely reflect what they actually
  do. e.g. the apiFileTag is renamed to stubsSourceAndApiTag field
  because if provides access to both api file and stubs source.

Test: m checkapi
Bug: 155164730
Change-Id: I4e1861ea67f441f2948a0d7d7053ab0b1169955f
2020-05-10 23:42:02 +01:00
Paul Duffin
bb0c373691 Merge "java_sdk_library: Specify visibility of stubs modules" am: 9f10bbf4cf am: ab789a4198
Change-Id: I125baec7a2ccb509729290f258f2924b77f48eba
2020-05-10 19:01:28 +00:00
Paul Duffin
6e7ecbf972 Switch java_sdk_library_import to use SetDefaultableHook()
Ensure consistency with java_sdk_library.

Bug: 155295806
Test: m checkapi
Change-Id: I074e7c865b6b52c7bcf568da3342d8772623ce4f
2020-05-10 19:33:36 +01:00
Paul Duffin
9f10bbf4cf Merge "java_sdk_library: Specify visibility of stubs modules" 2020-05-10 18:31:56 +00:00
TreeHugger Robot
a13aaa7fcf Merge "Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis" into rvc-dev 2020-05-09 21:27:21 +00:00
Paul Duffin
765e7b7407 Merge "Retry: Detect invalid arch specific properties in snapshot" am: 385378bf99 am: ba539d0faf
Change-Id: I8bec9a34eef34bf78c44f7836aba2496b117086f
2020-05-09 07:59:24 +00:00
Paul Duffin
385378bf99 Merge "Retry: Detect invalid arch specific properties in snapshot" 2020-05-09 07:33:35 +00:00
Colin Cross
1dd9c446be Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis
Check that jni_uses_sdk_apis and jni_uses_platform_apis are consistent
with sdk_version, and add tests that they select the right variant.

Bug: 154665579
Test: app_test.go
Change-Id: I544a4f881ba16dacd7e74cd480c095091b3cf667
Merged-In: I544a4f881ba16dacd7e74cd480c095091b3cf667
(cherry picked from commit 3c007704c7)
2020-05-08 20:30:27 -07:00
Treehugger Robot
24442e09af Merge "Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis" am: 9c3a1291e2 am: 51751012af
Change-Id: I125ad075bad971eb7a4e7fc269d2756c4cb20b19
2020-05-09 02:46:00 +00:00
Treehugger Robot
9c3a1291e2 Merge "Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis" 2020-05-09 02:13:42 +00:00
Liz Kammer
9cd4f811d7 Add lineage file to deps for signapk.
Test: app_test.go
Bug: 153366049
Change-Id: I1481eb51d5d02674922459bdfac65c59d1130015
2020-05-08 17:19:26 -07:00
Colin Cross
3c007704c7 Add error checking and tests for jni_uses_sdk_apis and jni_uses_platform_apis
Check that jni_uses_sdk_apis and jni_uses_platform_apis are consistent
with sdk_version, and add tests that they select the right variant.

Bug: 154665579
Test: app_test.go
Change-Id: I544a4f881ba16dacd7e74cd480c095091b3cf667
2020-05-08 16:55:14 -07:00
Paul Duffin
864e1b45db Retry: Detect invalid arch specific properties in snapshot
Previously, the snapshot code did not know whether a specific property
could be arch specific or not and assumed that they all were which
meant that it could generate snapshots containing arch specific values
for properties that are not arch specific and so would fail when
unpacked.

This change requires arch specific fields in SdkMemberProperties to be
tagged as such using `android:"arch_variant"` (just as in module input
property structures). Any property without that must have properties
that are common across all variants.

Bug: 155628860
Test: m nothing
Change-Id: I3df60f0b53ba02ec2c55a80c7da058eac5909d26
2020-05-08 22:31:56 +01:00
Makoto Onuki
ba15f14271 Merge "Merge the "big 3" metalava invocations into one" into rvc-dev 2020-05-08 21:23:53 +00:00
Liz Kammer
b339011848 Merge "Add signing certificate lineage support to soong" into rvc-dev am: 5c5c4d9332
Change-Id: I8d93c7ad3fb076fa7f8b3a3d71e668b9c0a41305
2020-05-08 20:30:38 +00:00
Liz Kammer
5c5c4d9332 Merge "Add signing certificate lineage support to soong" into rvc-dev 2020-05-08 20:26:39 +00:00
Greg Kaiser
3f1d51dc7e Merge changes from topic "revert-1302576-NGVCIVIIJO" am: a71fe150fa am: 010e45aa06
Change-Id: Idfb961746c35d4efceda1e0da4fc453b92101f3f
2020-05-08 19:51:28 +00:00
Greg Kaiser
a71fe150fa Merge changes from topic "revert-1302576-NGVCIVIIJO"
* changes:
  Revert "Detect invalid arch specific properties in snapshot"
  Revert "Adds support for 'ignored-on-host'"
  Revert "Fix snapshot of a host/device cc_library with stubs"
2020-05-08 19:18:40 +00:00
Greg Kaiser
e509447c93 Revert "Detect invalid arch specific properties in snapshot"
Revert submission 1302576

Bug: 156054601
Reason for revert: Presumed root cause of build break.
Reverted Changes:
Ifc8116e11:Detect invalid arch specific properties in snapsho...
I7ebd33307:Adds support for 'ignored-on-host'
I167b47a13:Fix snapshot of a host/device cc_library with stub...

Change-Id: Id7eba0bdde5c579e10e9b42d94a7cfab5f34995f
2020-05-08 19:12:34 +00:00
Paul Duffin
6d7f0a719c java_sdk_library: Add support for module_lib API surface
Adds api scope for the module_lib and adds that to the list of all
all available scopes. The scope is generated if and only if the
api_surfaces property contains "module_lib".

No other changes are needed as the generation of the APIs is completely
driven by the allApiScopes array and the information in its contained
apiScope structures.

Test: m checkapi
Bug: 155164730
Merged-In: I7769af6823badca8715a270f86cf53b4e954b7df
Change-Id: I7769af6823badca8715a270f86cf53b4e954b7df
(cherry picked from commit 8f265b9ab9)
2020-05-08 19:38:57 +01:00
Paul Duffin
3a254985af java_sdk_library: Control API surfaces generated
Adds a per scope set of properties that allows explicit control over
the API surfaces generated.

Previously, the term active was used to determine whether it was
generated but that was a little abstract and unclear so has been
replaced by generated.

Test: m nothing
Bug: 155164730
Merged-In: I7539d89618b61f6b9d1a4b60cc3f9614b157f0d9
Change-Id: I7539d89618b61f6b9d1a4b60cc3f9614b157f0d9
(cherry picked from commit 3375e35d99)
2020-05-08 19:38:57 +01:00
Paul Duffin
75dcc80396 Export API files as part of the java_sdk_library
Bug: 153443117
Test: m nothing

Merged-In: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de
Change-Id: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de
(cherry picked from commit 1fd005d5b3)
2020-05-08 19:38:57 +01:00
Paul Duffin
f488ef2a3c Export stub sources as part of the java_sdk_library
Minor refactoring of checkMergeZip(string) -> checkMergeZips(...string)
to allow testing of multiple merge zips.

Bug: 153443117
Test: m nothing
Merged-In: I8db00f611ced15f8476ba16f2834a72e8c913596
Change-Id: I8db00f611ced15f8476ba16f2834a72e8c913596
(cherry picked from commit 3d1248ceb6)
2020-05-08 19:34:30 +01:00
Makoto Onuki
b850a9deaa Merge the "big 3" metalava invocations into one
This CL merges the biggest three metalava invocations --
stub and signature file generation, api lint, and "check released" --
into one call.

For each of the existing separate rules for api lint and check released this change:
1) Stopped creating a separate rule containing its own metalava invocation.
2) Moved the code for creating the rule earlier so it can add extra flags to the combined metalava command.
3) Moved the message handling into metalava, allowing the message to be passed in.
4) Added a flag to record whether the specific check was needed so that you can separate the timestamp file creation out to run after the merged metalava command.

A couple of minor bug fixes and clarifications.

Bug: 151160048
Test:  "m" and treehugger

Test: Apply https://android-review.googlesource.com/c/platform/frameworks/base/+/1295541 and run `NINJA_ARGS="-k 999" m checkapi`
-> Make sure there are 4 kinds of lint failures ("AddedFinal" and "VisiblySynchronized") with the valid error messages, from:
- api-stubs-docs
- system-api-stubs-docs
- test-api-stubs-docs
- module-lib-api-

Test: Run the 4 cp commands shown by lint
-> Make sure the following 4 baseline files are updated:
frameworks/base/api/lint-baseline.txt
frameworks/base/api/module-lib-lint-baseline.txt
frameworks/base/api/system-lint-baseline.txt
frameworks/base/api/test-lint-baseline.txt

Test: Then run `NINJA_ARGS="-k 999" m checkapi` again.
-> Make sure the API lint errors are gone
-> Make sure "api-stubs-docs" shows the "You have tried to change the API from what has been
previously released in ..." error. (because of "AddedFinal")
-> Make sure it the other 3 API surfaces show the "You have tried to change the API from
what has been previously approved" error.

Test: Remove "final" from Intent.java and run "NINJA_ARGS="-k 999" m checkapi" again.
-> This time, all the 4 API surfaces say "You have tried to change the API from
what has been previously approved" error."

Test: Run the 4 "make *-update-current-api" commands shown in the above errors and "NINJA_ARGS="-k 999" m checkapi"
-> The exact command is:
$ make \
  module-lib-api-update-current-api \
  api-stubs-docs-update-current-api \
  test-api-stubs-docs-update-current-api \
  system-api-stubs-docs-update-current-api

-> Make sure frameworks/base/api/*-current.txt are properly updated.

Test: Run "m update-api"
-> Make sure no text signature files get updated.

Test: Run "m droid".
-> Make sure everything builds fine.

Change-Id: Ia1a5510b57d58748b4655473d4585636deb7f45e
Merged-in: Ia1a5510b57d58748b4655473d4585636deb7f45e
2020-05-08 10:47:12 -07:00
Paul Duffin
8220186982 Merge "java_sdk_library: Add support for module_lib API surface" am: f49f431c33 am: 99766c6c5d
Change-Id: Id6fe1157b24653e8affdf53f1e0913b57d43651a
2020-05-08 17:40:48 +00:00
Paul Duffin
0c9b1b641d Merge "java_sdk_library: Control API surfaces generated" am: d34bc09aa1 am: 60f68973a9
Change-Id: Idd1269a35174eff53b1121ec9bde04760475a9ac
2020-05-08 17:40:30 +00:00
Paul Duffin
4911a89181 java_sdk_library: Specify visibility of stubs modules
Adds two new properties to specify the visibility of the stubs modules
(source and library) created by the java_sdk_library. Excludes
visibility property from being inherited when creating the module so it
can be properly specified by copying across the relevant property.

Test: m checkapi
Bug: 155164730
Change-Id: Iffdd9f191ff0d74646356ac577560cc38efdd790
2020-05-08 18:03:31 +01:00
Liz Kammer
70dd74dde7 Add signing certificate lineage support to soong
Test: app_test
Bug: 153366049

Change-Id: I65a92d6c40057dcc01950991fb7be485de1c9080
2020-05-08 09:50:42 -07:00
Paul Duffin
0d543640d5 Expand SystemApi annotation for generating system api
Metalava apparently normalizes the SystemApi annotation that was
previously used to the form that this change uses so this is
effectively a no-op. However, this does make this code more
self-consistent and also matches the form that is used in the framework
defaults for the mainline modules.

Test: m checkapi
Bug: 155164730
Change-Id: Ic99b7333730ed8b918d8af72ae7bd6a851c2093a
2020-05-08 12:33:27 +01:00
Paul Duffin
8f265b9ab9 java_sdk_library: Add support for module_lib API surface
Adds api scope for the module_lib and adds that to the list of all
all available scopes. The scope is generated if and only if the
api_surfaces property contains "module_lib".

No other changes are needed as the generation of the APIs is completely
driven by the allApiScopes array and the information in its contained
apiScope structures.

Test: m checkapi
Bug: 155164730
Change-Id: I7769af6823badca8715a270f86cf53b4e954b7df
2020-05-08 07:51:00 +01:00
Paul Duffin
3375e35d99 java_sdk_library: Control API surfaces generated
Adds a per scope set of properties that allows explicit control over
the API surfaces generated.

Previously, the term active was used to determine whether it was
generated but that was a little abstract and unclear so has been
replaced by generated.

Test: m nothing
Bug: 155164730
Change-Id: I7539d89618b61f6b9d1a4b60cc3f9614b157f0d9
2020-05-08 07:51:00 +01:00
Paul Duffin
40cd500f07 Merge changes Ic6f90eb4,I5c5b8436,If673d482,I98b575b8 into rvc-dev
* changes:
  Switch java_sdk_library to use SetDefaultableHook()
  Allow extractCommonProperties to return an error
  Remove reference to obsolete BuildSnapshot()
  Correct order of parameters to AssertDeepEquals
2020-05-08 06:46:19 +00:00
Paul Duffin
7bca3ddc0e Merge changes I167b47a1,I7ebd3330,Ifc8116e1 am: af6fbcbcca am: 4b99ceccd6
Change-Id: Id1001db2b0f09868529b3f7b87ddd3e822c14d49
2020-05-07 22:21:06 +00:00
Paul Duffin
2aaef53b6d Switch java_sdk_library to use SetDefaultableHook()
Previously, java_sdk_library used AddLoadHook() to register a hook that
when called would create its child modules. That meant the
java_sdk_library properties that were used to create the child modules,
e.g. sdk_version could not be defaulted because the modules are created
before the defaults are applied.

This change switches java_sdk_library to use the new
SetDefaultableHook() mechanism to register the hook instead of the
AddLoadHook() mechanism.

It also prevents the child modules from being created if the module has
been disabled.

Bug: 155295806
Test: m checkapi
Merged-In: Ic6f90eb4449338e549878f64e8119e286b9aa549
Change-Id: Ic6f90eb4449338e549878f64e8119e286b9aa549
(cherry picked from commit f022920bde)
2020-05-07 23:06:13 +01:00
Treehugger Robot
fda00d6f1c Merge "Skip dexpreopting android_test_import modules" am: cf23ab4cd8 am: a7f446af4a
Change-Id: I991362bb18254731726b1c6d533ae3ace7b6190c
2020-05-07 22:02:32 +00:00