Skip to content
  1. May 13, 2020
    • Paul Duffin's avatar
      java_sdk_library: Add framework-modules naming scheme · def8a89a
      Paul Duffin authored
      Matches the naming scheme used by the separate manually created modules
      that will be replaced by java_sdk_library's automatically created
      components. This will simplify conversion to java_sdk_library as it
      will allow developers to concentrate on getting the conversion correct
      without also having to worry about name changes. It will also allow the
      conversions to be parallelized as many of the references to the
      components are in places where conflicts are likely.
      
      Test: m nothing
      Bug: 155480189
      Merged-In: Ic859a61de155b3e582c17f6ab5e9298f5f4e709a
      Change-Id: Ic859a61de155b3e582c17f6ab5e9298f5f4e709a
      (cherry picked from commit 6c9c5fc4)
      def8a89a
    • Paul Duffin's avatar
      java_sdk_library: Remove some almost single use constants · 1c094a01
      Paul Duffin authored
      The constants are only used in one place in the code and in the test.
      This change switches the test code to use the apiScope methods to
      generate the names and then inlines the constants in those methods. It
      makes it easier to see the naming convention.
      
      Test: m nothing
      Bug: 155480189
      Merged-In: I966e82b8ae67624da168e05f5a2b062b832cb8cd
      Change-Id: I966e82b8ae67624da168e05f5a2b062b832cb8cd
      (cherry picked from commit dd9d0740)
      1c094a01
    • Paul Duffin's avatar
      java_sdk_library: Delegate component module to naming scheme · 1a724e66
      Paul Duffin authored
      Adds a naming scheme abstraction to which the java_sdk_library/import
      will delegate the task of creating the names of their component
      modules. The naming scheme can be selected in a module definition but
      for now the only supported option is "default".
      
      Test: m nothing
      Bug: 155480189
      Merged-In: I708657661188ea4a14a4dd8c6bc4b46237bbe5e0
      Change-Id: I708657661188ea4a14a4dd8c6bc4b46237bbe5e0
      (cherry picked from commit 1b1e8069)
      1a724e66
    • Paul Duffin's avatar
      java_sdk_library: Extract child module naming to common struct · b74ee3e7
      Paul Duffin authored
      Extracts the child module naming to the commonToSdkLibraryAndImport
      struct so it can be reused by both sdk library source and prebuilt.
      
      Also:
      * Makes all child module name generation go through the common struct.
      * Renames some of the methods to clarify their purpose and improve
        consistency.
      
      Test: m nothing
      Bug: 155480189
      Merged-In: I9be9aab07252b491ab292b8847138a93b487cf53
      Change-Id: I9be9aab07252b491ab292b8847138a93b487cf53
      (cherry picked from commit c3091c8c)
      b74ee3e7
    • Paul Duffin's avatar
      java_sdk_library: Allow separate api/stubs source modules · a377e4c8
      Paul Duffin authored
      The API file for a scope represents the differences between the API
      provided by that scope and that provided by the scope that it extends.
      On the other hand the stubs source for a scope represents the union of
      the API provided by the scope and the scope it extends (all the way
      back to public).
      
      Unfortunately, while metalava supports this behavior for scopes that
      extend public (e.g. system and test) it does not support this behavior
      for scopes that extend others, e.g. module_lib which extends system.
      This is because it always assumes that the baseline for the API file
      is 'public' and so has no way to defined other baselines.
      
      This change works around that by having separate droidstubs modules to
      generate the API and stubs sources for scopes that require different
      arguments to generate the API and stubs sources.
      
      Test: m checkapi
      Bug: 155164730
      Merged-In: Iea7d59852d7aeb503120acf3c44e08eb0d9d07b9
      Change-Id: Iea7d59852d7aeb503120acf3c44e08eb0d9d07b9
      (cherry picked from commit 0ff08bdb)
      a377e4c8
    • Paul Duffin's avatar
      java_sdk_library: Preserve sdk_version: "none" in snapshot · 153501f6
      Paul Duffin authored
      Test: m nothing
      Bug: 156354511
      Merged-In: Icf7c20dc109a773430768c1a2d91c674551dbc1b
      Change-Id: Icf7c20dc109a773430768c1a2d91c674551dbc1b
      (cherry picked from commit 780c5f47)
      153501f6
    • Paul Duffin's avatar
      Allow sdk_version: "none" to be used in prebuilts/ · cd9b6971
      Paul Duffin authored
      Bug: 156354511
      Test: m nothing
      Merged-In: Iffce78cbce88a8341146bf19e78acf25fc69f2b0
      Change-Id: Iffce78cbce88a8341146bf19e78acf25fc69f2b0
      (cherry picked from commit e5c3b85e)
      cd9b6971
    • Paul Duffin's avatar
      Enable api_lint in java_sdk_library · 8986cc94
      Paul Duffin authored
      Adds api_lint.enabled property to control whether API linting should be
      performed.
      
      Test: m checkapi
      Bug: 156126315
      Merged-In: I87ca5a942228cf6af1a9939f0334d6fc46c39a63
      Change-Id: I87ca5a942228cf6af1a9939f0334d6fc46c39a63
      (cherry picked from commit 160fe41c)
      8986cc94
    • TreeHugger Robot's avatar
  2. May 12, 2020
    • Paul Duffin's avatar
      Defer \n quoting generatedContents until creating the ninja rule · ece64f6d
      Paul Duffin authored
      Previously, when writing to generatedContents \n characters were
      quoted (replaced with \\n) so as to allow them to be preserved through
      ninja/rsp/bash and were unquoted (replaced \\n with \n) just before
      redirecting to the output file. That meant that any code which wanted
      to access the contents for other purposes, e.g. testing had to unquote
      \\n.
      
      This change moves the quoting to be part of the code that generates the
      ninja rule which simplifies any other code that has to access the
      contents.
      
      Without quoting the generated Android.bp files are not formatted
      properly, are all on one line and completely unreadable.
      
      Bug: 156286550
      Test: m art-module-sdk and check generated Android.bp file to make sure
            it is properly formatted.
      Merged-In: I768c3b96ed08a3daf251730e2a10d9d72338c49a
      Change-Id: I768c3b96ed08a3daf251730e2a10d9d72338c49a
      (cherry picked from commit 1110827b)
      ece64f6d
    • Paul Duffin's avatar
      Merge changes I4e1861ea,Ic99b7333 into rvc-dev · ddbb1964
      Paul Duffin authored
      * changes:
        java_sdk_library: Path extraction from deps depend on tag
        Expand SystemApi annotation for generating system api
      ddbb1964
    • easoncylee's avatar
      Add test_mainline_modules to the auto-gen test config(GTest only). · 2968a58a
      easoncylee authored
      To support parameterized mainline modules in Test Mapping, we plan to
      add a new parameter called test_mainline_modules in build system to
      auto-generate the test config based on the parameter.
      
      For detailed information: go/test-mapping-mainline-gcl
      (serach for auto-generated pattern)
      
      Bug: 155238134
      Test: add "test_mainline_modules: [some.apk]" to libstatspull_test,
      and build the modules, confirm the parameterized option is added
      in the test config.
      
      Change-Id: I31d6dfbb71881d7a7026cf2f36ba6ca6a97870ad
      Merged-In: I31d6dfbb71881d7a7026cf2f36ba6ca6a97870ad
      2968a58a
  3. May 11, 2020
    • Artur Satayev's avatar
      81547634
    • Paul Duffin's avatar
      java_sdk_library: Path extraction from deps depend on tag · 5fb8213d
      Paul Duffin authored
      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
      Merged-In: I4e1861ea67f441f2948a0d7d7053ab0b1169955f
      Change-Id: I4e1861ea67f441f2948a0d7d7053ab0b1169955f
      (cherry picked from commit c878250d)
      5fb8213d
    • Paul Duffin's avatar
      Expand SystemApi annotation for generating system api · 991f2626
      Paul Duffin authored
      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
      Merged-In: Ic99b7333730ed8b918d8af72ae7bd6a851c2093a
      Change-Id: Ic99b7333730ed8b918d8af72ae7bd6a851c2093a
      (cherry picked from commit 0d543640)
      991f2626
    • Liz Kammer's avatar
    • Artur Satayev's avatar
      Introduce app -deps-info. · d9b503aa
      Artur Satayev authored
      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 1111b848)
      d9b503aa
    • Paul Duffin's avatar
    • Paul Duffin's avatar
      Switch java_sdk_library_import to use SetDefaultableHook() · bf735aa7
      Paul Duffin authored
      Ensure consistency with java_sdk_library.
      
      Bug: 155295806
      Test: m checkapi
      Merged-In: I074e7c865b6b52c7bcf568da3342d8772623ce4f
      Change-Id: I074e7c865b6b52c7bcf568da3342d8772623ce4f
      (cherry picked from commit 6e7ecbf9)
      bf735aa7
    • Paul Duffin's avatar
      Merge changes Iffdd9f19,Ia4e744c9,Ibafdb6e9,I3df60f0b into rvc-dev · 077fd650
      Paul Duffin authored
      * 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
      077fd650
  4. May 10, 2020
    • Paul Duffin's avatar
      java_sdk_library: Specify visibility of stubs modules · 344c4eed
      Paul Duffin authored
      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 4911a891)
      344c4eed
    • Paul Duffin's avatar
      Retry: Fix snapshot of a host/device cc_library with stubs · 129171b6
      Paul Duffin authored
      Change since last attempt: Disable test that breaks on darwin.
      
      Adds a test that fails with unknown property android.stubs.versions
      and then fixes that by marking the field from which that property is
      created with 'ignored-on-host' and implemented the isHostVariant on
      *osTypeSpecificInfo.
      
      Bug: 155628860
      Test: m nothing
      Merged-In: Ia4e744c9e799d5adaf8a2f761516f568ec363ad4
      Change-Id: Ia4e744c9e799d5adaf8a2f761516f568ec363ad4
      (cherry picked from commit 7a1f7f32)
      129171b6
    • Paul Duffin's avatar
      Retry: Adds support for 'ignored-on-host' · 4d125bd8
      Paul Duffin authored
      Adds a filter mechanism that can exclude property values from being
      included in the common value extraction. That is needed to prevent the
      snapshot mechanism from generating invalid output for properties that
      are ignored on host (and have their values cleared) and which are not
      tagged with `android:"arch_variant"`.
      
      Changes:
      * Updates the documentation of SdkMemberType to explain what effect
        the 'ignored-on-host' tag has.
      * Adds some tests for this new mechanism.
      
      Bug: 155628860
      Test: m nothing
      Merged-In: Ibafdb6e921ba5abe505bd8a91ca5a1d9c9b5d0cb
      Change-Id: Ibafdb6e921ba5abe505bd8a91ca5a1d9c9b5d0cb
      (cherry picked from commit c459f89f)
      4d125bd8
    • Paul Duffin's avatar
      Retry: Detect invalid arch specific properties in snapshot · 08385bf9
      Paul Duffin authored
      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 864e1b45)
      08385bf9
  5. May 09, 2020
  6. May 08, 2020
    • Makoto Onuki's avatar
    • Liz Kammer's avatar
    • Paul Duffin's avatar
      java_sdk_library: Add support for module_lib API surface · 6d7f0a71
      Paul Duffin authored
      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 8f265b9a)
      6d7f0a71
    • Paul Duffin's avatar
      java_sdk_library: Control API surfaces generated · 3a254985
      Paul Duffin authored
      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 3375e35d)
      3a254985
    • Paul Duffin's avatar
      Export API files as part of the java_sdk_library · 75dcc803
      Paul Duffin authored
      Bug: 153443117
      Test: m nothing
      
      Merged-In: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de
      Change-Id: I9d6f5b91a7cc25019e2eb9e3c138f0874d2831de
      (cherry picked from commit 1fd005d5)
      75dcc803
    • Paul Duffin's avatar
      Export stub sources as part of the java_sdk_library · f488ef2a
      Paul Duffin authored
      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 3d1248ce)
      f488ef2a
    • Makoto Onuki's avatar
      Merge the "big 3" metalava invocations into one · b850a9de
      Makoto Onuki authored
      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
      b850a9de
    • Liz Kammer's avatar
      Add signing certificate lineage support to soong · 70dd74dd
      Liz Kammer authored
      Test: app_test
      Bug: 153366049
      
      Change-Id: I65a92d6c40057dcc01950991fb7be485de1c9080
      70dd74dd
    • Paul Duffin's avatar
      Merge changes Ic6f90eb4,I5c5b8436,If673d482,I98b575b8 into rvc-dev · 40cd500f
      Paul Duffin authored
      * 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
      40cd500f
  7. May 07, 2020
    • Paul Duffin's avatar
      Switch java_sdk_library to use SetDefaultableHook() · 2aaef53b
      Paul Duffin authored
      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 f022920b)
      2aaef53b
    • Paul Duffin's avatar
      Allow extractCommonProperties to return an error · 1c58f579
      Paul Duffin authored
      Refactoring in preparation for follow up changes.
      
      Also:
      * Adds a new AssertErrorMessageEquals() helper method.
      * Improved error reporting in the accessor and added name to
        extractorProperty to ensure meaningful errors are reported.
      * Added String() string method to propertiesContainer.
      * Reports errors using the field name as the errors are not really
        fixable by developers and it is more meaningful to the build team.
      
      Bug: 155628860
      Test: m nothing
      Merged-In: I5c5b8436bcbc39e4e7cd35df2577b2dac53e702a
      Change-Id: I5c5b8436bcbc39e4e7cd35df2577b2dac53e702a
      (cherry picked from commit 4b8b7939)
      1c58f579
    • Paul Duffin's avatar
      Remove reference to obsolete BuildSnapshot() · d7acc7b7
      Paul Duffin authored
      Bug: 155628860
      Test: m nothing
      Merged-In: If673d482e8318b5fbb86780236123b0bd59eb5d3
      Change-Id: If673d482e8318b5fbb86780236123b0bd59eb5d3
      (cherry picked from commit 425b0eac)
      d7acc7b7
    • Paul Duffin's avatar
      Correct order of parameters to AssertDeepEquals · 9ec2a79a
      Paul Duffin authored
      The expected/actual were around the wrong way.
      
      Bug: 155628860
      Test: m nothing
      Merged-In: I98b575b8b85dcbfd2075e77689f0329aa2eadbf0
      Change-Id: I98b575b8b85dcbfd2075e77689f0329aa2eadbf0
      (cherry picked from commit 1d6c0df5)
      9ec2a79a
Loading