adjtomo/seisflows

release 0.1 planned

rmodrak opened this issue · 5 comments

This fall or summer, the plan is to release the first numbered version of seisflows. By then (1) we should have a buildbot-like continuous integration system in place, (2) commits to the main repository will more often take the form of pull requests, and (3) I will have finished or be close to finishing my thesis and may be able to devote more time to software development. Until then, changes will probably just continue in the current fashion. Thanks for bearing with me. -Ryan

Just a warning that we are experimenting with the "jenkins" continuous integration system. You may see some automatically generated messages following the next pull request. I'd like the integrations tests to run if I just type 'git push' as well, but so far that is not in place.

Update: a new pull request has been submitted, the first of potentially several aimed at delivering a stable tagged release. #36

Update: coincident with the above, some changes have been made to read/write permissions for all users--don't be alarmed if you receive any email notifications.

It look like jenkins is now fully integrated with github. Thanks David! After each pull request, all users will be able to see the overall pass or fail status. Users with a local account may be able to click and see even more details.

The jenkins tests are basically just wrappers over the contents of the seisflows/tests directory, with security measures to prevent execution of any malicious code within a pull request.

Currently, after every pull request, there are four tests that run automatically.

  1. test_import
    do modules import correctly?

  2. test_optimize
    tests nonlinear optimization machinery on the Rosenbrock function

  3. test_system
    checks the system machinery by sending a hello message from every allocated resource

  4. checkers_2d
    runs the sample inversion described here http://seisflows.readthedocs.io/en/latest/instructions_remote.html
    this last test usually runs in under 5 mintues, but can take longer depending on resource availability

These instructions were posted elsewhere on the issues page, but it occurs to me they seem relevant here too.

The following sed commands can be used to update any code written by individual users but not yet pushed to the main repository. (All code in the main repository has already been updated.)

It is required that you run these commands from within the seisflows package directory, and of course, it is recommended that you back up your existing source code.

find . -name "*.py" -exec sed i 's:import optimize:optimize = sys.modules['seisflows_optimize']:' {} =
find . -name "*.py" -exec sed i 's:import preprocess:preprocess = sys.modules['seisflows_preprocess']:' {} =
find . -name "*.py" -exec sed i 's:import postprocess:postprocess = sys.modules['seisflows_postprocess']:' {} =
find . -name "*.py" -exec sed i 's:import solver:solver = sys.modules['seisflows_solver']:' {} =
find . -name "*.py" -exec sed i 's:import system:system = sys.modules['seisflows_system']:' {} =
find . -name "*.py" -exec sed i 's:import workflow:workflow = sys.modules['seisflows_workflow']:' {} =


find . -name "*.py" -exec sed i 's:PAR = SeisflowsParameters():PAR = sys.modules['seisflows_parameters']:' {} =
find . -name "*.py" -exec sed i 's:PATH = SeisflowsPaths():PATH = sys.modules['seisflows_paths']:' {} =


find . -name "*.py" -exec sed -i 's:seistools:plugins:' {} +
find . -name "*.py" -exec sed -i 's:tools.code:tools.tools:' {} +
find . -name "*.py" -exec sed -i 's:tools.config:config:' {} +