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