--- layout: post author: Nat! title: open_comments: true date: 2017-01-13 12:07 --- # mulle-bootstrap 3.0 What I want is to share fetched repositories and builds, especially dependencies and addictions with multiple repositories. mulle-bootstrap 2.0 does this already, though it's not convenient. ### How does 2.0 do it ? Just create a new .bootstrap in top level and build constituents. The merge algorithm uniques fetches and builds. ### Why is it not convenient ? 1. repositories are hidden inside .repos 2. repositories have to be part of .bootstrap/repositories of master ### How it would be ideal for me ```console $ mulle-bootstrap seize /Volumes/Source/srcM/slave # # link up a slave to a master, updating .bootstrap.local/repositories # bail if we are not a master. How do we know we are a master ? It has # no .bootstrap just a .bootstrap.local # $ mulle-bootstrap fetch # defer to master... master will fetch my embedded repositories and # my dependencies and addictions $ mulle-bootstrap status This is a minion to master /Volumes/Source/srcM Master needs to a rebuild ``` ``` $ CFLAGS=`mulle-bootstrap config --cflags` $ CXXLAGS=`mulle-bootstrap config --cxxflags` $ LDFLAGS=`mulle-bootstrap config --ldflags` ``` ## Problems * Need an unseize command * Need an info command to show if linked or not * Rememeber the golden rule, nothing gets produced "outside" the project ## Thoughts * We still need a .repos folder inside a local mulle-bootstrap for embedded repositories. but it is managed by the master * Call it .bootstrap.repos ? Nah. ## Solutions ### .bootstrap.local/minion * minion defers to parent to build * parent merges contents of minion (how is this different from .repos) * parent detects presence of minion and adds it to .repos with a symlink. Then marks it with .bootstrap.local minion ### .repos becomes . * problems adding repositories to .gitignore * problems rm -rf .repos ### .repos/<repos> get symlinked to . * problems removing symlinks