Open jgranstrom opened 6 months ago
It's the same in the examples in this repo:
pants-backends main
❯ pants dependencies //examples/oci:oci
examples/oci:python3-d11#latest
❯ pants peek //examples/oci:oci
[
{
"address": "examples/oci:oci",
"target_type": "oci_image_build",
"args": null,
"base": [
":python3-d11#latest"
],
"commands": null,
"dependencies": [
"examples/oci:python3-d11#latest"
],
"description": null,
"entrypoint": null,
"env": null,
"layers_raw": null,
"output_path": null,
"packages_raw": [
":example"
],
"repository": "harbor.sbg.dev/test/pants-plugin-oci-example",
"tag": "latest",
"tags": null,
"terminal": false
}
]
How does it know when it needs to rebuild the image when the pex is rebuilt? Do you pick that out manually, or just run everything?
Hmm, interesting! I think this is mostly a display issue, will have to look more closely. Pants makes some assumptions about fields being (somewhat) unique -- in particular, that there is only one Dependencies field etc. Some of my targets have two, because I think the UX of a separate field for the "base" image is preferrable. I've not noticed any adverse effects in practice, but I hadn't considered this aspect.
Hmm, interesting! I think this is mostly a display issue, will have to look more closely. Pants makes some assumptions about fields being (somewhat) unique -- in particular, that there is only one Dependencies field etc. Some of my targets have two, because I think the UX of a separate field for the "base" image is preferrable. I've not noticed any adverse effects in practice, but I hadn't considered this aspect.
FYI I worked around this for my case by using oci_layer
, putting the packages in there and adding that instead to oci_image_build
, then everything behaves as expected with dependencies.
oci_image_build
targets do not include their input/packages targets as dependencies.Example:
They are only visible in
packages_raw
. Only base images are part of dependencies.Is this intended? It makes it difficult for anything targeting the
oci_image
to know when it needs to run.