gecko-dev/webtools/tinderbox2/Goals
2000-08-11 00:27:27 +00:00

72 lines
2.9 KiB
Plaintext

highly configurable design with multiple Version Control systems
possible (bonsai, raw cvs, perforce, continuious, clearcase) and
multiple modes of running possible (with no version control system
with no builds display).
clear programatic interfaces and better separation of functionality
into separate modules.
It should be possible to add hooks so that users get beeped when the
next good build goes through or that trouble tickets are automatically
opened when the builds fail.
Greater flexibility in setting status of builds. We may need more
gradations of failure then just 'busted' or 'test-failed' to
distinguish the types of tests which have failed.
It should be possible to watch projects milestone progress via
tinderbox. Each milestone could be recoreded as a column which tests
for the features in the milestone. When milestones are hit the column
turns green. The project is over when all columns turn green.
generated html must be readable and help isolate programming errors.
all programmable configuration parameters should be stored easy change
and configure for novice users.
make better use of the perl data structures to mirror the way we wish
to use the data. This will allow easier maintainabilty and allow for
more expansion of features.
popup windows should not be netscape specific.
Permanent data should be stored via datadumper so that the data and
datastrucutres are easy to read and debug. Currently this is a
performance bottle neck with a large percentage of our cpu time during
testing being spent in Data::Dumper::Dump. I expect this to improve
when we install the newest version of perl. The perl module Storable
is rumored to be much faster. I wish to not add additional module
requirements at this time this will be configurable.
# dprofpp says that:
# %64.8 of elapsed real time which is 66.25 seconds
# (out of 102.15 Seconds)
# was spent in 3 calls to TinderDB::VC::apply_db_updates()
# %58.0 of user time which is 11.05 seconds
# (out of 19.03 User/102.15 Elapsed Seconds)
# was spend in 32878 calls to Data::Dumper::_dump()
# System Time was negligable at 2.49 Seconds
All errors should be trapped and sent to log files. Strange program
states should be explicitly checked for.
Databases should update atomically, no information should be lost due
to race conditions.
All modules (processmail, build, VC, Notices) should be able to be run
individually. Modules should accept well defined text files as input
and produce text files as output. This will greatly inhance the
ability to test each module in isolation and to quickly port modules
to new architectures.
The source code should be able to run using the standard Perl
libraries, as it can be difficult for some users to add libraries onto
production machines.
Put CVS keywords into all the source files so that when the software
is deployed, there is no doubt what version was checked out and where
the files are stored in the local version control system.