All,

Just a few comments in agreement with what Graham has mentioned...

On 4/6/2011 3:40 PM, Graham Triggs wrote:
> On 1 April 2011 11:08, Mark Diggory <mdigg...@atmire.com
> <mailto:mdigg...@atmire.com>> wrote:
>
>     I argued extensively during my redesign of dspace to use maven
>     in 2006, that many of the individual dspace-xxx modules should have
>     had their own svn project spaces (trunk/branches/tags) so that they
>     could have separate releasing, but the group pushed back excessively
>     on creating more than on trunk at that time.
>
>
> The thing is, we are looking for a genuine benefit to operating in that
> way - and so far, personally, I can't see one. Even in the 'simplest'
> case of dspace-services, it isn't really taking advantage of separate
> releasing - it's basically being released at the same time as the main
> release. Except it's more work to have to do separately each time.

I'm also unclear of the genuine benefits of releasing 'dspace-services' 
separately. So far, we have always released dspace-services just before 
a normal release. So, it does currently add an additional step on to the 
normal release process.

>
>     I have to be critical that DSpace Services have no reason to be in
>     the main DSpace trunk.  It is a standalone tool with no dependency
>     on dspace-api, this was how it was designed to be.
>
>
> It is not standalone though. It may not have a dependency on dspace-api,
> but it is in itself very distinctly a part of the 'core' of dspace. And
> something that everything else does depend - directly or indirectly. It
> is that nature of it's relationship to the rest of dspace that marks it
> out as something that should be part of trunk - something that gives it
> two extremely good reasons to be so:

This is the same general concern I had, and why I had suggested  moving 
'dspace-services' over to Trunk (in my alternative proposal for 
asynchronous releases). Again, I don't want to confuse two separate 
proposals here (services and async releases), just pointing out one 
alternative view where 'dspace-services' could sit in Trunk alongside 
'dspace-api': 
https://wiki.duraspace.org/display/DSPACE/Asynchronous+Release+-+Alternative+Option

More importantly, as discussed in yesterday's Developers Meeting, we 
also seem to be continually seeking full "buy in" from all the 
Committers on DSpace Services. One way to make Services more visible to 
everyone (and encourage more to use it) would be to move DSpace Services 
over to Trunk. Full discussion from yesterday at: 
http://irclogs.duraspace.org/index.php?date=2011-04-06

I fully understand that 'dspace-services' is not required to be a part 
of Trunk (as there are no dependencies on dspace-api).  But, the 
pros/cons seem to be:

Pros for putting 'dspace-services' in Trunk:
--------------------------------------------
(1) More Committer eyes on the dspace-services source code (as it's in 
your source code checkout by default). Hopefully can help us all get 
more comfortable with it, and provide feedback to move it forward.
(2) Some simplification of current release process (Services would be 
released/versioned alongside dspace-api)
(3) More consistent testing of dspace-services during Testathons, etc. 
Latest 'dspace-services' code will always be tested/debugged alongside 
latest 'dspace-api'. In addition, 'dspace-services' could not be 
released outside of normal DSpace Release processes (i.e. this would 
require 'dspace-services' to always undergo a Testathon for each release)
(4) Makes the full source of DSpace easier to obtain overall (currently 
our "source releases" don't actually include the full source of DSpace). 
Makes 'dspace-services' source more easily available to external 
developers who want to help develop new 'services', or test/debug/patch 
existing ones.

Cons against putting 'dspace-services' in Trunk:
------------------------------------------------
(1) No longer can be asynchronously released separate from dspace-api / 
DSpace (Note: to date Services has not yet been truly asynchronously 
released, as it has always been released in conjunction with a new 
DSpace release)
(2) Yet another maven project in Trunk. Already nine other maven 
projects there (with some additional sub-projects). But, as part of the 
separate 'async release' idea, we could potentially think about moving 
other maven projects outside of Trunk, if it makes sense to allow for 
asynchronous releases of other projects.

Do others see additional pros/cons? Or agree/disagree with any of the 
pros/cons I've listed above?

Perhaps if we can enhance this list of the various pros/cons, then it 
would help us to come to a decision around where 'dspace-services' 
should sit in SVN, and how it should be released, etc.?

>     And to be honest, none one should be locally altering the
>     implementation of the Service Manager codebase in the customization
>     of your DSpace instance.  This doesn't mean other committers in the
>     group can't alter the code and contribute improvements to it,
>     everyone is certainly welcome to contribute. Its very serious, you
>     shouldn't be touching this code if you are just customizing your
>     local DSpace instance, this is why its source is separate from the
>     distribution and has separate release cycles.
>
>
> I agree that if you are just customizing a local instance, then there
> are parts of the code that should only be modified as a last resort -
> that includes various parts of the domain model, not just the service
> manager. But that's our role to document and educate - not babysit. It's
> far more important that we don't obstruct the review of code, and hold
> people back from debugging, fixing, contributing to that code than it is
> for us to try to prevent someone making a local modification that they
> will find hard to maintain - when they probably won't anyway.

+1 I agree that we should discourage people from locally modifying 
specific areas of DSpace source. But, I agree with Graham, that this is 
an education/documentation issue. As an open source project, we should 
give users the ability to modify whatever they want to modify (again, as 
Graham mentions, doing so can often result in contributions/fixes back 
to DSpace). But, we definitely should come up with "Best Practices" / 
"Guidelines" around what areas of DSpace source code we recommend you 
should avoid changing locally.

I also feel that separating "core" parts of DSpace out into separate SVN 
checkouts just confuses people at times. It does add a small "barrier" 
to suggest they shouldn't edit these areas. But, that "barrier" also has 
a cost with it -- the cost being more questions on mailing lists around 
how to obtain source code of certain areas of DSpace, or why that source 
code doesn't seem to exist in the official "Source Release" of DSpace. 
I'd much rather avoid those extra costs, and just post up big "RED 
FLAGS" warning people not to edit specific "core" parts of DSpace (or 
warning that if they do edit them, we cannot promise support for such 
changes on mailing lists, etc.)

Again, I'd love to hear what others think here!

- Tim

------------------------------------------------------------------------------
Xperia(TM) PLAY
It's a major breakthrough. An authentic gaming
smartphone on the nation's most reliable network.
And it wants your games.
http://p.sf.net/sfu/verizon-sfdev
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to