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