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.

Project Versions

Table Of Contents

Previous topic

Links to useful Python info, such as tutorials

Next topic

CREDO Appendix (inc Developer notes)

This Page