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