How do we gain confidence that what we will release is working with minimal regressions?
The buld process operates in layers starting with SIMH and the OS/8 distribution DECtape image files as the lowest level. The layering goes like this:
Boot the OS/8 V3D Distribution DECtape image,
.../media/os8/v3d/al-4711c-ba-os8-v3d-1.1978.tu56. This creates
v3d-dist.rk05which is booted to continue the build process.
v3d-dist.rk05to apply patches to create a useful image with the latest bug fixes,
v3d-patched.rk05. Strictly speaking, this is the optimal, but minimum platform for continuing to build, and to operate utilities.
cc8, and anything else that needs OS/8. This is the platform that should be used to build V3F from source, and the OS/8 Combined Kit (OCK) from source. Creating the images used to assemble V3F and OCK from source requires
Install packages built with OS/8 onto runable packs. This is where
v3d.rk05. At the present moment, the component RK05 images that will be gathered into
ock-dist.rk05have been built using
v3d-patched.rk05. They could have been built using
v3d.rk05. The choice is made in the build scripts. The
ock-dist.rk05image is constructed similarly to layer 1. The
al-4711c-ba-os8-v3d-1.1978.tu56image is booted, and used to create an RK05 image, which is then populated with the other components built in layer 3. At this point we have bootable TU56 images for V3D and V3F built from
v3d.rk05. We also have
ock-dist.rk05built from source.
ock-dist.rk05and apply patches to create
Install packages such as
ock.rk05. This completes all building.
Layer 1 shows that SIMH basically works. Each subsequent layer is proof that the basic operation of the previous layer works. So a successful build of everything has provided a fair bit of coverage.
The next challenge is functional tests for leaf node packages like
os8-progtest tool tests these.
The leaf node package management files live in the
of the source tree. Tests for the packages live in
auto.def knows how to discover new packages and new tests and
incorporate them into the
Makefile contains a
make test target that runs
on all discovered tests.