Rules for declaring the compliance licenses used by a package.

## license

license(name, copyright_notice, license_kinds, license_text, package_name, package_url,
         package_version)

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |  |
| copyright_notice |  Copyright notice.   | String | optional | "" |
| license_kinds |  License kind(s) of this license. If multiple license kinds are listed in the LICENSE file, and they all apply, then all should be listed here. If the user can choose a single one of many, then only list one here.   | List of labels (https://bazel.build/concepts/labels) | optional | [] |
| license_text |  The license file.   | Label (https://bazel.build/concepts/labels) | optional | LICENSE |
| package_name |  A human readable name identifying this package. This may be used to produce an index of OSS packages used by an applicatation.   | String | optional | "" |
| package_url |  The URL this instance of the package was download from. This may be used to produce an index of OSS packages used by an applicatation.   | String | optional | "" |
| package_version |  A human readable version string identifying this package. This may be used to produce an index of OSS packages used by an applicatation.  It should be a value that increases over time, rather than a commit hash.   | String | optional | "" |

Proof of concept. License restriction.

## license_kind

license_kind(name, canonical_text, conditions, long_name, url)

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |  |
| canonical_text |  File containing the canonical text for this license. Must be UTF-8 encoded.   | Label (https://bazel.build/concepts/labels) | optional | None |
| conditions |  Conditions to be met when using software under this license.  Conditions are defined by the organization using this license.   | List of strings | required |  |
| long_name |  Human readable long name of license.   | String | optional | "" |
| url |  URL pointing to canonical license definition   | String | optional | "" |

Rules for declaring metadata about a package.

## package_info

package_info(name, package_name, package_url, package_version)

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |  |
| package_name |  A human readable name identifying this package. This may be used to produce an index of OSS packages used by an applicatation.   | String | optional | "" |
| package_url |  The URL this instance of the package was download from. This may be used to produce an index of OSS packages used by an applicatation.   | String | optional | "" |
| package_version |  A human readable version string identifying this package. This may be used to produce an index of OSS packages used by an applicatation.  It should be a value that increases over time, rather than a commit hash.   | String | optional | "" |

Basic providers for license rules.

This file should only contain the basic providers needed to create
license and package_info declarations. Providers needed to gather
them are declared in other places.

## LicenseInfo

LicenseInfo(copyright_notice, label, license_kinds, license_text, package_name, package_url,
            package_version)

Provides information about a license instance.

**FIELDS**

| Name  | Description |
| :------------- | :------------- |
| copyright_notice |  string: Human readable short copyright notice    |
| label |  Label: label of the license rule    |
| license_kinds |  list(LicenseKindInfo): License kinds    |
| license_text |  string: The license file path    |
| package_name |  string: Human readable package name    |
| package_url |  URL from which this package was downloaded.    |
| package_version |  Human readable version string    |

Basic providers for license rules.

This file should only contain the basic providers needed to create
license and package_info declarations. Providers needed to gather
them are declared in other places.

## LicenseKindInfo

LicenseKindInfo(conditions, label, long_name, name)

Provides information about a license_kind instance.

**FIELDS**

| Name  | Description |
| :------------- | :------------- |
| conditions |  list(string): List of conditions to be met when using this packages under this license.    |
| label |  Label: The full path to the license kind definition.    |
| long_name |  string: Human readable license name    |
| name |  string: Canonical license name    |

Basic providers for license rules.

This file should only contain the basic providers needed to create
license and package_info declarations. Providers needed to gather
them are declared in other places.

## PackageInfo

PackageInfo(type, label, package_name, package_url, package_version)

Provides information about a package.

**FIELDS**

| Name  | Description |
| :------------- | :------------- |
| type |  string: How to interpret data    |
| label |  Label: label of the package_info rule    |
| package_name |  string: Human readable package name    |
| package_url |  string: URL from which this package was downloaded.    |
| package_version |  string: Human readable version string    |

Rules and macros for collecting LicenseInfo providers.

## gather_metadata_info

gather_metadata_info(name)

Collects LicenseInfo providers into a single TransitiveMetadataInfo provider.

**ASPECT ATTRIBUTES**

| Name | Type |
| :------------- | :------------- |
| *| String |

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |   |

Rules and macros for collecting LicenseInfo providers.

## gather_metadata_info_and_write

gather_metadata_info_and_write(name)

Collects TransitiveMetadataInfo providers and writes JSON representation to a file.

    Usage:
      bazel build //some:target           --aspects=@rules_license//rules:gather_metadata_info.bzl%gather_metadata_info_and_write
          --output_groups=licenses
    

**ASPECT ATTRIBUTES**

| Name | Type |
| :------------- | :------------- |
| *| String |

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |   |

Rules and macros for collecting package metdata providers.

## trace

trace(name)

Used to allow the specification of a target to trace while collecting license dependencies.

**ATTRIBUTES**

| Name  | Description | Type | Mandatory | Default |
| :------------- | :------------- | :------------- | :------------- | :------------- |
| name |  A unique name for this target.   | Name (https://bazel.build/concepts/labels#target-names) | required |  |

