Skip to content

Commit e2da9db

Browse files
committed
feat: add PubGrub version-constraint solver
Implements Natalie Weizenbaum's PubGrub algorithm (Dart pub, 2018) over semver.h. Given a set of (package, version, dependencies) facts plus root dependencies, the solver picks one version per required package that satisfies every accumulated constraint, or reports that no such assignment exists. Lifecycle follows the value-type idiom used by sbuf: caller-owned header struct, opaque state pointer, init/release pairs. The component manager wires this in through cmd/idf/component/solve.c. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
1 parent eaf23e6 commit e2da9db

5 files changed

Lines changed: 1256 additions & 0 deletions

File tree

Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ LIB_SRCS := \
190190
binary.c \
191191
elf2image.c \
192192
progress.c \
193+
pubgrub.c \
193194
sbuf.c \
194195
semver.c \
195196
slip.c \

0 commit comments

Comments
 (0)