Firstly I'd like to say I've just recently found MapTool, and I'm already a fan - Great job!
I'd like to get involved with contributing, but I'm finding the instructions and details around getting started is rather spread out. I'm finding it, but some of it looks dated, and it's hard to tell if something is current.
I figured I'd take my perspective as a newcomer to the project and mention the stuff I'm looking for - some of this I've already found, but I've added them here for reference. I'll write a follow-up post later with stuff I've found so far.
*Note:* Edited inline with answers
- Are there any eclipse plugins I should have in advance of getting started?
- What are all the projects in source that I should be paying attention to? (For MT in particular) the project appears to be split into a few projects now, including a library and the MT executable - I haven't dug too deeply yet, there looks to be potentially more...
- common.build (not required for eclipse builds)
- maptool
- maptool.resources
- parser (if you want to mess with the macro parser)
- rplib
- rplib.resources
- How do I get these projects into my eclipse environment?
- See this post from mid-2006
- Not that I'd be doing this, but what is the build process? How is a new build generated and where is it stored for consumption? (It appears to be built with a lot of manual steps and uploaded to the rptools.net website lib.php/<jar_name>
- I found a post regarding code style and auto-formatting here. Is there anything similar for testing? Unit tests, integration tests, regression tests? (I'm guessing there isn't much)
- Nope, not much testing
- I've seen a couple of different places where devs should post to indicate what they're working on - which one is the current one? Sourceforge has an issue list, and there is a wiki page for release notes. All great stuff, but there's a lot of places to look for this.
- No specific place at the moment
- Apache Maven. It's not perfect, and it has a learning curve, but if a project is using it, there is a predictable place for source code, resources, sub-projects, project settings, and so forth. Also, if you pull the whole source tree and run "mvn package" to build it all. To deploy, (assuming you had the right permissions), it should be a matter of running "mvn deploy" to build, package, verify, test, and upload.
- Jar Dependency Management with Apache Maven or Apache Ivy. You shouldn't have to force your contributors to download jars from your source code repository. From what I've seen the Maven Repositories are rather comprehensive when it comes to open source jars.
- Source Repository: Have you guys considered Git? It makes it much easier branch/merge operations for contributors, and patches should be easier to manage. SourceForge appears to support git, as does github.com, and assembla.com. Granted, Git is not as well integrated into Eclipse, but there are great advantages to be had.
- Bug/Feature lists should be tracked in a tool. There appears to be a Tracker on SourceForge, but it's pretty clunky compared to, for example Assembla Tickets or something similar. Also, with that kind of setup, there are Eclipse Integrations for MyLyn (see next point )
- Eclipse MyLyn! This is included in basic Eclipse installs these days - in a nutshell, you can integrate your bug/feature list in eclipse, edit the tickets directly in eclipse, and work with "contexts" which automatically narrows your workspace to what you've recently been looking at - it's hard to describe properly and do it justice. You can do things like fix a bug, package up the context and attach it to the ticket, so that if someone else needs to revisit the bug, they can import the context from the bug to see just the relevant parts of the project for that bug.