Vladimir Ivanov wrote:
> The more I go further with build&testing infrastructure and think about it
> the more the following overall picture is drawing in my mind.
> Let me share it to see the whole picture and what I see should be next in
> build and testing infrastructure:
> 
> Goal: Harmony quality
> Objectives:
>    - Set-up regular building & build publishing process

Yep

>    - Set-up testing process, which:
>        - Provides code integrity (Harmony can be built at each moment of
> time), regressions are seen immediately.

Yep.  We now have a "proprietary" one running at IBM, for which we are
grateful.  The buildtest subproject in Harmony is meant to replace this
at some point and we all will run it.

>        - Done by both at Harmony hosting site and by community members.
>        - Is easy to set-up and run.
>        - Results of testing on community member's platforms can be
> published.
>        - History of test failures, build quality can be tracked.

Yes

> 
> Builds.
> Lets consider the following:
> 1.       Regular (daily, weekly?) building of JRE and HDK and tests. 

daily snapshot

> Goal: being regularly published, one can just download and run / test them
> without need to download sources, tools and building Harmony themselves.
> What we need to be built and published? – I suppose we can start with:
>    - Harmony API + DRLVM
>    - Harmony API + J9
>    - Harmony API + JCHVM
>    - API unit tests

I would suggest :

  HDK (classlib + unit tests)
  JDK/JRE (classlib + DRLVM)

and once JCHEVM uses either the classlib or the glue layer is finished,
a JDK/JRE with that.

We won't create anything w/ J9 in it (as that's IBMs proprietary code)
and anyone who wishes to use it can take the HDK and drop J9 right in
very easily.

That said, I do think we still want people to be independently running
(as part fo the test loop) Classlib + J9 because testing with the broad
variety of VMs available to us will is useful.

> 
> Do we want to provide capabilities for people to install "build tool" and
> have Harmony built regularly on their platforms? – I guess yes.

Yes - that is the point of the buildtest/ project.

> 
> ****I can (and plan) do a simple ant script for building and archiving
> binaries (If no objection).

We already have a script for building the HDK and JRE.  The publishing
part should be fairly straightforward.  I imagine we'll have volunteers
that produce the designated nightly snapshots for a given platform so we
can get the widest variety of OS/chipset as possible.

> Once it is done, I can start publishing the binaries more or less regularly
> at some site and provide links at our wiki pages – is it worth doing?

We would put them in the snapshot directory that we use now.

  http://people.apache.org/dist/incubator/harmony/snapshots/

> 
> 2.       We establish continuous building to make sure we have consistent
> workspace. Cruise Control is OK for this purpose.
> What we build:
>    - Harmony API
>    - DRLVM
>    - JCHVM
> 
> Do we want to provide capabilities for people to install and have "Cruise
> Control – based tool" running on their platforms? – I guess yes (correct me
> if I'm wrong), in case if somebody is interested in keeping Harmony
> buildable and runnable on his favorite platform (FreeBSD, for example).

That's what the buildtest subproject is for.  Have you looked at it?

> 
> Testing.
> I would propose to consider the following levels of testing.
> 1.       Pre-integration testing – quickly executed set of tests to be run
> to make sure a patch does not worsen Harmony quality.
> Goal: for a community member or committer to check that the patch does not
> worsen Harmony quality.
> 
> ****This is already discussed, agreed and implemented for both API and VM.
> Do we need something more to be done here?

I hope not.

> 
> 2.       Code integrity testing – done by regular often building of Harmony
> components by Cruise Control.
> Goal: to make sure no "compilation errors" were introduced by recent
> commits, if introduced, then, notification along with list of recent
> commits
> is sent to all.
> 
> ****This is what is done recently by Geir by Cruise Control script.

Yes, I am doing it, but the goal isn't to have only one person doing it.
 The goal of the buildtest/ subproject

https://svn.apache.org/repos/asf/incubator/harmony/enhanced/buildtest/trunk

is to help *anyone* that wants to help to easily checkout the system,
have it auto-setup as much as possible, and then just run.

What remains to be worked out is the email and notification aggregation,
so that we can have a "dashboard" or matrix of all the platforms being
tested, with their current status and history.  This is an important
thing to get done, and I'm hoping someone volunteers.


> 
> 3.       Smoke testing – a number of tests should be run over received via
> Cruise Control build.
> Goal: to make sure no regressions were introduced by recent commits, the
> built runtime can do its basic operations.
> If regression is introduced, then, notification along with list of recent
> commits is sent to all.
> ****This is what is done recently by Geir in Cruise Control script.

Right

> 
> 4.       Full testing - the whole set of Harmony tests are run on regular
> builds, results are published.
> Goal: to see what happened with Harmony quality on the whole set of
> automated tests, see new bugs, see quality of Harmony runtimes.
> Users should be able to do this kind of testing on their specific platforms
> and publish results on Harmony web site.
> ****This script (prototype) I implemented, see issue 984.

I thought that the classlib tests are run as well w/ the CC script right
now, but will check.

> 
> 5.       Application testing – people enable applications, try already
> enabled applications on fresh builds, publish results.
> Goal: to see what happened with Harmony quality on various applications
> people like.
> We can start from having a wiki page (which partially exists in some form)
> on which community publishes results of running applications on various
> Harmony builds.
> ****Do we need here more?

Maybe eventually we'll want to automate.  We certainly want to get Gump
runs going too for this.

> 6.       [optional] Reliability testing – either special reliability tests
> or some applications are executed during long time (from one regular build
> to another).
> Goal: to make sure we have reliable, stable, long running runtime.
> For future.
> 
> thanks, Vladimir
> 

---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to