I think OpenACS 5, release management, automatic install, and automated testing are all related, and I would like to solve or untangle them all. The purpose of this post is to lay out perceived problems, get people to agree, disagree, or list their own perceptions; to propose solutions, and get discussion of the best solutions.
Problems
OpenACS is lagging behind in quality control. We have a lot of unfixed bugs; those bugs probably don't represent full coverage because we use only sparse, infrequent manual testing; we are at risk to break a lot of stuff whenever we make architectural changes because we don't have regression testing.
OpenACS has very inconsistent releases. Schedules are very unpredictable, the methodology and people change for each release, and there is no clear, publicized, consistent road-map for future releases and their features.
Solutions
The "best practices" for quality control include:
- daily build and smoke test. Every day, the current code from CVS is exported and a new system is installed. The system is then tested, including basic functionality for all features. This is unfeasible without automated install and automated test.
- regression testing. When a developer makes a change, she can run a suite of tests covering existing functionality to ensure that her change has not had unintended effects. Again, this must be automated to be practical.
We need the following changes to OpenACS to support this:
- Full suite of automated tests
- Automatic install scripts
- A dedicated server for the community that does daily build and smoke test.
In order to get full support for automated testing, we need to integrate tclwebtest or similar functionality into the automated-testing module.
In order to get more community involvement with the next release, we need to make it easy for people to participate, especially with testing. This could include:
- Better documentation for automated testing (tutorial)
- Ability for community members to create and submit new automated tests and see the results
- A list of needed automated tests
- Package maintainers with both responsibility and power to test their packages.
For better release management, we need consistent membership, clear release criteria that we can measure and stick to, and a road map for the future which has funding or time committments from people.