One more check/update/cool thing:  even with the restructured repos we can
fairly easily build older versions just by flattening them, at least for
`0.8.0-incubating`.


https://github.com/ahgittin/brooklyn-docs/blob/submodules/guide/dev/code/index.md#history-tags-and-workflow

Best
Alex




On 28 January 2016 at 18:17, Alex Heneveld <[email protected]>
wrote:

> I've fixed the problems Aled observed with the `all.sh` script and the
> problem with previous branches.
>
> I've also added PR's which:
> * set up submodules: https://github.com/ahgittin/brooklyn/pull/5
> * add docs for using multi-repos and submodules
>
> Key things:
> * the submodules are there, and work well (provided you read about it) --
> but they don't get in the way if you don't want to use them
> * the docs also describe an easy way to move changes made against
> incubator-brooklyn (you lose the history but `git diff` then `patch -p1`
> does what I'd hoped; that's how I made these PR's!  dogfooding FTW!)
>
> Obviously these are test PR's as we'll be migrating from incubator again
> on Saturday (assuming all goes well).  I wanted to test the processes and
> the submodules, and have docs ready for after the merge.  I think it's
> going to be relatively smooth from here ... famous last words.
>
> Please let me know how they work for you -- or if you object to a Saturday
> migration for any reason!
>
> Best
> Alex
>
>
>
> On 28 January 2016 at 12:23, Alex Heneveld <
> [email protected]> wrote:
>
>>
>> Thanks Aled.
>>
>> > branches="0.4.0 0.5.0 0.6.0 0.7.0-incubating 0.8.0-incubating"
>> > I suggest adding 0.8.x.
>>
>> 0.8.x has the old structure so it will be hard to work with here, and
>> unless we release an 0.8.1 it will be noise.  I'm expecting instead we can
>> get an 0.9.0 out soon.  The other repos also have the same problem of the
>> old structure, split among the repos. Plus another problem I've noticed
>> that the branches didn't populate correctly.  (I'll fix that!)
>>
>> We can add new branches if we decide we do want 0.8.x or 0.8.1.
>>
>> > I'm also interested in whether two runs of all.sh will give identical
>> git sha1 commit ids for each new repo.
>>
>> It doesn't.  We considered amending the git commit *messages* to refer to
>> the original ID but decided against it as it is easy enough to correlate
>> them based on date, sequence, content, and author+committer, all of which
>> are preserved.  I don't think preserving the commit ID will help any
>> further with provenance.
>>
>> > The all.sh is running in the background - I'll report on how that does.
>>
>> The scripts are throwaway -- sorry for the glitches though -- so no need
>> for others to go through the pain.  I'm more interested in whether the new
>> repos look as expected.
>>
>> Best
>> Alex
>>
>>
>>
>> On 28/01/2016 11:53, Aled Sage wrote:
>>
>>> Thanks Alex, sounds great.
>>>
>>> I'm running through the brooklyn-repo-split release script locally now,
>>> to reproduce.
>>>
>>> A few initial comments...
>>>
>>> ---
>>> https://github.com/ahgittin/brooklyn-repo-split/blob/master/README.md
>>> needs updated.
>>>
>>> It says that "Steps 1 and 2 are done and checked in as reorg* branches
>>> at https://github.com/ahgittin/incubator-brooklyn";. There is no
>>> "reorg*" branch in ahgittin/incubator-brooklyn. I believe the results of
>>> 1-rearrange-incubator is now in github.com/apache/incubator-brooklyn,
>>> and that step 2 needs to be run (which matches all.sh).
>>>
>>> ---
>>> all.sh fails because reorg branch does not exist.
>>>
>>> Suggest changing:
>>>
>>>    ( cd incubator-brooklyn && git pull && git branch -D reorg && git
>>>    checkout -b reorg )
>>>
>>> to:
>>>
>>>    ( cd incubator-brooklyn && git pull && ( git branch -D reorg || true
>>>    ) && git checkout -b reorg )
>>>
>>> ---
>>> It would be good to document how to run it a bit more (in README.md).
>>> For example:
>>>
>>> In env.sh, set REPO_ORG to your own github id.
>>>
>>> In the root directory of brooklyn-repo-split, run:
>>>     git clone https://github.com/apache/incubator-brooklyn.git
>>>
>>> And then run `nohup all.sh > all.out 2>&1 &`
>>>
>>> ---
>>> Looking at https://github.com/apache/incubator-brooklyn/branches/all,
>>> there are branches not mentioned in env.sh branches:
>>>
>>>     branches="0.4.0 0.5.0 0.6.0 0.7.0-incubating 0.8.0-incubating"
>>>
>>> I suggest adding 0.8.x.
>>>
>>> Any objections from the community of deleting the others (I'm in
>>> agreement)? We'll assume lazy consensus on that one.
>>>
>>> ---
>>> The all.sh is running in the background - I'll report on how that does.
>>>
>>> ---
>>> I'm also interested in whether two runs of all.sh will give identical
>>> git sha1 commit ids for each new repo.
>>>
>>> Assuming it does, that is a great way to prove the providence of the new
>>> repos if we are every legally asked in the future (i.e. it is entirely
>>> deterministically reproducible, so cannot have included any manual
>>> modifications where additional code was inserted/removed).
>>>
>>> Aled
>>>
>>>
>>> On 28/01/2016 10:09, Alex Heneveld wrote:
>>>
>>>>
>>>> Brooklyners-
>>>>
>>>> TL;DR: *switch to new repos at the weekend, incubator commits cut-off
>>>> proposed for Sat 10am UK*
>>>>
>>>> The new project structure seems to be working well and I think it's
>>>> time to move to the new repos apache/brooklyn and apache/brooklyn-*, and
>>>> then retire the incubator project.
>>>>
>>>> I've built on Richard's separation scripts, with the current version at
>>>> https://github.com/ahgittin/brooklyn-repo-split, and it also seems to
>>>> be working very well.  You can inspect the resulting projects at these
>>>> URL's:
>>>>
>>>>     https://github.com/ahgittin/brooklyn
>>>>     https://github.com/ahgittin/brooklyn-dist
>>>>     https://github.com/ahgittin/brooklyn-docs
>>>>     https://github.com/ahgittin/brooklyn-library
>>>>     https://github.com/ahgittin/brooklyn-server
>>>>     https://github.com/ahgittin/brooklyn-ui
>>>>
>>>> You can try them for yourself e.g. using:
>>>>
>>>>     for x in brooklyn{,-{dist,docs,library,server,ui}} ; do
>>>>         git clone [email protected]:ahgittin/$x.git
>>>>     done
>>>>     cd brooklyn/
>>>>     mvn clean install
>>>>
>>>> I have done a lot of checking that these are all healthy -- see below
>>>> -- but I'd value some others also casting their eyes over the projects.  If
>>>> there are other checks I should do when I run them again please let me 
>>>> know.
>>>>
>>>> If this looks good I propose we wait until the weekend to cut over. If
>>>> there is no objection we would STOP committing to the incubator project at
>>>> Saturday 10am UK, and I will re-run the scripts, test, and push to apache/
>>>> repos instead of ahgittin.
>>>>
>>>> Meanwhile I have some notes on migrating incubator PR's and branches to
>>>> the new repos and on using subprojects which I will complete and circulate.
>>>>
>>>> Best
>>>> Alex
>>>>
>>>>
>>>> CHECKS I'VE DONE
>>>>
>>>> A) The command:
>>>>
>>>>     git log --oneline --follow `find . -name AbstractEntity.java`
>>>>
>>>> gives the same output modulo commit ID's and excluding the additional
>>>> directory promotion commit in the new repo, 415 commits total
>>>>
>>>> B) `find .` gives the same output, modulo items in the root and the
>>>> .git/ dirs (actual command: `find -E . \! -regex '.*/\.git(/.*)?' \! -regex
>>>> '\./[[:alnum:]\.]+'`)
>>>>
>>>> C) Both builds work and the built artifacts are identical except for
>>>> MANIFEST.MF (Implementation-SHA-1 and Bnd-LastModified) and pom.properties
>>>> (timestamp)
>>>>
>>>> D) Size of project is the same and history is substantially smaller:
>>>>
>>>> incubator:
>>>>
>>>> 262M    ./.git
>>>>  44K    ./brooklyn
>>>> 652K    ./brooklyn-dist
>>>>  16M    ./brooklyn-docs
>>>> 9.6M    ./brooklyn-library
>>>>  19M    ./brooklyn-server
>>>> 5.1M    ./brooklyn-ui
>>>> 312M    .
>>>> of which 262M is */.git, 50M current
>>>>
>>>> new:
>>>>
>>>> 180K    ./brooklyn/.git
>>>> 224K    ./brooklyn
>>>> 812K    ./brooklyn-dist/.git
>>>> 1.4M    ./brooklyn-dist
>>>>  20M    ./brooklyn-docs/.git
>>>>  36M    ./brooklyn-docs
>>>>  15M    ./brooklyn-library/.git
>>>>  24M    ./brooklyn-library
>>>>  36M    ./brooklyn-server/.git
>>>>  55M    ./brooklyn-server
>>>> 7.6M    ./brooklyn-ui/.git
>>>>  13M    ./brooklyn-ui
>>>> 129M    .
>>>> of which 79M is */.git, 50M current
>>>>
>>>> The size improvement comes of course from big WAR artifacts in ancient
>>>> history which aren't being copied across.
>>>>
>>>> The remaining size is mostly accounted for by:
>>>> * screenshots in docs
>>>> * some big JS in library/sandbox history and in ui (a bit of a shame as
>>>> when we move to bower/grunt these deps won't be part of the repo, but a few
>>>> megs isn't really that much)
>>>> * lots of files in server and its history (none esp big, nearly all
>>>> needed)
>>>>
>>>> END
>>>>
>>>>
>>>>
>>>
>>>
>>
>

Reply via email to