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 >>> >>> >>> >> >> >
