On Mon, 5 Jan, 2015 at 10:45 AM, Anders Logg <[email protected]> wrote:
Hi,
Here are some thoughts on a possible developer workflow (partly)
based on HashDist.
The current HashDist-based installation (fenics-install.sh) seems to
work relatively well (yes there are bugs but Johannes has been very
good at fixing them). Users and developers both can now easily build
from source an entire FEniCS stack including both dependencies and
FEniCS components.
However, for developers that need to work on features/bugs for a
specific FEniCS package (say FFC or DOLFIN) it is less clear how to
base the workflow on HashDist.
Related to this issue, when we switched to git the thought was to
consider submodules/trees once we were comfortable with git. I think
the time is right to take a look. Subtrees could be helpful:
http://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_subtree_merge
https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt
So, after some discussion with Johannes, here is a suggestion for a
common workflow (which not everyone needs to follow, of course, but
something I imagine would make life easier for many of us):
1. Users and developers alike build dependencies + FEniCS using
fenics-install.sh
2. For each FEniCS-package, we add a script named
local-install.sh
For DOLFIN, we simply rename cmake.local --> local-install.sh and for
the other packages, we add a corresponding script which calls
setup.py with the proper flags.
If this is just a re-naming, it's fine with me.
3. The script local-install.sh installs under local.$BRANCH and
generates a file named local.$BRANCH.conf that can be sourced.
This way, one may have one or more HashDist profiles under
~/.hashdist containing as many FEniCS stacks with deps as one needs,
and for each relevant package one is working on, as many local/branch
builds as one needs, and those development/debugging builds don't
need to be installed "system wide" (as in landing somewhere under
~/.hashdist), which means one always has one or more working FEniCS
stacks under ~/.hashdist for production work.
Would this be a good idea? Comments or objections?
If there are no objections, I can make the required changes.
I suggest not pushing to master before the 1.5 release.
Garth
--
Anders
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics