[dev] bootstrapping a new horde library pear xml

Jan Schneider jan at horde.org
Fri Feb 16 13:58:38 UTC 2018


Zitat von Ralf Lang <lang at b1-systems.de>:

> Hi all,
>
> we are currently factoring out some bundled stuff into separate
> libraries for re-use and code cleanliness. I wanted to use the
> components helper app to bootstrap a new library, but I didn't get it
> right first. I still feel I did not do it right, though I have some
> autogenerated xml now.
>
>
> I had /doc, /lib and /test paths, each having its /Horde/$Lib/ subpaths.
>
> I created a minimalistic .horde.yml and .gitignore
>
> I created a bogus CHANGES file
>
> ------------
> v1.0.0alpha1
> ------------
>
> First alpha release for Horde 5.
>
> I created a stub changelog.yml file
>
> ---
> 1.0.0alpha1:
>   api: 1.0.0
>   state:
>     release: alpha
>     api: alpha
>   date: 2018-02-08
>   license:
>     identifier: LGPL-2.1
>     uri: http://www.horde.org/licenses/lgpl21
>   notes:
>     First alpha release for Horde 5.
>
> I ran php -d
> include_path="/srv/www/vhosts.d/horde-dev2018.ralf-lang.de/libs/"
> ../components/bin/horde-components update --regenerate
>
> horde-components: error: You are neither in a component directory nor
> specified it as the first argument!
>
> I added a barebone package.xml (see attached) and ran again. That did
> the trick. The script now updates with all existing files and I can
> generate a valid pear package.
>
> maintaina:/srv/git/horde-dev2018/Query # php -d
> include_path="/srv/www/vhosts.d/horde-dev2018.ralf-lang.de/libs/:/usr/share/php5/PEAR"
>  ../components/bin/horde-components snapshot
> [   OK   ] Generated snapshot
>            /srv/git/horde-dev2018/Query/Horde_Query-1.0.0dev201802111949.tgz
>
> I wonder if I can strip any more data without breaking it.
> The .horde.yml file seems to be the primary source for metadata, the
> file list is autogenerated.
>
> Is there a documented process I should follow?
> I'd like to add some boilerplate to the git-tools thing once I
> understand what is required. I already moved the application skeleton
> script into git-tools infrastructure.

I don't think I have tested boilerplating a component after  
refactoring horde-components (which still isn't finished btw). It may  
very well be broken.

I think the best approach would be to introduce a "horde-components  
init" command that creates all necessary files for a  
library/application to be manageable through horde-components.

As for your original question: .horde.yml and changelog.yml should in  
the long term be the master information files which generate all other  
files. Anything else should be considered a bug.

-- 
Jan Schneider
The Horde Project
https://www.horde.org/



More information about the dev mailing list