Subject: Re: [boost] [modular-boost] Questions about development procedures and more
From: Daniel James (dnljms_at_[hidden])
Date: 2014-02-02 05:56:10
On 2 February 2014 09:30, Gennadiy Rozental <rogeeff_at_[hidden]> wrote:
> Trying to start using modular boost (and git for that matter). I have
> several questions about this. These are in no particular order:
It's best to ask unrelated questions in separate mails, and not to
combine so many questions in a single mail. It makes it easier to
track what has and hasn't been answered, and makes it less work for
someone to answer. It will also be easier to find answers in the
> 1. Why does ./b2 headers on windows creates hardlink for each file instead
> of directories? The process takes forever.
That's a question for the build list.
> 2. What the story about cmake based build? What state is it in? Can I try it
> now? How? Can I help with anything to push this further? I got a bit of
> experience with cmake since last time I see n this discussed.
If you're lucky a cmake person might read this, but there would be
more chance if you sent an email with 'cmake' in the title.
> 5. What the status of testing of the new tree? How is it setup? Where can I
> read it? Specifically I am interested in what being tested against what.
It's pretty much as it was before. But with 'develop' and 'master'
instead of 'trunk' and 'branches/release'.
> 4. First command to switch to develop branch produces warning(?)
> ...\modular-boost\libs\test>git checkout develop
> Previous HEAD position was 954d3ab... Thread: merge -tools dir
"tools dir missing" is the latest commit on the master branch, not a warning.
> 5. After I switched to development branch headers directory still "points
> to" master branch files. Actually I am not sure what it points to now since
> master files are nowhere anymore. How should I switch headers?
It should happen automatically when you build, but won't if the
inclusion of headers is obscured by macros (i.e. #include MACRO). You
can run "b2 headers" again. If we were using soft links we wouldn't
have this problem, I thought there was consensus to do that, but no
one seems to be doing it.
> 6. What the corresponding action with git, which does what svn up from root
> of tree did before? What I am after is comamnd(s) which updates other libs,
> but keep my lib as is (maybe merge changes from other developers). If "git
> submodule update" is one of these commands, why does it takes forever on
> fresh just cloned boost tree?
You can configure git to leave your module alone when updating, see
the 'gitmodules' man page. Something like:
git config submodule.test.update none
I haven't tested that, so it might be wrong. I'm finding it easy
enough to check out the branch I want every time.
'git submodule update' takes a long time as a fresh tree because it
has to clone over a 100 modules.
> 7. How do I run the test which will check how my changes affect other
> libraries (their master branch at least). Should I just run the test from
> root in my local copy? How do I test against develop branch of other libs
> and develop branch of other libs against me?
Let the automated testing do it for you? If I wanted to do this
locally, I'd just use a separate clone of master and develop. I think
you can use 'git clone --recursive -b develop url' to get a develop
> 8. Dependency specification. This actually a big question, which can be
> split into several:
> 8.1 Is there place where I can see "released versions" for particular
> 8.2. Is there way to tell which other boost submodules I depend on?
> 8.3 Can I specify specific release version I want to depend on (per
You can do this manually, or with a bit of scripting.
> 8.4 Can I somehow only checkout/pull the submodules I depend on?
By combing the last two answers.
> 8.5 Can I check which submodules depend on me and checkout only those?
I think you'll need to work that out for yourself.
> 8.6 Is there place where I can see which submodule version constitute
> specific boost release?
> 9. One of the wiki pages refers to "git submodule summary" command. I do not
> understand what this command supposed to do.
I can't really answer this without a link to the page.
> 10. How do I create private branch? IOW branch which is not publicized on
> github, but one I can share with the team?
You need to have a private repo somewhere. This costs money with
github, but you can create one for free with bitbucket. I think there
are other providers which offer them as well (I saw an advert
somewhere, but I forget the details).
> 11. This page is not clear to me:
> What do I need to do to merge my development branch into master, given that
> it is significantly differ now (at the time of svn->git conversion)?
Creating a merge base for test isn't really practical as the two
branches are completely different. You'll just need to manage the
branches manually until you're reading to release the new version.
Either that, or you could create a new branch for the new version, and
make develop identical to master.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk