The goals of this plan is to document all steps to release a product like “genc³” as an online-product aiming to satisfiy the endusers expectations regarding download, installation, use, and further information.
The file “package.yaml” is configured to compile the final product with optimisation flag “-O2”.
The content of “ChangeLog.md”
status up-to-date
The version number in file “ChangeLog.md” and “package.yaml” is consistent.
The file “stack.yaml” is configured to used the latest recommended resolver.
The content of “README.md” is still valid
explains how to obtain, install and use the software
has (an) up-to-date copyright year(s)
The content of file “LICENSE” is correct
has (an) up-to-date copyright year(s)
contact information still correct?
Conduct automated tests
Checks are conducted after automated test:
File “testresult.txt” in folder “test” is newer than all products and by-products, at least including:
executables
libraries
documentation
All binaries are rebuild completely (check modification dates)
All library files have a corresponding test files (“Spec _ _ _ .hs”)
e.g. for the file “./src/Code.hs” is also a file “./test/SpecCode.hs”
All spec modules are imported and used in file “./test/Spec.hs”, by
review of Spec.hs-files (“./test/Spec.hs”, “./test/ModuleSpec.hs”)
review of “TestResult.txt” in folder “test”
criteria:
tests for all classes, it's laws and it's functions that are validated according to Spec.hs-files are also executed
All functions are in all module “Spec _ _ _ .hs”
e.g. for the file “./src/CharCode.hs” is also a file “./test/SpecCharCode.hs”
All functions described and hence required covered by tests or analysis.
All tests are OK
All results of the checks are documented in a Software Configuration File, including
Software Name
Software Version Number
failed tests and/or deviations
timestamps
filenames
module names
file checksums
Pre-Release Rules
The copying of the software product and by-products to an online pre-release folder is executed by the bash file 'distr.bat', 'distr.sh' or 'distr.zsh'.
A final end-test is executed to test
Download procedures
Installation procedures
Opening of documentation
Function of the product
Availability of licensing information
Availability of disclaimers
Release Rules
After successful final end test according to the pre-release rules,
the copying of the software product and by-products to an online release folder is executed by the bash file 'deploy.bat', 'deploy.sh' or 'deploy.zsh'.