on Fri May 24 2013, Bjørn Roald
On Thu, 2013-05-23 at 23:06 -0700, Dave Abrahams wrote:
on Thu May 23 2013, Bjørn Roald
wrote: Boost.Build would not be the only submodule with dependencies to other submodules, would it...
Yeah, but as Boost.Build is really the *only* client of Boost.Jam, it's hard to justify separating them.
I understand that point of view, but if historic Jam could be used by itself, why not have them as separate modules?
Because it makes everything harder. If the Boost.Build maintainers would prefer to have them separated, we can do that, but I advise against it.
This build --> jam dependency is also gone in current boost,
I don't think so: http://ci.boost.org/svn-trac/browser/trunk/tools/build/v2/engine
I was not aware there is a single line of history here - in case it is it may be worth trying to re-join the histories if that is done by the conversion. but it seems odd to re-introduce tools/jam in tools/build/jam, a new place where it has never been -- and move tools/build to tools/build/build, where it has never been.
You have to let go of the idea of the Boost super-repository having the actual historical paths to anything.
so I don't understand the need to bundle all in one repository. It complicates the conversion and changes file structure in history.
I don't know what you mean by "changes file structure in history" or how you conclude that it complicates the conversion.
Well, are you saying I can check out any boost historic version from http://github.com/boostorg/boost and run the instructions of that release to successfully build?
No. That *will not* be the case. For that, use SVN.
Those instructions will fail as structure of those historic commits are changed beyond moving the headers. The changes in tools/build is a prime example.
It is better to try as far as feasible to make the conversion an accurate reflection of history while getting a sensible set of repositories representing modularized libraries. Build is no a library, and as a tool the modularization is good enough with two historic repositories and a build --> jam dependency in the past. Current build repository is self contained if I understand this correctly.
It's only self-contained because it contains jam in its "engine" directory. If Boost.Jam is going to be there in the present, its revision history should be there in the past, so you can follow it.
so are you are saying you will have some commit the build repository history show how files are moved from tools/build/jam where they never have been to tools/build/build/v2/engine where they never went? Even if you manage to make such a commit, how is that preserving file structure in the history?
I didn't say anything about preserving file structure in the history. What I am saying is that you should be able to follow the changes to any file that is part of Boost.Jam through its history, and if those files are in the Build repository in the present but jump there from a different repository some time in the past, you won't be able to do that.
Agree that this is not smart or needed to be done in the conversion. This step could be done with git mv at a convenient time after the conversion. No real need to do that as part of the conversion - it complicates and obfuscates.
Other build related files are in their respective repositories, this could (or should) also be the case for all top level scripts that is part of boost meta repository.
I don't know what you mean here either. Specifics, please.
Ok, it is just the obvious I guess I am trying to confirm, sorry for not being clear here and having to explain these things you know much better than me - feels very odd. But I will try to explayn what I mean.
There are jam files all over the place -- to find the files that have jam in name. The command
@ find | grep -i jam | grep -v tools/build
does not provide complete list of all build related scripts outside of tools/build, but it will list a lot of build stuff that will not be part of build repository I presume, some of these are in the top level directory
./project-config.jam ./Jamfile.v2 ./Jamroot.jam ./boostcpp.jam
and they may end up staying there, i.e. not become part of any of the new submodules, candidates are :
in addition bootstrap.(sh|bat) are part of the build system. With file structure changes in history for tools/build and tools/jam, these and their past siblings are surly broken.
In addition files in lib/*/build/ directories that belong to the respective lib/* submodules does not go into build repository, right?
Nevertheless I struggle with understanding the intension of some of the entries for the build repository in https://github.com/ryppl/Boost2Git/blob/master/repositories.txt so there may be intention to do more than the current converted repositories reflect and I expect here.
Sorry, I just don't know what to do with this input. I'm a bit overwhelmed with everything going on in my life at the moment, so I apologize. -- Dave Abrahams