All,

I'll play 'devil's advocate' a bit more, based on Sands' good points.

On 8/2/2010 9:50 AM, Sands Alden Fish wrote:
> - Maven is #1, a developer's tool, and #2, implements best-practices.
> Changing the default behavior is implementing less-than-best-practices.

I agree that Maven is a developer's tool -- the oddity here is that for 
DSpace, we are also using it as an installation tool for end users.

>
> For #1, I mean to say that Maven is not a basic end-user's tool, and we
> shouldn't make compromises based on a scenario that the tool wasn't
> designed for. Don't the binary releases exist for for those who don't
> need to work at the level of source code? Documentation (the same that
> would suggest an inexperienced user run `mvn package`) could easily
> describe to the user why they might want to run `mvn
> -Dmaven.test.skip=true package` instead.

It's worth pointing out that "binary" releases & source releases both 
require that users still run 'mvn package' during the installation 
process.  In this way, our "binary" releases are not truly a "binary" 
installer -- they just don't include the full Java source code (instead 
they only download the necessary JARs via Maven).

Sands is correct that we could change all our install instructions to 
have that extra "-Dmaven.test.skip=true" option.  This does add an extra 
(albeit small) layer of complexity to the install process.  That extra 
layer of complexity may or may not lead to more install/upgrade 
questions or confusion on listservs. (It's hard to say for sure. It 
likely all depends on whether people follow the new install/upgrade 
instructions word-for-word, or just do what they've always done in the 
past.)

[As a sidenote:] I'd like to remind us all that the more complex we make 
our installs/upgrades, the more we begin to build a DSpace which 
requires (or highly recommends) that institutions need to have a 
developer to install/use DSpace software.  I want to avoid this 
direction, as in reality, we are trying to support a community of 900+ 
institutions who all currently run DSpace (and have many different 
levels of developer support available).  In itself, this small change to 
install instructions may not add much additional complexity, but I just 
wanted to bring up this concern (which has been in the back of my mind 
for some time).

In my mind, the root of the matter is that we *don't* use Maven just as 
a development tool (it's also our "installer").  If it was only for 
development, Sands is correct that our choices would be obvious.
E.g. if we had something like a OneJAR installer 
(http://one-jar.sourceforge.net/), similar to Fedora, we wouldn't need 
to require Maven for all installs/upgrades (and we could recommend it 
only for sites with developer support or having extra customization needs).

> As for #2, yes, we can recommend that developers should always include
> this switch to run the tests, but the reason that it is default behavior
> in Maven is because inevitably, people take short-cuts or forget to
> cover their bases, as good as a community is at being comprehensive. I
> think this should stay as a default, as it was intended.

Couldn't we setup a Continuous Integration server to help keep us 
honest?  We could have a Bamboo server set up to auto-run these tests on 
a regular basis and let us know if developers are taking short-cuts or 
accidentally forgetting to cover their bases.  So, there may be other 
ways to still get the benefit of the ongoing unit testing (if we decide 
we need to disable unit testing by default).

I should mention, I'm really just trying to advocate for more discussion 
of options here (i.e. I'm not trying to force us into a particular 
direction). If we all determine that it's not a big deal to change our 
install instructions to require the extra flag to disable testing, then 
that's fine.  I just wanted to point out that we need to think about how 
this change may/may not affect all 900+ institutions using the software 
and not just our smaller, highly dedicated team of developers.

- Tim

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to