On 2/24/07, Austin Ziegler <halostatue / gmail.com> wrote:
> On 2/24/07, Stephen Duncan <stephen.duncan / gmail.com> wrote:
>
> I may have a wrong impression of Maven, but if I do, it's not my fault:
>
>   * I don't use Java, so I don't need Maven.
>   * The OP's description of Maven was so overblown and useless as a
> description that I went to the Maven website.
>   * The Maven website is nothing but marketing-speak on the "about
> Maven" pages. I expect to find useful information somewhere for a
> project that isn't excessively large to deal with.
>
> Nothing on the Maven website suggested that it isn't trying to solve
> problems that simple Don't Exist in the Ruby world, and that trying to
> take a Maven approach to Ruby problems is AT BEST misguided.

That may well be true.  Which is why I won't be trying to take any
action to make anything Maven-like for Ruby until I have more
experience & work on enough things / a large enough project to feel
the pain points and decide that I, in fact, think the Maven approach
needs to be brought to Ruby.

> I also think that the OP is approaching his project the wrong way up
> front. How large is too large? Instead, ask what the minimum
> functionality can be logically delivered in each piece. Don't look at
> dividing an application in to twenty parts: look at making reusable
> functionality as libraries.
>
> These aren't things that software can help you do; you have to do them
> yourself. You can then have software help you manage those libraries,
> but a good source control system can deal with them.
>
> > There are some Maven functionalities that I'd like to see for Ruby (or
> > maybe I just don't yet know how to do them).  I'd like an easy
> > mechanism to have RubyGems store gems in a per-user location instead
> > of globally be default (I'm sure this is possible, but I just haven't
> > taken the time to do it yet).
>
> I wouldn't ever want this by default. However, "gem help install"
> points out the --install option where you can specify a gem
> repository. What I don't know is how you would tell RubyGems about
> this repository in your includes, or if RubyGems supports a per-user
> repository to be read before the system repository. These would be
> good questions to raise on the rubygems-devel list or, better yet, to
> investigate in the source and provide patches to make it happen if you
> really need it.
>
> I don't, and I can't see any reason to run the software that way.

Thanks for the info.  On whether it's a good idea, we'll just have to
disagree; I really think that system-wide shouldn't be the default.  I
do pledge that if I end up working enough with Ruby to justify the
time, I will work on solutions, and not whine about it on the mailing
list. :)

> > Then, I want a simple way to list the
> > gems my project depends on and run a Rake task to install those
> > dependencies.
>
> That's actually very simple for you to add to your own Rakefile. If it
> works well enough, you can suggest it as a standard rake task or offer
> it to Ryan for hoe.

Good to know.

> > The purpose here is to do the equivalent of what
> > running mvn eclipse:eclipse does for a Java project: allow me to check
> > a project out, run a single command, and then be ready to start
> > developing.  I don't know what the typical approach here for Ruby is.
>
> That really depends on the project. Unless things started showing up
> in hoe to enable what you're talking about, I doubt that any of my
> projects would be set up to work this way, for the most part. (That
> is, if you wanted to contribute to PDF::Writer, you would have to make
> sure you have Transaction::Simple and color-tools[1] installed
> yourself. I'm making changes to the PDF::Writer source, though, to
> make it easier to run the demos from the checkout tree without getting
> your already-installed version.)
>
> Of course, I suspect that most people who would start hacking on a
> project would have used the project first, so they would start by
> installing a project's gem -- and get its dependencies automatically.

I'm mostly thinking about working on unreleased projects where this
wouldn't apply.

> > I'd also like to have Hoe work equally well if I'm using Rspec vs.
> > test/unit.  On the documentation front, I'm pretty certain there are
> > features of the Maven site tools that I'll miss in Ruby, but I haven't
> > put in the work yet to learn how it's done in the Ruby world to say
> > for sure.
>
> I don't use rspec and I doubt that I ever will (I can't see any point
> to it; on the projects where testing can make any meaningful
> difference, I already use TDD to a T). I've seen nothing that suggests
> that hoe won't run well with rspec, though. Documentation-wise, I
> doubt it. Documentation in Ruby is achieved primarily through rdoc.
>
> If you want project tracking, use Trac or possibly one of the
> up-and-coming Rails replacements for Trac.

For site stuff here's what Maven does that I'm referring to.  It
allows you to use plugins to generate a variety of different
documentation with little work: list of dependencies (including
transitive ones), JavaDoc (Rdoc equiv), Source cross-referenced with
JavaDoc (which I guess Rdoc does by itself), project info (how to
connect to SVN, etc.), code coverage, static analysis, and the ability
to write your own documentation in a couple different formats: APT
(wiki-like), xdoc (xml/html type), FML (for faqs), etc.  For example:
http://www.stephenduncanjr.com/projects/easymock-propertyutils/index.html

As far as I know, the only thing I'd want in Ruby is the ability to
integrate my Rdoc with an Rcov report or something.  Like I said, I
don't know if there's anything important here.

> And, if I'm undersanding you correctly (and I think I am based on the
> marketing speak on the Maven website), it seems that Maven is a
> combination of a command-line tool to help you managed projects where
> you *use* the projects and a website to help you manage stuff similar
> to Trac. This is overengineered to me. It's trying to do entirely too
> much.
>
> It's a very Java approach to a problem that should be much simpler,
> but because Java isn't simple, nothing that comes out of Java is
> simple.
>
> > I do think that with Ruby there can be a better/cleaner version of
> > Maven, but I still feel that Ruby does need a Maven. :)
>
> Then build one. If people agree, they'll use it too.
>
> -austin
> [1] Soon to be color.
> --
> Austin Ziegler * halostatue / gmail.com * http://www.halostatue.ca/
>                * austin / halostatue.ca * http://www.halostatue.ca/feed/
>                * austin / zieglers.ca
>
>


-- 
Stephen Duncan Jr
www.stephenduncanjr.com