Skip to content

Commit 5a5ef20

Browse files
committed
fix: propagate version attr in pkl_package provider
Ensure that a version passed as an attribute to `pkl_package` is correctly propagated through the provider. Previously, the pkl_package rule would propagate the initial version resolved at repo_rule fetching time, which may not match the one evaluated at build time.
1 parent 613ab28 commit 5a5ef20

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

pkl/private/pkl_package.bzl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def _pkl_package_impl(ctx):
2323
executable = pkl_toolchain.cli[DefaultInfo].files_to_run.executable
2424

2525
project_metadata_info = ctx.attr.project[PklMetadataInfo]
26+
pkl_project_base_uri = project_metadata_info.base_uri
2627
pkl_project_file = project_metadata_info.pkl_project_file
2728
pkl_project_deps = project_metadata_info.pkl_project_deps
2829
pkl_project_name = project_metadata_info.pkl_project_name
@@ -33,6 +34,15 @@ def _pkl_package_impl(ctx):
3334
if ctx.attr.version:
3435
pkl_project_version = ctx.attr.version
3536
extra_flags.append("--env-var=PKL_PACKAGE_VERSION={}".format(ctx.attr.version))
37+
# The provider we pass along also needs to have the updated version.
38+
# TODO: This API is quite awkward; change it to (only) evaluate name/version/base_uri in pkl_package instead.
39+
project_metadata_info = PklMetadataInfo(
40+
base_uri = pkl_project_base_uri,
41+
pkl_project_file = pkl_project_file,
42+
pkl_project_deps = pkl_project_deps,
43+
pkl_project_name = pkl_project_name,
44+
pkl_project_version = pkl_project_version,
45+
)
3646

3747
artifact_prefix = "{name}@{version}".format(name = pkl_project_name, version = pkl_project_version)
3848

0 commit comments

Comments
 (0)