Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate package license metadata #2476

Merged
merged 16 commits into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 84 additions & 0 deletions crate_universe/3rdparty/crates/BUILD.spdx-0.10.3.bazel

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions crate_universe/3rdparty/crates/defs.bzl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions crate_universe/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions crate_universe/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ serde = { version = "1.0.190", features = ["derive"] }
serde_json = "1.0.108"
serde_starlark = "0.1.14"
sha2 = "0.10.8"
spdx = "0.10.3"
tempfile = "3.8.1"
tera = "1.19.1"
textwrap = "0.16.0"
Expand Down
5 changes: 4 additions & 1 deletion crate_universe/private/generate_utils.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@ def render_config(
generate_target_compatible_with = True,
platforms_template = "@rules_rust//rust/platform:{triple}",
regen_command = None,
vendor_mode = None):
vendor_mode = None,
generate_package_metadata = False):
"""Various settings used to configure rendered outputs

The template parameters each support a select number of format keys. A description of each key
Expand Down Expand Up @@ -128,6 +129,7 @@ def render_config(
keys are [`{triple}`].
regen_command (str, optional): An optional command to demonstrate how generated files should be regenerated.
vendor_mode (str, optional): An optional configuration for rendirng content to be rendered into repositories.
generate_package_metadata (bool, optional): Whether to generate package metedata (requires @rules_license)

Returns:
string: A json encoded struct to match the Rust `config::RenderConfig` struct
Expand All @@ -143,6 +145,7 @@ def render_config(
platforms_template = platforms_template,
regen_command = regen_command,
vendor_mode = vendor_mode,
generate_package_metadata = generate_package_metadata,
))

def _crate_id(name, version):
Expand Down
9 changes: 9 additions & 0 deletions crate_universe/src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,10 @@ pub struct RenderConfig {

/// An optional configuration for rendering content to be rendered into repositories.
pub vendor_mode: Option<VendorMode>,

/// Whether to generate package metadata
#[serde(default = "default_generate_package_metadata")]
pub generate_package_metadata: bool,
}

// Default is manually implemented so that the default values match the default
Expand All @@ -111,6 +115,7 @@ impl Default for RenderConfig {
platforms_template: default_platforms_template(),
regen_command: String::default(),
vendor_mode: Option::default(),
generate_package_metadata: default_generate_package_metadata(),
}
}
}
Expand Down Expand Up @@ -139,6 +144,10 @@ fn default_generate_target_compatible_with() -> bool {
true
}

fn default_generate_package_metadata() -> bool {
false
}

/// A representation of some Git identifier used to represent the "revision" or "pin" of a checkout.
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, PartialOrd, Ord)]
pub enum Commitish {
Expand Down
Loading