Tuscany Samples Requirements

There are two main motivations for this:

1) consistency across samples to make it easier for users to understand how to use Tuscany. Ideally once a user understands one type of sample they would be able to use similar samples without having to read any more doc.

2) simplification of the release process. It has proven to not scale with everyone able to add any old sample they happen to like and have that require for ever more that it is manually reviewed at every release and any issues be release blockers.

So based on those we decided to move all the existing samples out of the main trunk build where they can be developed and use a consensus base review-then-commit approach to add samples to the main trunk build.

We can't be completely prescriptive on the requirements of any and every new sample but some common themes have been:

(tick) consistent build

  • eg using the base + extension approach for the tuscany dependencies

(tick) Unit test for

  • showing basic functionality of the sample
  • providing a continuous integration mechanism

(tick) Runs fine with shell (where applicable)

  • samples that are not supported by the shell should include a more detailed description on how to run the sample in the README file

(tick) README file containing

  • instructions on how to run the sample using the shell
  • information on the Tuscany Maven archetype

Examples

Checklist

Samples in the trunk are expected to do all of the following:

(tick) Contain a README file that

  • explains the purpose of the sample and says what it does
  • describes how to run the sample
  • describes what happens when the sample runs successfully

(tick) Contain unit tests that are run by the build and verify that the sample works, to the extent that this can be tested in an automated way

(tick) Work correctly when run as described in the README instructions, and produce the results described in the README

  • No labels