diff --git a/bfps/FluidResize.py b/bfps/FluidResize.py index 0cb0f561163ed3a7f080da5157562b90ab2c26dd..444c4d466fafd241a5f32127b2074cddb6b71a5a 100644 --- a/bfps/FluidResize.py +++ b/bfps/FluidResize.py @@ -142,15 +142,15 @@ class FluidResize(_fluid_particle_base): cmd_line_pars[k] = opt.m self.pars_from_namespace(opt) src_file = os.path.join( - opt.src_work_dir, + os.path.realpath(opt.src_work_dir), opt.src_simname + '_cvorticity_i{0:0>5x}'.format(opt.src_iteration)) read_file = os.path.join( self.work_dir, opt.src_simname + '_cvorticity_i{0:0>5x}'.format(opt.src_iteration)) - if not os.path.exists(read_file): - os.symlink(src_file, read_file) self.set_host_info(bfps.host_info) self.write_par(iter0 = opt.src_iteration) + if not os.path.exists(read_file): + os.symlink(src_file, read_file) self.run(ncpu = opt.ncpu) return None diff --git a/bfps/NavierStokes.py b/bfps/NavierStokes.py index 7ccc7ed2b6dbf8ca706c6e40a54ccfd10ae6462d..d263d432ab3138026fa4c58f434957635811c632 100644 --- a/bfps/NavierStokes.py +++ b/bfps/NavierStokes.py @@ -931,7 +931,7 @@ class NavierStokes(_fluid_particle_base): '--src-wd', type = str, dest = 'src_work_dir', - default = './') + default = '') parser.add_argument( '--src-simname', type = str, @@ -995,6 +995,8 @@ class NavierStokes(_fluid_particle_base): self.parameters['max_Q_estimate'] = meantrS2 self.parameters['max_R_estimate'] = .4*meantrS2**1.5 + if len(opt.src_work_dir) == 0: + opt.src_work_dir = opt.work_dir self.pars_from_namespace(opt) self.fill_up_fluid_code() self.finalize_code() @@ -1014,7 +1016,7 @@ class NavierStokes(_fluid_particle_base): if not os.path.exists(init_condition_file): if len(opt.src_simname) > 0: src_file = os.path.join( - self.work_dir, + os.path.realpath(opt.src_work_dir), opt.src_simname + '_cvorticity_i{0:0>5x}'.format(opt.src_iteration)) os.symlink(src_file, init_condition_file) else: diff --git a/bfps/_base.py b/bfps/_base.py index 78667424a6e455f20158e317f0e82868f5b21904..eb564fcd3669eea5f0d667cd4e94c88e06540ccf 100644 --- a/bfps/_base.py +++ b/bfps/_base.py @@ -45,7 +45,7 @@ class _base(object): 'ny' : 32, 'nz' : 32} self.string_length = 512 - self.work_dir = work_dir + self.work_dir = os.path.realpath(work_dir) self.simname = simname return None def cdef_pars(self): diff --git a/documentation/_static/development.rst b/documentation/_static/development.rst index d2aa9da37c0822aa82b635c7684b8f990146e079..446bc1ab765a281f05410939c74e8c08dabaf3e6 100644 --- a/documentation/_static/development.rst +++ b/documentation/_static/development.rst @@ -7,23 +7,23 @@ Development Versioning guidelines --------------------- -Version tracking for `bfps` is done with `git` (see https://git-scm.com/ +Version tracking for :mod:`bfps` is done with ``git`` (see https://git-scm.com/ for description). The branching model described at http://nvie.com/posts/a-successful-git-branching-model/ should be adhered to as strictly as possible. -The usable `VERSION` number will be constructed according to semantic -versioning rules (see http://semver.org/), `MAJOR.MINOR.PATCH`. -In principle, if you use `bfps` and you've created children of the -`NavierStokes` class, you should not need to rewrite your code unless -the `MAJOR` version changes. +The usable ``VERSION`` number will be constructed according to semantic +versioning rules (see http://semver.org/), ``MAJOR.MINOR.PATCH``. +In principle, if you use :mod:`bfps` and you've created children of the +:class:`NavierStokes <bfps.NavierStokes.NavierStokes>` class, you should not need to rewrite your code unless +the ``MAJOR`` version changes. -There are 2 main branches, `master` and `develop`. -`setup.py` will call `git` to read in the `VERSION`: it will get the +There are 2 main branches, ``master`` and ``develop``. +``setup.py`` will call ``git`` to read in the ``VERSION``: it will get the latest available tag. -If the active branch name contains either of the strings `develop`, -`feature` or `bugfix`, then the full output of `git describe --tags` +If the active branch name contains either of the strings ``develop``, +``feature`` or ``bugfix``, then the full output of ``git describe --tags`` will be used; otherwise, only the string before the dash (if a dash exists) will be used. @@ -32,25 +32,28 @@ At the moment the following rules seem adequate. Once I get feedback from someone who actually knows how to handle bigger projects, these may change. -1. New features are worked on in branches forked from `develop`, with - the branch name of the form `feature/bla`. - Feature branches are merged back into `develop` only after all tests +1. New features are worked on in branches forked from ``develop``, with + the branch name of the form ``feature/bla``. + Feature branches are merged back into ``develop`` only after all tests pass. -2. Whenever the `develop` branch is merged into `master`, the last - commit on the `develop` branch is tagged with `MAJOR.MINOR`. -3. Whenever a bug is discovered in version X.Y, a new branch called `vX.Y` - is forked from the corresponding `master` merge point. - A new bugfix branch is forked from `vX.Y`, the bug is fixed, and then - this bugfix branch is merged into all affected branches (this includes - `vX.Y`). - After merging, the respective merge points are tagged adequately (`vX.Y` - gets the tag X.Y.1). +2. Whenever the ``develop`` branch is merged into ``master``, the last + commit on the ``develop`` branch is tagged with ``MAJOR.MINOR``. +3. Whenever a bug is discovered in version X.Y, a new branch called ``vX.Y`` + is forked from the corresponding ``master`` merge point. + A new bugfix branch is forked from ``vX.Y``, the bug is fixed. + The last commit in the bugfix branch is tagged X.Y.1. + This bugfix branch is merged into all affected branches (this includes + ``vX.Y``). + After merging, the respective merge points into branches other than + ``develop``, ``bugfix`` or ``feature`` are tagged accordingly; + there's no need to tag ``develop`` etc since those contain the git + commit in the version anyway. 4. Whenever a bug is discovered in version X.Y.Z, a bugfix branch is - forked from `vX.Y`, and then rule 3 is adapted accordingly. + forked from ``vX.Y``, and then rule 3 is adapted accordingly. ------------ Code testing ------------ -Testing for `bfps` is done with `tox`. +Testing for :mod:`bfps` is done with ``tox``.