Re: pear Jenkins

[email protected] ("Daniel O'Connor") Wed, 28 Mar 2012 16:36:01 +1030
Newsgroups php.pear.qa
Message-ID <CAJsZyFCJ86iMkKYbN6cN8=G+83HzRtMu1ETn=jjtf3JS_=_qyg@mail.gmail.com>
Hi Jan,

Some of the failing PEAR jobs on the Jenkins seem to suffer from
> minute bugs that may be easy to fix.
>
> Undoubtedly the case. What you'll often see is people like myself doing
things from approximately 10,000ft.



> Like HTML_Entities[1] or Auth seems to fail to include main workspace
> directory in the include_path.
> or are the errors caused by file not being in places described by the
> package XML?
>
> To give you a bit of history - PEAR lived in the php.net CVS site for
some time.
Back in 2003, you'd edit a package.xml file and set a baseinstall directory
- unit tests weren't really common. If you installed the package, then you
could run the tests - so it mostly sort of worked.
Also, if you made the directory structure wrongly in CVS; there wasn't
great support for copy/preserve history - all of a sudden you lose all of
the benefits of version control if you go around changing things; so it's
better not to.

At a later point, we shifted to SVN. It was trivial to rename things, but
also Zend Framework and others had appeared - developers started to leave
the project.
You can see this on http://www.ohloh.net/p/pear where 'cvs2svn' leaves the
project.

Our first CI attempt was done then - a quick script to check out all trunk
packages and run either
$ phpunit tests/AllTests.php
or
$ pear run-tests -r tests/

We tried a few other things (cruise control); and have landed on jenkins as
the way we manage things.

A lot of the tests are set up via scripts. We've got 400+ packages, so
adding them all to CI is something best automated; but as you can see you
lose a bit of the human touch.



Is there a way I could help? Is "fork and pull" on github the
> preferred way of help/discussion?
>
Absolutely, if the package is on github just a quick

$ pear install PEAR_PackageFileManager_Cli
$
$ git clone ...
$ cd Foo_Bar
$ git mv Bar.php Foo/
$ git mv Bar Foo/
# Regenerate package
$ pfm
# Run tests - either:
$ phpunit tests/
... or
$ ant

$ git commit -m "Wheee"
$ git push


+ pull request is much appreciated.

You will also find though a number of packages that still live in SVN.



> What help would be most appreciated?
> Can the Jenkins server have a tab just with failing Jobs like "All
> Failed" on http://ci.jenkins-ci.org/ ?
>
> That's provided by the
https://wiki.jenkins-ci.org/display/JENKINS/View+Job+Filters plugin, which
I don't yet have installed. Will have a look.


> Thanks
> Jan
>
>
> [1]
> +Fatal error: require_once(): Failed opening required
> 'HTML/Entities.php' (include_path='.:/usr/local/lib/php/pear') in
> /var/lib/jenkins/workspace/HTML_Entities/tests/html_entities1.php on
> line 2
>