Breaking up The Fascinator

7 views
Skip to first unread message

Duncan Dickinson

unread,
Nov 27, 2012, 5:33:19 PM11/27/12
to The Fascinator group, ReDBox Developer List
Hi All,

Whilst we've moved the code-base over to GitHub, we're still working on bringing the various issues and documents over as well. This is part of a long-term plan around creating a more agile development environment for Fascinator and ReDBox.

A little while ago I mentioned that it'd be worth looking at The Fascinator's code base (at a Maven module level) and breaking it up to make releases easier. I have a concern that, because of the structure of the TF codebase, some (non-core) modules are released without really having had testing etc.

Breaking up is always hard to do and this won't be straight forward so I wanted to list my thoughts for feedback:
  1. We remove the various non-core modules from the main codebase and spin them off to their own github repo
    1. I've been doing some testing wrt this and have been using https://github.com/dedickinson to manage the code
    2. The Git commands for moving the submodules out are listed below
    3. This means that the TF core contains only the main components (common, core, plugin-api, portal) and some fundamental modules/plugins (such as the filesystem storage and internal auth) - each (sub)module can then be managed by different groups as they require and can have their own versioning (rather than track TF's)
  2. A separate build similar to how we have setup ReDBox builds would created for the TF desktop demonstrator.
    1. We also have the media repository build (https://github.com/the-fascinator-contrib/builds-media-repository
I'm still a fan of the TF desktop so want to make sure it's still available but outside the core TF deployment. That being said, the Portal code is tricky here as (I think) it's a little bit tangled up. In the first case I'd suggest keeping Portal with the core TF code.

One last item is the Vocabulary module (https://github.com/the-fascinator/the-fascinator/tree/master/vocabulary) - I'd like to look into the dependencies in the system and (maybe) take this out and put it into the desktop build. 

This is all largely my thinking etc so I was after feedback and (to prove I'm following my own rules) I need to approach the Technical Management Committee with a more formulated plan when it all looks good. So, don't panic - these changes are unlikely to happen prior to the end of the year and they won't be pushed through outside of our governance process.

The goal in all of this (for me) is to really get the TF codebase setup so that Fascinator can be a platform on which various applications can be built. Thus far we have seen applications such as ReDBox, Mint, Desktop, Media Repo,  bush.fm and Policy Library make use of the platform and I'm hoping the ideas I've mentioned here make it a little easier for the developers on those projects.


================================================================
Git cmds for spinning out the sub-modules

git clone --no-hardlinks <dir> <new-dir>

cd <new-dir>

git filter-branch --subdirectory-filter subdir/you/want

git remote rm origin

git update-ref -d refs/original/refs/heads/master

git reflog expire --expire=now --all

git repack -ad

================================================================
--

Cheers, 


Duncan 


Duncan Dickinson 

QCIF Project Manager 

Central Queensland University 

My contact details:

ph: 07 3138 2084

m: 0432 402 511

skype: de.dickinson

website calendar | LinkedIn

Project involvement

ReDBox (Research Data Box)

TERN Central Portal

Tropical Data Hub


Developer? Check out dev8D-AU at 
 http://dev8dau.info/



Reply all
Reply to author
Forward
0 new messages