Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Delegate artifact creation to Publication

Issue: #4943

  1. … 35 more files in changeset.
Add signatures to publications

Issue: #4943

  1. … 17 more files in changeset.
Add support for signing Maven/Ivy publications including metadata

Issue: #4943

  1. … 15 more files in changeset.
Rename `CapabilitiesDescriptor` to `Capabilities`

... and `getCapababilitiesMetadata()` to `getCapabilities()` for consistency.

  1. … 36 more files in changeset.
Publish capabilities to Ivy/Maven repositories

This commit makes sure that capabilities can be published to Maven or Ivy repositories.

By published, we only mean using Gradle metadata: capabilities are a Gradle-only feature,

so there's no equivalent to be published in a `pom.xml` or `ivy.xml` file.

  1. … 15 more files in changeset.
Moved service that takes care of mapping a project dependency to a GAV to the 'dependency-management' project, where it can be reused outside of the Maven and Ivu publishing plugins.

  1. … 12 more files in changeset.
Changed the mapping from project dependency to a GAV so that it does not use any types from the new publishing plugins, and is so decoupled from these plugins.

  1. … 9 more files in changeset.
Changed registration of internal publications to remove a wrapper object and use `Publication` object directly in the registry.

  1. … 8 more files in changeset.
Changed mapping from project dependency to GAV used by the publishing plugins to use the same service to locate the publications of the target project as is used by the tooling API. This change reduces some duplication and changes the mapping logic so that it is decoupled from the exact mechanism that determines the publications produced by the target project.

  1. … 5 more files in changeset.
Serialize dependency reasons

This commit adds support for serializing dependency (constraint) reasons to disk, both through component

metadata binary serialization and in module metadata.

Signed-off-by: Cedric Champeau <cedric@gradle.com>

  1. … 17 more files in changeset.
Fixed name of constants.

Changed Gradle metadata generation to handle enum attributes.

  1. … 1 more file in changeset.
Handle empty constraint version properly in module metadata

When publishing a dependency to module metadata, we now omit any version

attributes that are unspecified in the dependency.

- For an empty VersionContraint, 'version' is omitted.

- For empty VersionConstraint.preferredVersion, 'prefer' is omitted.

- For empty VersionConstraint.rejectVersions, 'reject' is omitted.

  1. … 5 more files in changeset.
Publish dependency constraints to Gradle module metadata

  1. … 12 more files in changeset.
Support publishing excludes to module metadata in Maven repositories

  1. … 3 more files in changeset.
Bump FORMAT_VERSION number for Gradle module metadata

  1. … 7 more files in changeset.
Add `status` to Gradle module metadata

This commit adds attributes to top level component in Gradle metadata. Attributes are written to Gradle metadata files,

and when read, some attributes can be mapped to existing, legacy, properties of component metadata. This is the case

for the "status" property, which is now mapped to a component attribute when serializing, and mapped back to the "status"

property when reading.

This commit also introduces a test that makes sure that the status is actually read from the Gradle metadata file, by

totally ignoring the Ivy descriptor.

  1. … 18 more files in changeset.
Remove `getVersionConstraint` from `Dependency`

We will at some point deprecate `getVersion` on `Dependency`, which is nullable because it doesn't always

make sense (ex: project dependencies). So instead of having version constraints on dependency, it will

only be introduced on the relevant type (external dependencies only).

  1. … 8 more files in changeset.
Read and write `prefers` and `rejects` version constraints in Gradle metadata file

This commit changes the Gradle metadata file format to write version constraints instead of versions.

Instead of writing a single (preferred) version, the `version` block in the Gradle metadata format

for a dependency is now a proper `VersionConstraint`, with `prefers` and `rejects`.

The Gradle dependency metadata format spec has been adjusted.

Note that this commit does not introduce publishing of such metadata (at least, it doesn't prove that

it works): it only adds support for the feature.

  1. … 8 more files in changeset.
Remove maven assumption from module file generator

The ModuleMetadataFileGenerator now asks the backing publication for

the published name and url for each `PublishArtifact`.

  1. … 4 more files in changeset.
Fixed generation of the module metadata file for project dependencies that point to another project that has publications whose coordinates have been customized.

  1. … 4 more files in changeset.
Renamed the module metadata file in a Maven repo from `x-module.json` to `x.module`.

  1. … 9 more files in changeset.
Changed the dependency resolution engine to understand to some degree the connections between the various modules of a component that is published across multiple modules, such as a C++ library or executable.

The publishing plugins no longer insert an artificial dependency between the main module and the other modules. The module metadata parser does this instead when it reads the metadata. This implementation is intentionally dumb and can be improved later without requiring changes to the metadata.

  1. … 7 more files in changeset.
Removed unused import.

Include more details in the module metadata file.

- Added the identity of the component contained in the current module, if any.

- Added connection back to the main module of the component, where the current module is not the main module.

- Added connection to the module that contains each variant, when the variant is not contained in the current module.

- Added size and content information for each file.

  1. … 7 more files in changeset.
Moved responsibility for generating the correct module metadata for a component that is published across multiple modules into the publish plugins, instead of hacking this together in the C++ plugin. The implementation is arguably still hackey but is now in a better home, where it can be reused by other plugins.

The module metadata generated for published C++ executables now includes the correct references to the debug and release variants, which are published to separate modules.

  1. … 7 more files in changeset.
Include all attributes of each variant of a C++ component in the generated module metadata files published to Maven repositories. Previously only the usage attribute was included.

Added support for attributes with boolean and String values in the generated module metadata file. Previously only `Usage` was supported.

Include the release variants of a published C++ library in the module metadata of the main Maven module. Previously only the API and debug variants were included (because the debuggable attribute could not be expressed in the metadata).

This change means that the correct debug/release variant of a C++ library resolved from a Maven repository will be selected for linking.

  1. … 20 more files in changeset.
Implement static library and statically linked executable

  1. … 37 more files in changeset.
Removed `ChildComponent` concept, as it is not required.

  1. … 11 more files in changeset.
Changed the module metadata file to include the dependencies for each variant. Currently only the group, module and version properties of each dependency is included. Other information such as exclusions, artifacts and so on are not included. These may be added later.

Changed the version of the format to '0.2'.

  1. … 8 more files in changeset.