Hi,

IDEA project file creation is indeed a slippery thing. I use heavily modified version of idea7x myself (on IDEA 8) and have avoided upgrading to IDEA 9 partially because I don't want to deal with updating that task to work with 9 (if any are needed -- I haven't actually tried).

That said, I have been meaning to re-package my custom task as a gem. It seems to me that this is a better way to deal with IDEA support since none of the committers (AFAIK) use it. I agree that a base abstraction with output that would work with both 8 and 9 (at least) would be nice. Here are the features I have in my custom task (which is called iidea) over idea7x:

1) Detects VCS automatically (subversion and git only) with manual override 2) Automatically excludes all target and report directories from indexing 3) Supports manual configuration of source and test paths for each module 4) Supports low-level configuration of particular IML sections (by building XML directly in the buildr project definition)
5) Provides a "clean" task
6) Includes all buildr subprojects (not just ones that are packaged) but allows particular subprojects to be skipped using a project attribute

All of those except for (4) should be possible using a base abstraction. I'll see what I can come up with, though it will be a couple of weeks before I can really look at it.

FWIW, IDEA 8 still supports the file-based approach. (It's what I'm using with 8.1.4.) I don't believe in committing IDE project files (or anything else which is generatable) to VCS, so it works fine for me and my team. All the patches Alex brought up are minor changes to the existing idea7x code, so they use the file-based approach.

Alex, BUILDR-367 and BUILDR-376 are both genuine issues which I've fixed in my task. BUILDR-377 uses a feature of IDEA I'm not familiar with but which sounds useful. I haven't reviewed any of the patches, though.

Rhett

On Feb 24, 2010, at 8:46 AM, Shane Witbeck wrote:

A few things to consider:


1. I think we need to define which versions of IDEA these patches should work with. The last idea7x patch which I wrote was specifically for IDEA 7x. It seems each subsequent version of IDEA (8x and 9x) has had changes to the
  way they handle project and module files.
2. Version 8x of IDEA introduced a new way of defining project and module
  files. It's called the "directory-based" approach. I believe the new
approach was to make it easier to share project files among team members by checking into a source repository. The older project files apparently were hard to keep in sync because of merge conflicts, etc. Do these patches address the traditional project files or the new directory-based approach? 3. Having gone through the process of trying to keep changes in Buildr and IDEA project files in synch along with changing formats with each new IDEA version, I finally gave up. I propose a more clearly defined approach which addresses differences between IDEA project file version formats. Perhaps a departure from idea vs idea7x tasks and have one idea task with a
  param indicating which version to generate the project files for?

That all being said, I'm willing to help in this effort.

-Shane


On Wed, Feb 24, 2010 at 1:13 AM, Alex Boisvert <[email protected] >wrote:

On Tue, Feb 23, 2010 at 9:18 PM, Alex Boisvert <[email protected]
wrote:

Any committer wants to step in and review these patches?
https://issues.apache.org/jira/browse/BUILDR-376
https://issues.apache.org/jira/browse/BUILDR-377

I don't use IDEA and I'm not familiar with their project descriptions.


While we're at it there's also this one to be reviewed,
https://issues.apache.org/jira/browse/BUILDR-369

In lieu of specs (which are sadly missing for IDEA), I could be consoled if
fellow IDEA contributors cross-reviewed their patches.  i.e., Alexis
reviewing BUILDR-376/377 and Peter reviewing BUILDR-369, or anybody else...

Just indicate so on the issue itself to help expedite the process.

thanks!
alex


Reply via email to