gradle-module-metadata-specification.md

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Make Gradle metadata format 1.0

This commit bumps the Gradle metadata format to 1.0.

The specification file of the format has been changed

so that the name of the file indicates which version

it covers.

Starting from this commit, it is illegal to change

the metadata file format _without_ backwards compatibility

in mind.

    • -219
    • +0
    ./gradle-module-metadata-specification.md
  1. … 14 more files in changeset.
Initial documentation for "feature variants"

This is the first batch of documentation for "feature variants".

It is aimed at explaining the concepts around it (feature variant,

capabilities, ...) and explain how the Java plugins leverage

that to offer handling of feature variants and "optional dependencies".

    • -0
    • +8
    ./gradle-module-metadata-specification.md
  1. … 36 more files in changeset.
Update Gradle metadata file format

    • -0
    • +1
    ./gradle-module-metadata-specification.md
  1. … 1 more file in changeset.
Fix typo in gradle-module-metadata-specification.md

Signed-off-by: Bjørn Vester <bjornvester@gmail.com>

    • -1
    • +1
    ./gradle-module-metadata-specification.md
Update module metadata specification

    • -8
    • +12
    ./gradle-module-metadata-specification.md
  1. … 1 more file in changeset.
Read dependency attributes in Gradle module metadata

This commit adds support for parsing dependency attributes in Gradle module metadata.

It is not yet making use of that information, it's only making sure that the parser

is able to parse and propagate it. It doesn't touch the serializer either, which is

going to be done in a separate commit.

Module metadata file version has been bumped to 0.4 as part of this work.

    • -8
    • +13
    ./gradle-module-metadata-specification.md
  1. … 17 more files in changeset.
Add missing "," to sample in spec document

    • -1
    • +1
    ./gradle-module-metadata-specification.md
Document capabilities in Gradle metadata

    • -0
    • +9
    ./gradle-module-metadata-specification.md
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
    • +3
    ./gradle-module-metadata-specification.md
  1. … 17 more files in changeset.
Allow module metadata with missing 'prefer' version

- Updated spec to specify that version, prefer and reject are all optional

- Handle missing prefer when parsing

- Updated test files to verify serialization

    • -6
    • +6
    ./gradle-module-metadata-specification.md
  1. … 4 more files in changeset.
Publish dependency constraints to Gradle module metadata

    • -0
    • +10
    ./gradle-module-metadata-specification.md
  1. … 12 more files in changeset.
Use ExcludeRuleConverter for creating exclude rule instances

    • -2
    • +0
    ./gradle-module-metadata-specification.md
  1. … 4 more files in changeset.
Bump FORMAT_VERSION number for Gradle module metadata

    • -6
    • +6
    ./gradle-module-metadata-specification.md
  1. … 7 more files in changeset.
Update module metadata specification for exclude rules

    • -2
    • +27
    ./gradle-module-metadata-specification.md
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.

    • -3
    • +5
    ./gradle-module-metadata-specification.md
  1. … 8 more files in changeset.
Renamed the module metadata file in a Maven repo from `x-module.json` to `x.module`.

    • -1
    • +1
    ./gradle-module-metadata-specification.md
  1. … 9 more files in changeset.
Some edits to the Gradle module metadata format spec.

    • -3
    • +3
    ./gradle-module-metadata-specification.md
Renamed the usage attribute (not the class).

    • -1
    • +1
    ./gradle-module-metadata-specification.md
  1. … 1 more file 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.

    • -11
    • +3
    ./gradle-module-metadata-specification.md
  1. … 7 more files in changeset.
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.

    • -4
    • +52
    ./gradle-module-metadata-specification.md
  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.

    • -2
    • +3
    ./gradle-module-metadata-specification.md
  1. … 20 more files in changeset.
Minor edits to the doc that describes the Gradle module metadata format.

    • -1
    • +7
    ./gradle-module-metadata-specification.md
Updated documentation for the module metadata file.

    • -10
    • +23
    ./gradle-module-metadata-specification.md
Added some initial documentation of the Gradle module metadata file.

    • -0
    • +95
    ./gradle-module-metadata-specification.md