PHP TestFest 2008
This page contains out-dated material and is archived here for informational purposes. For recent information, see the main PHP TestFest page.
Test Fest Web development team and strategies
The PHP Project is happy to announce the development of it's Test Fest Web Platform built on top of the Solar Framework. There has been quite a bit of thinking and meditation on the subject from my part (David) and I have came up with the solution to our problem. Solar. It is developed by our great open source contributor and colleague Paul M. Jones and is very robust but still very fast and flexible.
It has a rather small footprint and the learning curve is not as steep as some other frameworks. There can still be discussions of course if anyone has any objections on the subject.
Another reason that made us choose Solar is that it's been around for a while now and has proven it's stability, and moreover, it's documentation is well written and simple/easy to understand. You can run the examples straight out of the box.
I'd like to remind everyone that we are still looking for people to help us with the design of the web interface.
Anyways, here we go with the sections we'll need on that platform/interface.
The contributors area is the section where anyone contributing any test is going to be aiming for when they have a test to mark as finished and upload their files.
To break down it's functionalities in a lesser normal way, here's a simple list of what this area should contain:
- Registration Area (As a simple user, or as a group)
- Login Area (Where the group/user will enter their user name and password)
- Live Test Writing Area: A place where contributors can write tests online (Example of already existing phpt generators) (low priority)
- File upload area (A contributor will be able to upload single .phpt file or .zip/.tar/.gz files (Which will be auto-magically decompressed and shown in his (*Files* area)
- Files Area (A place where the contributor will see all his submitted tests (Uploaded, Confirmed, In Review, Accepted, Refused etc)
- Uploaded: The file has been uploaded but is not confirmed by the contributor (Not to be reviewed yet)
- Confirmed: The contributor knows the patch is ready to be reviewed and cannot change it.
- In Review: This file is currently being reviewed by one of the mentors
- Accepted: This test has been accepted and has been committed. A diff will be displayed between the submitted and the committed version (see below how this will be possible).
- Refused: This means the test has been refused (A reason will be supplied upon refusal)
- His Files area will also have the ability to view the file online, and the ability to delete it.
This is the area where all Test Fest organizers/mentors will login to execute tasks related to the test fest (Announcement, Review of tests, acceptance of accounts, etc)
Here are the “Mentor's Area”:
- Login Area: Where the mentor logs in
- Test Review area: A place where the mentor can see all the “confirmed”, and start reviewing, testing, and doing whatever he feels with the patches/tests
- Announcement Area: A place for the mentors to announce news on the main page of the Test Fest (low priority)
- Live Test Test Area: A place for the mentors to Test the patch directly online. (@TODO) (low priority)
General process & evolution Area
This whole section will behave a bit like a blog for the Test Fest. All mentors will be able to post their news (If they have any) and all the accepted/reviewed patches will be posted publicly. (Title, contributor and then the RSS feed will have more information). Nothing too fancy, something simple, clear, easy to follow. (low priority)
Committing Submissions and Cronjob
Mentors that commit tests that are even partially derived by a submission should note down the URL's to the submission that helped in writing the test. A cronjob will scan the commit log at regular intervals and add a relation to the committed version to the original submissions. This will automatically set the given submission to accepted (and add any additional comment to the comment field) and will enable displaying a diff between the submission and the committed version.