[dev] [commits] Horde-Hatchery branch master updated. d3fcd5cdd11ada51d44c03fccd529ba9beed543d
Jan Schneider
jan at horde.org
Wed Jan 6 10:31:45 UTC 2010
Zitat von Michael M Slusarz <slusarz at horde.org>:
> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Michael M Slusarz <slusarz at horde.org>:
>>
>>> Jumping in late here...
>>>
>>> Quoting Chuck Hagenbuch <chuck at horde.org>:
>>>
>>> Most important, both the horde core and framework need to live in
>>> the same repo. When fixing bugs in an application, often the fix
>>> is actually in a framework lib, or a horde core component, or a
>>> combo of all three locations. This commit message should be a
>>> single standalone item so we can point to a single commit message
>>> as solving a single bug report.
>>
>> That's a good point, and it's actually also a reason to not have a
>> separate hatchery at all. If we only had one single repository for
>> all application and framework code, we don't have any problems with
>> commits spanning two repositories. And there shouldn't be a problem
>> with merging hatchery to horde-git either.
>> Did I really say that? :) I still would prefer having one repo per
>> application, but I'm giving in that this really isn't feasible with
>> Git atm.
>
> Quoting Jan Schneider <jan at horde.org>:
>
>>> Most important, both the horde core and framework need to live in
>>> the same repo. When fixing bugs in an application, often the fix
>>> is actually in a framework lib, or a horde core component, or a
>>> combo of all three locations. This commit message should be a
>>> single standalone item so we can point to a single commit message
>>> as solving a single bug report.
>>
>> That's a good point, and it's actually also a reason to not have a
>> separate hatchery at all. If we only had one single repository for
>> all application and framework code, we don't have any problems with
>> commits spanning two repositories. And there shouldn't be a problem
>> with merging hatchery to horde-git either.
>> Did I really say that? :) I still would prefer having one repo per
>> application, but I'm giving in that this really isn't feasible with
>> Git atm.
>
> I've been playing around with this, and here's what I've come up
> with to combine horde-git and horde-hatchery:
>
> 1. Go to horde-git:master. Make sure it is updated.
> 2. Do 'git checkout -b tmp 5d259f069ca8c31700d5431a595d2e3b5d961ea9'
> This creates a temporary branch and sets HEAD to right before IMP
> was imported.
> 3. Do 'git fetch <path to horde-hatchery> master:hatchery' <path to
> horde-hatchery> can be the filepath to the hatchery repo on the
> local machine. This pulls in all of hatchery's history to horde-git.
> 4. Do 'git merge <path to horde-hatchery>' There will be at least
> one conflict that needs to be resolved (.gitignore).
> 5. Do 'git merge master'. This should merge all changes done to
> horde-git after 12/23/2009 (when IMP was added). There will be at
> least two conflicts that need to be resolved
> (.gitattributes/.gitignore)
> 6. Now 'tmp' contains the full, combined history of horde-git and
> horde-hatchery.
Great, (with a Patrick Stewart voice) make it so ;-) Though we might
want to do this after we agreed whether we want a single repository
for all framework and application code.
>>> I've discussed the issue with Mike R. on IRC, but I think that due
>>> to technical limitations the idea of being able to check out code
>>> from git and directly serve it via the web is dead. Instead, you
>>> have to make one of two choices:
>>>
>>> 1. If your source checkout lives in a non web-accessible location
>>> (probably a good idea from a security standpoint), or you want to
>>> serve applications below the horde base, the
>>> framework/bin/install_dev script is available to do this. It has
>>> the disadvantage of requiring it to be rerun if the base horde
>>> structure changes at all (e.g. a scriptname changes), but that
>>> shouldn't happen all that often.
>>
>> There's also the option to introduce package.xml files for
>> applications rather now than later. It's the mid-term goal anyway
>> to install Horde apps through PEAR/Pyrus. That would also help with
>> upgrading, dependencies, etc.
>> If we did this, we could also resurrect horde-fw-symlink for developers.
>
> This sounds like a worthy goal.
>
>>> 2. If you want to directly serve a source repo, you have to be
>>> resigned to the fact that applications won't live under 'horde'
>>> anymore. But configuring this setup is easy enough - you just
>>> need to alter the locations in horde/config/registry.php.
>>
>> Is it really that easy? Unfortunately there all still those
>> define('HORDE_BASE') calls on the code.
>
> This should not be an issue. If an application does not live under
> the horde/ directory, HORDE_BASE needs to be defined in
> config/horde.local.php. But that's it.
Makes sense.
>> I see the main reasons for having all horde apps under the horde/
>> directory being the groupware bundles and maintainability. We can't
>> provide groupware tarballs that extract to multiple directories and
>> files in the current directory, so we need a common parent
>> directory anyway. And for administrators it's helpful to have a
>> single horde directory to backup, move around and rename for
>> testing, upgrading, staging etc.
>
> That's perfectly fine. We can package the groupware and/or apps
> however we want to.
>
>> OTOH separate directories for horde and the apps better map to the
>> repository layout, simplify scripts like make-release.php and
>> translation.php (though maybe not, since we still need to merge
>> horde and application translations) and is more compatible with
>> distribution packages.
>>
>> Any ideas how to solve the cons of one solution or the other? Are
>> there more pros and cons that I am missing? Any other opinions
>> about this? I think we should decide this pretty quick.
>
> I need to think about this a bit more. Does PEAR/Pyrus provide any
> help in this regard (e.g. once horde is installed, can PEAR/Pyrus
> automatically determine/generate the necessary file path
> configuration)?
PEAR has support for installation scripts, so you can actually do
whatever you want. For this purpose, a simple replacement task would
do it though.
Jan.
--
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/
More information about the dev
mailing list