[dev] Git repo splitting
Michael M Slusarz
slusarz at horde.org
Fri Aug 15 05:19:25 UTC 2014
Now that the x.2 releases have been made, and several months of
bugfixes have occurred, we need to turn our attention to starting to
plan the git repo split.
The straw that broke the camels back (or at least my back) is that as
of right now Travis is completely unusable - at least from a practical
perspective. You make a small change in Horde_Foo, and Travis returns
an error because of a completely unrelated SQL error in Horde_Bar.
This error may very well be tied into the fact that we are running
such a monster PHPUnit test that is stressing their setup too badly.
(Another issue: I commit something that breaks Horde_Foo. Other devs
should not have to worry about this broken behavior if they later
commit something to Horde_Bar).
So this is brainstorming on the proper path to do this.
I have (mostly) finished the script necessary to do the actual
splitting of any given repository. It correctly filters the repo and
transfers all tags - and it rewrites the tags to the form used by
Composer. Currently it only transfers the master branch. Need to add
support so that applications automatically keep FRAMEWORK_* branches
also. And add option to allow additional branches to be kept since we
have a few of those lying around.
I'm really not too concerned about developer checkout. We can
worry/talk about things like git subtree later IMHO. The most
important tool will be something to update all git repos at once, but
this is something that can be written in 5 minutes. And even that is
not critical.
I'm picturing a base "horde-development" git project that will host
scripts/tools. We just keep a static file of libraries/apps in there.
Updating horde-components is more important. Shouldn't be any
problems regarding packaging layout, since it already works on a
per-directory basis. The composer module will need to be altered
though to change composer install location from pear.horde.org to our
packagist install location.
E-mails are probably the biggest change. This kind of hinges on
whether we want to use GitHub as our official repository. If so, we
push to github - you can set up hooks there to trigger remote events
on a push action. So we would still need to run a mail server to send
these messages. But I'm probably a +1 on eliminating the need for our
"master" repository to run on dev.horde.org - although I'm not going
to fight too hard if others disagree on this point.
Same thing with GitHub's bug reporting. As someone who has zero time
or interest to contribute to Whups, I have no problems using github's
built in reporting. In my view, that is just one less thing to have
to worry about from an admin perspective. Again - I'm not going to
fight if others disagree and/or have a more personal stake in
continuing to use Whups.
Testing setups will probably need to change a bit. Each repo is going
to need their own travis config file. Probably want to switch over to
composer to bring in the dependencies for each individual library.
michael
___________________________________
Michael Slusarz [slusarz at horde.org]
More information about the dev
mailing list