On 4/7/2011 10:58 AM, Houx Zhang wrote:
Hi, all. I would like to apply for this GSOC on Derby and hope to get
your advice on my proposal. Thanks!
Thank you Houx for sending the proposal. I have not looked at it
closely but we are close to the deadline so I will throw a few things
out there. The most important thing is to get it submitted before the
deadline.
1) Make sure you mention how many hours per week this summer you plan to
work on Derby and if you have any other plans, travel commitments etc.
2) Include a section on your experience, not a complete resume but a
short summary what languages you have programmed in, relevant coursework
especially in database and Java and any programming projects you are
particularly proud of.
3) Include basic contact information and the name of your university and
whether you are an undergraduate or graduate student.
4) Make sure you talk to Tiago about having an IRC interview if you have
not already.
The ranking process is outlined at:
http://community.apache.org/mentee-ranking-process.html
Unfortunately the melange tool is different this year so it will have to
be adjusted slightly but these are the things that will be scored, so
you want to make sure that everything there is covered. In the past
around the cutoff line just a point or two makes a difference.
HTH and good Luck!
Kathey
What have I done on Derby?
I have joined Derby on March 3. In the past month, I have set up my
building and testing environment for Derby by the instructions in
wiki, read the source code and created and assigned some issues on
JIRA[1]. I have provided some patches for them, some of which have
been commited to the Deryby repository, and some others are in
discussion. In my work on Derby, I have received great help from other
developers the mailing list and JIRA, such as Kathey, Myrna, Bryan,
Knut..... Sometimes I actively launched a discussion in mailing list,
for example, "how to deal with test failure in Chinese locale" and
created issues related, which is also one source of my GSOC idea.
What will I do this GSOC?
My Task can be divided into 3 parts, and milestones are given accordingly:
1.Make testcases pass in non-English locale(April 20 to June 10)
As descripted in [2], there are a lot of derby testing depending on
the English locale, which will fail in a non-English locale. There is
a admitted way to resolve this problem. Firstly, find the junit test
cases that fails in non-English locale. For each of them, if it fails
just because the content of message is different from expected, a
assertion based on SQLState will be adopted; otherwise, a hard-code
locale will be used. If we find a test fails in non-English locale not
caused by locale itself, then we discover a good usage scenario.
I have basicly finished the first step "find the junit test cases that
fails in non-English locale". When running test cases in Chinese
Locale, I have got dozes of failure. Afeter checking the output, I
make sure most of them are caused by non-English Locale environment.
They concentrate in the two
packages----org.apache.derbyTesting.functionTests.tests.tools and
org.apache.derbyTesting.functionTests.tests.lang, and each test
classes may throw more than 5 exceptions. They are ImportExportIJTest,
SysinfoCPCheckTest in
org.apache.derbyTesting.functionTests.tests.tools, and
DynamicLikeOptimizationTest, GrantRevokeTest, InbetweenTest, JoinTest,
LangScripts, StalePlansTest, DistinctTest, GroupByTest, ForUpdateTest,
ScrollCursors1Test, ErrorCodeTest, TableFunctionTest,
PredicatePushdownTest, XplainStatisticsTest, XplainStatisticsTest,
XplainStatisticsTest, NistScripts(has dozes of failure),
LangHarnessJavaTest, OrderByAndSortAvoidance, OptimizerOverridesTest,
OffsetFetchNextTest, OrderByAndOffsetFetchInSubqueries in
org.apache.derbyTesting.functionTests.tests.lang. I plan to make the
24 test classes pass in non-English locale. The resolution is just
mentioned above "if it fails just because the content of message is
different from expected, a assertion based on SQLState will be
adopted; otherwise, a hard-code locale will be used."
Though these subtasks are very similar, and not so hard, considering
I'm not so free before summer holiday, 7 weeks are planned for them,
3-4 per week. Serial of patches will be given, each for one test
class, and each is in a separate issue.
2.Convert remaining store SQL tests into JUnit tests(June 11 to July 25)
In the package , some sql scripts need to be converted into JUnit.
They are RowLockBasic.sql, TableLockBasic.sql, longColumn.sql,
updatelocksJDBC30.sql, and updatelocks.sql. ScriptTestCase is not so
suitable for the new test cases, it will be better to re-write the
test by hand using standard JDBC calls and the utility methods and
decorators available[3].
Each of the five converting is not a easy work, so 7 weeks is planned
for these tasks. Issues will be created for each of them.
3.Converting ij[1-4].sqls to ScripTestCase (July 26-August 15)
In the package org.apache.derbyTesting.functionTests.tests.tools,
there are ij.sql, ij1,sql, ij2.sql, ij3.sql, ij4.sql, ij5.sql, ij6.sql
and ij7.sql, which are very suitable to converted to JUnit by
extending ScripTestCase[4].
Considering my experience on converting IJConnectionName.sql, the work
is not so easy. So 3 weeks is planned for it, and I just choose 4 of
them to realise. If time is OK, I will certainly try to do more.
[1] https://issues.apache.org/jira/browse/DERBY-5084
https://issues.apache.org/jira/browse/DERBY-5155
https://issues.apache.org/jira/browse/DERBY-4260
https://issues.apache.org/jira/browse/DERBY-4443
https://issues.apache.org/jira/browse/DERBY-5155
[2] https://issues.apache.org/jira/browse/DERBY-5155
[3] http://wiki.apache.org/db-derby/KillDerbyTestHarness
[4] http://wiki.apache.org/db-derby/ConvertSqlScriptTestsToJunit
--
Houx Zhang