packaging

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix position of 'afterEvaluate' block

  1. … 1 more file in changeset.
Move more things out of root script and document plugins applied in root

  1. … 14 more files in changeset.
Cleanup build script code

- Get rid of usages of "extra"

- Use Kotlin DSL APIs

- Adress or remove outdated TODOs

  1. … 27 more files in changeset.
Upgrade JUnit in buildSrc to latest

Fix tooling API metadata - bundling attribute (#12378)

There are two different bundlings used in the metadata:

runtime variant: SHADOWED

sources variant: EXTERNAL

Because of that, a resolution without requested attributes is not able

to identify the 'runtime' variant as the preferred one.

To resolve that, we now set the sources variant to SHADOWED as well to

match the library variant it belongs to. Although it technically does

not contain all the sources of the shadowed classes.

Then legacy behavior like: 'configurations.compile.files'

(resolving the Tooling API directly through the 'compile' configuration)

still works as before. The runtime variant is selected.

This commit also adds integration test coverage:

This includes the typical scenarios - compileClasspath and

runtimeClasspath - and also the case where you just create

a configuration without attributes - similar to resolving

the legacy 'default' or 'compile' configurations.

  1. … 1 more file in changeset.
Fix tooling API metadata - bundling attribute (#12378)

There are two different bundlings used in the metadata:

runtime variant: SHADOWED

sources variant: EXTERNAL

Because of that, a resolution without requested attributes is not able

to identify the 'runtime' variant as the preferred one.

To resolve that, we now set the sources variant to SHADOWED as well to

match the library variant it belongs to. Although it technically does

not contain all the sources of the shadowed classes.

Then legacy behavior like: 'configurations.compile.files'

(resolving the Tooling API directly through the 'compile' configuration)

still works as before. The runtime variant is selected.

This commit also adds integration test coverage:

This includes the typical scenarios - compileClasspath and

runtimeClasspath - and also the case where you just create

a configuration without attributes - similar to resolving

the legacy 'default' or 'compile' configurations.

  1. … 1 more file in changeset.
Replace `baseVersion` and `isSnapshot` extra properties by `BuildVersion` project extension

  1. … 8 more files in changeset.
Organize `buildSrc` project dependencies

  1. … 12 more files in changeset.
Make sure we select a documentation variant for shaded sources Jar

Follow up to: #11743

Make attribute definitions more precise

There were two places in the build where attributes were added

to all configurations. This can have unexpected side effects, for

example in publishing where we would then publish a (custom) attribute.

With this commit, things are now expressed more precisely.

  1. … 5 more files in changeset.
Use maven-publish for publishing the Tooling API

This moves all custom configuration code for the shaded binary and

sources JARs into the 'ShadedJarPlugin' and the configuration of

publication into the 'publish-public-libraries' plugin.

The tooling-api project is currently the only project using these

two plugins.

  1. … 14 more files in changeset.
Upgrade to japicmp-gradle-plugin 0.2.8

  1. … 8 more files in changeset.
Upgrade other ASM dependencies from `6.0` to `7.1`

Signed-off-by: Pap Lőrinc <lorinc@gradle.com>

  1. … 4 more files in changeset.
Remove unused class

Rework exclude rule merging

As a follow-up to #9197, this commit properly fixes the

exclude rule merging algorithm, by completely rewriting

it. The new merging algorithm works by implementing the

minimal set of algebra operations that make sense to

minimize computation durations. In order to do this,

this commit introduces a number of exclude specs

(found in their own package) and factories to create

actual implementation of those specs.

Specs represent the different kind of excludes we can

find:

- excluding a group

- excluding a module (no group defined)

- excluding a group+module

- excluding an artifact of a group+module

- pattern-matching excludes

- unions of excludes

- intersections of excludes

With all those minimal bricks, factories are responsible

of generating consistent specs. The dumbest factory

will just generate new instances for everything. This

is the default factory.

Minimally, this factory has to be backed by an optimizing

factory, which will take care of handling special cases:

- union or intersection of a single spec

- union or intersection of 2 specs

- when one of them is null

- when both are equal

Then we have a factory which performs the minimal algebra

to minimize specs:

- unions of unions

- intersections of intersections

- union of a union and individual specs

- insection of an intersection and individual spec

- ...

This factory can be as smart as it can, but one must be

careful that it's worth it: some previously implemented

optimizations (like (A+B).A = A turned out to be costly

to detect, and didn't make it the final cut.

Last but not least, a caching factory is there to avoid

recomputing the same intersections and unions of specs

when we have already done the job. This is efficient if

the underlying (delegate) specs are easily compared,

which is the case thanks to the interning factory.

All in all, the delegation chain allows us to make

the algorithm fast and hopefully reliable, while

making it easier to debug.

  1. … 75 more files in changeset.
Upgrade to Guava 27.1

Still using the Android variant for now.

  1. … 5 more files in changeset.
Revert "Upgrade to Guave 27.1"

This reverts commit 6db14871d5cdb7a5f7923a3bf3ca121168236307.

  1. … 2 more files in changeset.
Upgrade to Guave 27.1

  1. … 2 more files in changeset.
Use Provider<FileSystemLocation> for artifact transforms

Using `File` is deprecated.

  1. … 5 more files in changeset.
Enable caching for Minify transform

The minify transform seems to be expensive at times. Let's cache it!

Infer parameters from action

  1. … 8 more files in changeset.
Make ShadeClasses cacheable

Rename all registered types to be without suffix

  1. … 6 more files in changeset.
Migrate packaging transforms to new API

Remove :apiMetadata:apiParameterNames

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 4 more files in changeset.
Prefer sourceSets over java.SourceSets

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 3 more files in changeset.
Spelling (#8199)

Fix several spelling issues.

  1. … 36 more files in changeset.
Let each module jar contain an api parameter names index

for the GradleApiParameterNamesTransform to consume them

instead of regenerating it on each xform

this makes the build configuration back to normal speed

the :module:parameterNamesIndex task is cacheable but isn't that cheep

:apiMetadata:apiParameterNamesIndex is still required until the next

wrapper update

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 9 more files in changeset.
Fix ordering problem between api-metadata and parameter-names xform

by simplifying :apiMetadata:apiParameterNamesResource task

by also extracting parameter names index from the xform

awfully slow re-doing work on each xform but gets things running

to be reworked

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 5 more files in changeset.
Enable stricter validation

  1. … 7 more files in changeset.