logo       

Sponsor
FREE Network Mapping Tool for Microsoft® Office Visio® Professional 2007
Don't map your network by hand - let LANsurveyor Exx press for Microsoft Visio Professional 2007 automatically create network diagrams for you!

Re: Contributing to Derby, Tips and Tasks To Get You Started: msg#00538

apache.db.derby.devel

Subject: Re: Contributing to Derby, Tips and Tasks To Get You Started

This is great, Kathey, thanks!

David

Kathey Marsden wrote:

A while a go I promised a list of tasks that might be appropriate for
folks just starting out with Derby. Here is a shot at that. Could someone pick it up and format it for the website if it looks helpful?
It will have to be a living document so things get removed as they are fixed and new ones get added. It would also be nice to have a volunteer to keep it maintained and pester derby-dev from time to get suggestions for new items for the list.

Does anyone know of a good, "How to Get Started in Open Source Development"
article.
That might be nice to add too.

Thanks

Kathey

--------------------------------------------------------
Contributing to Derby, Tips and Tasks To Get You Started

So you are new to Derby and want to contribute right away. Here are some ideas to get you started.

Ongoing Projects

Below are some ongoing projects, which are great starting places and always
available.

Test the Documentation
Pick a manual, review it carefully and test all the examples. If you find something that looks wrong post a question to derby-user-1oDqGaOF3Lm4UlQgPVntAg@xxxxxxxxxxxxxxxx If the community confirms it as a documentation bug, file a Jira entry.


Answer User Questions

Answer user questions as they come in to
derby-user-1oDqGaOF3Lm4UlQgPVntAg@xxxxxxxxxxxxxxxx Make sure bugs get filed
properly when they come up. File bugs for documentation corrections and update
FAQ's.


Add Functional Tests

Until we have 100% code coverage we know there are still opportunities to enhance functional testing. See https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/derby/code/trunk/java/testing/README.htm for information on writing tests. Write the tests and if you hit something that doesn't work, post a question to derby-user-1oDqGaOF3Lkdnm+yROfE0A@xxxxxxxxxxxxxxxx for confirmation. If the community confirms it as a bug, file a Jira entry.

Add More Existing Tests To the Network Server Suite.

This is entered as Derby-209. Choosing this as an initial task will help you
come up to speed on the test harness and network server.

Add Stress and Scalability Tests

Choose something that Derby does and push it to the limit. Some of these kinds
of tests can be incorporated into the functional test framework. For example
Derby 216 is a task to expand on the test case for Derby-176 related to cases
where large amounts of byte code are generated.


Provide Benchmark / Performance Examples:

Derby could use some contributions in the benchmark/performance example area.
This is a good area for someone who wants to learn any of java, jdbc, sql
and/or derby. It would be nice to have some public examples applications/code
which runs well in the derby embedded server domain.
Extra credit:
o compare/contrast performance of same application with other dbs.
o implement public domain standard benchmark.


Write Tests for an Upcoming Feature

You may ask how you can do this, but because Derby is standards based, you can
often install your second favorite relational database software, one that has
the feature already implemented and run your tests against that. Then you can
post your test to the Jira entry. This will facilitate implementation and
improve quality.

Apply, Test and Review Patches
Apply, review and test patches that have been posted for review. Really make a
careful detailed review, try to understand all the code and if you don't, ask
questions about it. Look at the functional tests supplied and see if you can
think of additional cases that could be added. This is a highly valuable task.
If the committers don't have community members doing this, they spend all their
time reviewing and committing and never contributing themselves. This task
will help preserve the quality of Derby.

Cleanup and Expand Javadoc

In addition to Derby-204, to cleanup the javadoc warnings. Much of the javadoc
could be expanded and improved upon. package.html files can be created to give
a package overview. Committers are always happy to assist, review and
expedite these kinds of contributions because they enhance the overall
competency of the community.


First Code Changes

For your first code change choose something that looks really easy. Something you can do and do well. This will be something different for different people. The point of your first change should be to go through the whole process and be comfortable with it before taking on major coding projects.
A "Do no harm" mantra is always important if you are considering changing
Derby. Your first priority in introducing any new functionality should be to not
introduce a regression in functionality or performance.

Reference Materials

For general process and guidelines see:
http://db.apache.org/guidelines.html
http://www.apache.org/foundation/how-it-works.html
For the mechanics of building Derby and submitting a patch see
http://incubator.apache.org/derby/derby_downloads.html
http://incubator.apache.org/derby/derby_comm.html

For Derby Internals
http://incubator.apache.org/derby/papers/index.html
Read the javadoc.


Below are some tasks that are may be good candidates for first changes.

Derby-204
Cleanup Derby javadoc warnings. Take a tour of the code and add great value.
Feel free to take a subset of the javadoc in an area that interests you.

Derby-209 Add more tests to Network Server.
Learn about Network Server, the test harness, and help improve network server
quality.


Derby-205
Rename org.apache.derby.impl.drda.DB2jServerImpl to NetworkServerControlImpl. A
useful cleanup project to take you through the change cycle.

Derby-243
connection toString() doesn't give enough information

Derby-216
Derby-176 test case. Try to identify cases where Derby generates byte code that
exceeds the JVM Specification limits. This is an interesting white box testing
task that can be a good entry point if you are interested in code generation or
code paths for different types of queries.

Derby-180
XCL47 SQL State duplicated in messages_en.properties. Go through the code
change process and learn about how Derby Handles SQLStates


Derby-212
Optimize some specific methods in Network Server. A targeted place to get
started in Network Server and improve Network Server performance.


Derby-211
Network Server returns no result sets for a procedure call that returns no
result. A protocol fix that will help us work toward network server/ embedded
compatibility

Derby-51

Need NetworkServerControl shutdown API method that does not shutdown derby
embedded. This will allow applications that embed network server to shut down
the server and continue with embedded access.

Derby-17
Network Server Needs to generate CRRTKN on ACCRDB if client does not send it


Derby 104
Get rid of the Max length of 18 for constraint names. Help Jira and other
applications migrate to Derby easily.

Derby 223
Change programs under demo directory to use consistent package names so IDEs do
not report errors

Derby-197

Add tip for Windows users in BUILDING.txt file regarding file paths in the
ant.properties file. Save new folks a lot of time.

Derby-117

Try out patch for Derby 117 and verify changes. Good introduction to the
Network Server Servlet


Derby 213
ResultSet.next() after last row of FORWARD_ONLY cursor throws an SQL Exception
with Network Server


DERBY-229
Column names on ResultSet.updateXXX and getXXX methods are handled incorrectly
DERBY-203
setNull(x,JDBCType.DATE) does not work when batching is turned on

DERBY-195
isSearchable() returns true for a calculated field
DERBY-194
getPrecision() on TIME and TIMESTAMP is zero
DERBY-163
Timestamp formatting
DERBY-39
Strange error in JOIN ON clause


Derby client Tasks

There are some very time critical Derby client tasks that are fairly large but
great starters in terms of difficulty. There is no component for Derby client
in Jira yet. So they don't have JIRA numbers.

Match embedded SQL States wherever possible. The client tends to throw errors with null SQLStates or SQLStates that don't match embedded. It would be great to get them matched up before release.

Document areas of embedded incompatibility and file JIRA entries
In addition to the SQLStates, there may be additional incompatibilities with the embedded driver. These could be indicated in the documentation as areas that may change, so we don't get locked into any incompatibilities. This task could be done in conjunction with Derby-209.
















Only community members can participate in forum threads. You must Register or log in to contribute.

<Prev in Thread] Current Thread [Next in Thread>
Sponsor
FREE Network Mapping Tool for Microsoft® OfficeVisio Professional 2007
Don't map your network by hand - let LANsurveyor Express for Microsoft Visio Professional 2007
automatically create network diagrams for you!
Google Custom Search

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe

Navigation

Home | sitemap | advertise | OSDir is an inevitable website. super tiny logo