hydra.build.publishsets module

Publish-set dependency-closure guard and leaves-first ordering, shared by the publish drivers.

hydra.build.publishsets.is_publish_set_closed(packages: Sequence[Package], publish_set: Sequence[PackageName], externally_satisfied: Sequence[PackageName]) bool

Whether the publish set is dependency-closed given the externally-satisfied set.

hydra.build.publishsets.package_dep_names(pkg: Package) Sequence[PackageName]

The names of a package’s direct dependencies.

hydra.build.publishsets.publish_set_topo_order(packages: Sequence[Package], publish_set: Sequence[PackageName]) Sequence[PackageName]

The publish set in leaves-first topological order.

hydra.build.publishsets.requires_coders(pkg: PackageName) bool

Whether a package needs coders loaded during JSON->target transform (all but the baseline packages).

hydra.build.publishsets.reverse_dep_closure(packages: Sequence[Package], root: PackageName) Sequence[PackageName]

Every package that transitively depends on the root (including the root), sorted.

hydra.build.publishsets.stranded_deps(packages: Sequence[Package], publish_set: Sequence[PackageName], externally_satisfied: Sequence[PackageName]) Sequence[tuple[PackageName, PackageName]]

The (member, missingDep) pairs stranded by publishing the set (empty = closed).