(ensure-no-cycles! packages)
Same as k16.kmono.core.graph/find-cycles
but will throw an exception if any
cycles are found.
Same as `k16.kmono.core.graph/find-cycles` but will throw an exception if any cycles are found.
(filter-by filter-fn packages)
(filter-by filter-fn {:keys [include-dependents]} packages)
Filter a given map of packages
by those that the given filter-fn
predicate returns true
.
If the :include-dependents
property is true
then all dependent packages of
the retained packages will also be kept.
This function will update the :depends-on
and :dependent
keys of each
retained package to include only other packages that still remain.
It's generally recommended to use this function instead of writing your own
package filtering. If you need to write your own then you should also make
sure to keep the :depends-on
and :dependents
updated.
Filter a given map of `packages` by those that the given `filter-fn` predicate returns `true`. If the `:include-dependents` property is `true` then all dependent packages of the retained packages will also be kept. This function will update the `:depends-on` and `:dependent` keys of each retained package to include only other packages that still remain. It's generally recommended to use this function instead of writing your own package filtering. If you need to write your own then you should also make sure to keep the `:depends-on` and `:dependents` updated.
(find-cycles packages)
Try find cyclic dependencies between packages in a given packages
map
Try find cyclic dependencies between packages in a given `packages` map
(parallel-topo-sort packages)
Sort a give packages
map by the order in which the packages therein depend
on each other.
As an example, if I have 3 packages a
, b
, c
and b
depends on a
then:
(parallel-topo-sort {a {} b {} c {}})
;; => [[a c] [b]]
This is generally used to calculate the execution order of packages when trying to run commands in subpackages or build/release packages in the correct order.
Sort a give `packages` map by the order in which the packages therein depend on each other. As an example, if I have 3 packages `a`, `b`, `c` and `b` depends on `a` then: ```clojure (parallel-topo-sort {a {} b {} c {}}) ;; => [[a c] [b]] ``` This is generally used to calculate the execution order of packages when trying to run commands in subpackages or build/release packages in the correct order.
(query-dependents packages pkg-name)
Find all transitive dependent packages of pkg-name
within the give
packages
map.
Find all transitive dependent packages of `pkg-name` within the give `packages` map.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close