Skip to content

Bundle Specification Needs Required Packages #6959

Closed

Description

@ericspod

Is your feature request related to a problem? Please describe.
Bundles can be specified to depend on optional packages through the optional_packages_version in metadata.json. Some bundles may require certain packages so a required_packages_version may be needed, or a change in name for optional_packages_version.

Describe the solution you'd like
Some way of specifying what packages other Pytorch, Numpy, and MONAI are needed by a bundle.

Describe alternatives you've considered
I've used optional_packages_version to specify needed packages but this doesn't seem adequate.

Activity

  1. moved this to Bundle Todo in MONAI v1.3on Sep 7, 2023
  2. ericspod commented on Sep 7, 2023

    @ericspod
    MemberAuthor

    I don't think this is a really high priority item, but we should update the metadata schema some time anyway.

  3. added this to MONAI v1.4 and removed this from MONAI v1.3on Oct 13, 2023
  4. moved this to Todo in MONAI v1.4on Oct 13, 2023
  5. moved this from Todo to No status in MONAI v1.4on Nov 3, 2023
  6. KumoLiu commented on Nov 21, 2023

    @KumoLiu
    Contributor

    Hi @ericspod, for now, if optional_packages_version is in "metadata.json", it will add these packages to requirements.txt. Doesn't this currently meet the request, or do you think it would be better to change the name to required_packages_version?
    https://github.com/Project-MONAI/model-zoo/blob/8845f3a04766e254b156c23fc4d2f91659c056d4/ci/get_bundle_requirements.py#L39

  7. ericspod commented on Nov 21, 2023

    @ericspod
    MemberAuthor

    The issue is that there are required packages that a bundle absolutely needs and packages that would nice to have but not strictly needed. These two aren't differentiated in the json file and I felt there should be, or we change the name to required_packages_version to make it clear these packages are needed and not worry about having things optional.

  8. moved this to In Progress in MONAI v1.4on Nov 23, 2023
  9. self-assigned this
    on Nov 23, 2023
  10. added a commit that references this issue on Nov 23, 2023
    4c0f382
  11. KumoLiu commented on Nov 23, 2023

    @KumoLiu
    Contributor
  12. ericspod commented on Nov 23, 2023

    @ericspod
    MemberAuthor

    Yes we do need a new schema. I wanted to update it to try to take into account non-tensor arguments as well as arbitrary argument names. It currently isn't quite correct without so I need to do some looking into JSON schema definitions and get to that.

  13. KumoLiu commented on Nov 24, 2023

    @KumoLiu
    Contributor

    What non-tensor arguments and arbitrary argument names did you refer to?
    I also considering updating the output definition in the schema. For the raw output of the network, it is possible that there is more than just a single tensor, do you think we need to consider them all? Look like now we are defining the raw output of the network. But sometimes the output can be more complicated(such as detection).
    #6724
    https://github.com/Project-MONAI/model-zoo/blob/f20f894f2c0993c94184c7002529ea303a2f8c74/models/endoscopic_tool_segmentation/configs/metadata.json#L78

  14. ericspod commented on Nov 24, 2023

    @ericspod
    MemberAuthor

    What non-tensor arguments and arbitrary argument names did you refer to?

    Currently the schema allows only tensor arguments to a network's forward pass and we need to take into account other types. The initial design intent was to capture what tensor values are needed for input but to be a complete specification we need to account for other things. For outputs it might be the same thing where we need to account for more than just tensors as output, and different numbers of outputs.

  15. moved this from In Progress to Done in MONAI v1.4on Jul 30, 2024
  16. added a commit that references this issue on Jul 30, 2024
    f1ef3e8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

BundlesAnything related to bundlesenhancementNew feature or request

Type

No type

Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions