On Mon, 05 Jan 2015 11:03:39 +0000
"Garth N. Wells" <[email protected]> wrote:

> 
> 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:
> 
>     

Please, note that there are 3 distinct concepts

1. subtree merging

> http://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_subtree_merge
>     

2. 'git subtree' command

> https://github.com/git/git/blob/master/contrib/subtree/git-subtree.txt

3. submodules

http://git-scm.com/book/en/v2/Git-Tools-Submodules#_git_submodules

By first reading, 2. seems to be transparent for end-users and allows
what we want - keeping separate history of subtrees.

Jan

> 
> 
> > 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

_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to