What’s new in CREDO
This page summarises what’s new in each CREDO version.
(See the files in the “changelogs” sub-directory of the CREDO distribution for
full ChangeLogs based on Mercurial commits.)
new in credo-0.1.3
An incremental release, the main changes of interest were:
- Improvements to management of timeouts in ModelRuns and Tests
- Added the credo.jobrunner package to handle the mechanics of
running Models, and refactored the appropiate parts out of ModelRun class.
- This includes the capability to run models in directories other than
where the CREDO script is invoked using the “basePath” parameter.
- And a small hierarchy of credo.jobrunner.api.ModelRunError
exceptions.
- Default MPI command used by the MPIJobRunner is mpiexec.
- Improving capabilities of ModelSuite (credo.modelsuite):
- to generate new sorts of suites based on iterators and
credo.modelsuite.StgXMLVariant classes.
- to post-process existing ModelSuite results, using
new funcs readResultsFromPath
- Added a credo.io.stgcmdline module to handle simple command-line
issues.
- Improved the reporting of model run errors from the command line.
- General improvements to ModelRun class:
- Added a hook to do post-run cleanup
- Added functions to do pre-run validation in various ways
- credo.systest package improvements:
- added function to import and run a given set of tests based on test names-
useful for integration into scons test suites.
- Added a new System test, HighResReference, based on code Wendy Sharples
sent through.
- New system test and test components to compare images based on Owen
Kaluza’s work.
- Bugfixes:
- Fixed an issue in _createDefaultModelRun so paramOverride lists are
not accidentally modified.
- In the CREDO SCons module, changing to avoid problems compiling
code on systems with old Python.
- Documentation:
new in credo-0.1.2
The main changes in this version were:
- Applied an LGPLv2.1 license to the codebase, and added appropriate
Copyright statements.
- Can now over-ride the MPI command used for running models by setting the
MPI_RUN_COMMAND env variable.
- Updated the SysTestRunner class’s
XML output to be more like that of the Python Unittest XML suite addon,
unittest-xml-reporting (which helps Bitten integration). The XML suite
results are now written to separate sub-files, in a “testLogs” sub
directory by default.
- Refactored the SysTest class
hierarchy to simplify it, it’s now easier to write sub-classes as they
all use a default check function that checks all TestComponents.
- Added capability to specify a Timeout for system tests, after which time the
test is deemed to have failed if still running.
- New exception classes:
- Added a custom exception,
ModelRunError,
to record if a model failed to run.
- Added a ModelRunTimeoutError,
(see comments on Timeout above.)
- Added new reduction operators for stgfreq module, first
and last, that help with setting up system tests based on this.
- Bug/version fixes:
- Updated the code used to generate model suites so that the itertools.product
function, which is Python 2.6 onwards, is replaced by similar functionality
if using Python 2.5
- Fixed SCons integration stuff to make sure paths are set correctly on all
machines.
- Fixed the ability to save plots in non-standard directories from frequent
output data.
new in credo-0.1.1
The main changes in this version were:
- Change from all tests being directly attached to a
SysTestRunner class, to ability
to define SysTestSuite classes
that could then be run by
the SysTestRunner. This makes it possible to better control running of
multiple suites, and also makes the interface closer to Python’s
Unittest module.
- Setting up of conventions so CREDO Suites can be both imported and run as
part of a collection, or run directly. See
Requirements for importing test suites: Dual-mode, and the suite() function.
- Much better integration with SCons, so the user doesn’t have to set up special
environment variables if you just wish to run tests via SCons, and also are
able to generate proper reports on the different suites that were run. See
Running a test target, or test suite, via the SCons build system.
- Several small but useful interface improvements when defining suites and
system tests, including:
- the ability to define a suffix to append to the output directory
of model runs and sys test suites.
- The ability to define a solverOpts file to use for each run, that contains
options to customise the PETSc solver.
- Making sure the stdout and stderr logs of system tests and models are saved
properly.
- Checking that the input files specified for a model are defined correctly.
- Improved the credo.systest.fieldCvgWithScaleTest module considerably,
to be more modular, and also better handle fields that don’t have a
convergence criterion specified. Default criterion were also added for
common recovered fields (eg recovered Pressure).
- Created a new credo.io.stgpath module, which contains several useful
path-manipulation utilities.
- Testing of CREDO: improved the unit tests of CREDO itself, so the majority of
testing dirs now have a “testAll.py” script that runs all the other tests.