Felix Beyer wrote:
Hi Derby Community,

Hi Felix, great to see you back on the list.

some time ago I proposed some extensions to Derby, which allow easy query explanation. Now I´m back with a backward-compatible, extensible, efficient and working solution for my proposals.

Wow, this sounds great.  It'll be fun to see this in action!

<snip high-level description of the changes>

(more details are coming, if you`re interested)

The more detail you are willing to provide, the better. One good way to do so is to post a document (such as text file or HTML) with as much detail as you're willing to write when you post your changes. Though of course you should feel free to post your changes first and then add explanatory documents later as (and if) you feel appropriate. You also may want to consider adding the details to the Derby wiki pages (see below for some links to the wiki)--but that's not a requirement, just a suggestion.

Finally I`ve included a screen shot of our demo application, which was extended to be able to print out the query plan in a DB2-similiar way and color code. The picture should answer all arising questions about the possibilities of the new explain functionality.

This demo screen-shot looks fantastic, both visually and functionally. I'm definitely looking forward to using it to explore more of what you've done.

I`d like to contribute the explain functionality and a cut version of the demo (without the sampling stuff) to the Derby community.

Excellent news! Just out of curiosity, what part of the demo screen shot constitutes "the sampling stuff"?

What do I have to do to successfully provide my code?

I think this depends on the current state of your changes. If you're already working with a Derby svn client then code contribution should be fairly straightforward. If you just grabbed a source jar file and are working from that, there's a little more work to do, but overall it shouldn't be too bad.

Either way there are quite a few Derby pages that are intended to help developers like yourself become contributors for the Derby project. A good starting point might be the following page:

  http://db.apache.org/derby/derby_comm.html#Contribute+Code+or+Documentation

A lot of information is also on the Derby wiki, to which there are several links from the above page. Some specific pages you may want to visit:

Downloading the Source Code (aka. creating an "svn client")
  => http://db.apache.org/derby/dev/derby_source.html
  => See esp. "Development trunk"

"Derby Development"
  => http://wiki.apache.org/db-derby/DerbyDev
  => See esp. "Getting Started on Development"

"Information for new developers"
  => http://wiki.apache.org/db-derby/ForNewDevelopers
  => See esp. "Check out, build the code, and run the tests"

"Contributor Checklist"
  => http://wiki.apache.org/db-derby/DerbyContributorChecklist
  => See esp. the ICLA information

"Derby Commit Process"
  => http://wiki.apache.org/db-derby/DerbyCommitProcess

I know that's a lot to take in at once, so here's a shorter version:

1. Create a new Jira issue, mark is as an enhancement, and assign it to yourself.

2. Create an svn client if you don't already have one. If you do already have one, make sure to do "svn update" to sync it with the latest trunk.

3. Incorporate your changes into the Derby svn client, get everything building, and run these two Derby test suites:

    // Takes three to four hours on my own laptop.
    java org.apache.derbyTesting.functionTests.harness.RunSuite derbyall

    // Takes 30 to 40 minutes on my laptop.
    java junit.swingui.TestRunner -noloading
        org.apache.derbyTesting.functionTests.suites.All

4. Create a patch ("svn diff") with your changes and attach the patch to the Jira issue you created in step 1. Also feel free to attach any other documents (such as the ones you had in your last email and/or any docs with more details).

NOTE: You should feel free to contribute your changes incrementally using several smaller patches instead of one big one. In fact, that's usually the best way to do it (makes it easier to review, test, and commit). But again, that's just a suggestion.

For help with any part of any of these four steps, see the links I mentioned above, and of course feel free to post whatever questions you may have to derby-dev. If you don't get a timely response, ask again--it's nothing personal, people are just busy and sometimes we miss things...

Thank you for taking the time to work on this project, and for your willingness to contribute back to the community. I look forward to using your contributions in the near future!

Army

Reply via email to