| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
| |
This allows us to use either the new AndroidResources object and its children (which are fully decoupled from asset processing) or the old ResourceContainer. We'll actually turn on decoupled asset and resource processing in an upcoming change.
We still need to create an asset-only pipeline and handle the binary case.
RELNOTES: none
PiperOrigin-RevId: 193047924
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Roll forward with fix and test - turns out I didn't distinguish properly
between list and item seperators.
*** Original change description ***
Rollback "Allow Merge action to take an interface as primary, not just ResourceContainer", as it breaks some android rule integration tests.
RELNOTES: none
PiperOrigin-RevId: 191322706
|
|
|
|
|
|
|
| |
ResourceContainer", as it breaks some android rule integration tests.
RELNOTES: none
PiperOrigin-RevId: 191304264
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In future reviews, we will use this to be able to pass assets and resources
individually.
Introduce replacement for ResourceContainerConverter that can handle generics
and should be about as flexible.
To support that replacement, slightly improve how CustomCommandLine handles
generics.
RELNOTES: none
PiperOrigin-RevId: 190970298
|
|
|
|
|
|
|
|
|
| |
lib.analysis.actions -> lib.actions.
These are fundamental types that want to sit alongside types like Spawn.
RELNOTES: None
PiperOrigin-RevId: 185887971
|
|
|
|
|
|
| |
This is needed to migrate JavaCompileAction away from CustomMultiArgv.
PiperOrigin-RevId: 184136486
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the same mapFn class.
This code tries to add protection against the user creating new mapFn instances per-rule. This would cause the nested set cache to be computed per-rule instead of shared across rule instances, causing memory bloat and slowdowns.
Since this can only happen in native code, we can get away with detecting this and crashing blaze. I think this is a better choice than silently allowing it / falling back to slow computations.
The user can override this behaviour by inheriting from CommandLineItem.CapturingMapFn, in which case the user is explicitly saying they assume responsibility for the number of instances of the mapFn the application will use.
PiperOrigin-RevId: 184061642
|
|
|
|
|
|
|
|
| |
This interface makes it clearer in the type system exactly how items that go into a CustomCommandLine are turned into strings.
It is a preparatory change to allow command line fingerprints to be more cheaply calculated, but it is valuable in itself from a code quality standpoint.
PiperOrigin-RevId: 183274022
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 179425421
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Recent changes:
1) Started passing all resources to processors, ignoring the filtered
ResourceContainers, and
2) Started loading an unfiltered LocalResourceContainer into binary resource
processing, in addition to the filtered container.
Fix both of these. To fix the former, we need to split the misleadingly-named
'transitiveResourceRoots' (actually transitive resource and assets artifacts)
into transitive resources and assets.
Update resource filtering tests to catch bugs like these.
Also, rename getters for resource containers to make clear that they are not
getters for resources.
Finally, document some weirdness and partially-completed migrations encountered
as part of investigating these issues, and add appropriate TODOs and
deprecation.
RELNOTES: None
PiperOrigin-RevId: 172929936
|
|
|
|
|
|
|
| |
resource library APK's.
RELNOTES: none
PiperOrigin-RevId: 170517806
|
|
|
|
|
|
| |
This involves rather tediously rolling up each artifact type in its own individual nested set.
PiperOrigin-RevId: 168729120
|
|
|
|
|
|
| |
This whole CL was done using IDE refactoring tools and should be safe.
PiperOrigin-RevId: 168275575
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In converting SpawnAction.Builder (multi-thousand line CL) users directly to CustomCommandLine I didn't like the resulting loss of readability, and the methods didn't feel very discoverable. Unless it's very convenient and readable to use CustomCommandLine, people will resort to non-memory efficient patterns by default. I'm holding that CL for this, which should offer a nicer interface.
This CL removes VectorArg from the API contact surface area, instead creating 64 overloads for every valid combination of parameters. Pretty sad, but the methods dispatch straight to internal helper methods so it's mostly boilerplate to the tune of +400 LOC.
Other changes:
* Change ImmutableCollection -> Collection and copy the args directly into the internal args vector. Saves on collection object overhead and saves users from having to create immutable copies.
* Change some names, notably add -> addAll for collection methods
* Create additional missing overloads
* Fix JavaDoc
RELNOTES: None
PiperOrigin-RevId: 165943879
|
|
|
|
|
|
|
|
|
| |
This enforces certain memory-efficient patterns. For deliberate use of dynamic strings, explicitly named overloads are introduced, with javadoc that guides the programmer into making the right choice.
This CL is a memory no-op on benchmarks, but it tries to prevent backslide by making sure programmers make conscious choices when they construct their command lines.
RELNOTES: None
PiperOrigin-RevId: 165185997
|
|
|
|
|
|
|
|
|
| |
Apart from updating CustomCommandLineTest this CL is entirely automated.
We also sneak in a rename of addFormat -> addFormatted.
RELNOTES: None
PiperOrigin-RevId: 164870140
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Caused memory regression.
*** Original change description ***
CustomCommandLine.Builder: clean up its interface
In this commit:
- remove unused methods and classes
- turn CustomCommandLine.ArgvFragment into an
interface
- remove the
CustomCommandLine.TreeFileArtifactArgvFragment
abstract class; it only had one remaining
subclass
- add @Nullable annotations where nulls are fine
- add Precondition checks for non-nullable args
- simplify the interface by removing add* methods
that can be composed of other add* methods; this
makes it easier to see...
***
RELNOTES: none
PiperOrigin-RevId: 162320031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In this commit:
- remove unused methods and classes
- turn CustomCommandLine.ArgvFragment into an
interface
- remove the
CustomCommandLine.TreeFileArtifactArgvFragment
abstract class; it only had one remaining
subclass
- add @Nullable annotations where nulls are fine
- add Precondition checks for non-nullable args
- simplify the interface by removing add* methods
that can be composed of other add* methods; this
makes it easier to see what the callers do with
the Builder
- remove add* methods that add a single argument
followed by a list of other elements (or a
joined string of them); these had a bug in that
they didn't check if the collection was empty
(only that it was not null), and if it was empty
then the single argument was still added though
it was not followed by any value
- fix call sites of add* methods where we
previously could have added a flag with an empty
collection
- audit every affected call site
RELNOTES: none
PiperOrigin-RevId: 161957521
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 160684786
|
|
|
|
|
|
|
| |
With a few manual fixes for readability.
RELNOTES: None.
PiperOrigin-RevId: 160582556
|
|
|
|
| |
PiperOrigin-RevId: 155900259
|
|
|
|
|
|
| |
--
PiperOrigin-RevId: 144741831
MOS_MIGRATED_REVID=144741831
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This merges the AndroidResourceContainerBuilder (which it's not even clear is related to
the nested ResourceContainer!) into the newly generated ResourceContainer.Builder.
It also seemed ridiculous for ResourceContainer to get so large and still be subordinate
to AndroidResourcesProvider, especially when it's getting passed around in a lot of other
places (look how many imports needed fixing!). This CL makes it its own top level class.
This allows for easy modification of an existing instance: call toBuilder on it, set
the properties you want set, and then call build.
--
PiperOrigin-RevId: 143574468
MOS_MIGRATED_REVID=143574468
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Part 2 of the 3 new proposed android_library res
processing actions. The primary and deps are all
assumed to be parsed+summarized in a protobuf.
Represent that with a new class (similar to
DependencyAndroidData but w/out R.txt).
Avoid having "manifest" artifacts as deps input,
and instead use "label", since that is only used
in a warning. DepAD still uses the manifest for
#asSymbolFileProvider, so we keep it there.
Move loading the primary out of the merge function
so that we can share the merge function with this
style of primary data, and the existing style of
of primary data (UnvalidatedAndroidData).
This produces an R class.jar and a zip file to
pass along to a future validation action. Images
are stubbed out since they are irrelevant to the
validation action.
--
MOS_MIGRATED_REVID=131604421
|
|
This way they can be shared with a resource merge
spawn action builder (similar cmdline conventions).
--
MOS_MIGRATED_REVID=128804575
|