Hi Everybody,
I really want to contribute with openEHR Java RI project, and how do
I become a developer?
Thanks,
Humberto
Great, welcome!
I see you have subscribed to the list, which is the first step.
Have you downloaded the code from subversion and build it through
maven so that all tests passed?
Rong (project lead) has created a hands-on coding exercise which he
presented at the Medinfo conference in August. I believe it is a good
introduction into the source code and I am in the process of writing a
step-by-step guide about it. Should be done soon (hopefully end of
next week). You could be one of the first users of it. But if you are
impatient and experienced with Java just ask Rong to send you the
tutorial source code. He has created a couple of function stubs that
need to be filled and he also provided the solutions.
Cheers, Thilo
Hi Humberto,
Welcome to the Java project! =)
Before you jump into the Java source code, maybe you could look through the design specifications from here:
http://svn.openehr.org/specification/TAGS/Release-1.0.1/publishing/roadmap.html
And you probably want to have a look at the road map (draft) for the Java project:
http://svn.openehr.org/ref_impl_java/TRUNK/docs/roadmap.htm
It will be helpful to introduce yourself so we know a little bit about you and your intention with the Java project, e.g. do you currently use any of the Java components from the project? What part of the Java implementation that you are interested? Is there any time constraint of your project that you need to speed up the development for certain part of the Java implementation?
By the way, the source for the coding session used for Medinfo openEHR Implementation Workshop is already online:
http://svn.openehr.org/ref_impl_java/BRANCHES/sandbox/openehr-tutorial/
Cheers,
Rong
Hooray!
Yes, I have already downloaded (checked out the code from subversion)
and compiled the project with Maven2! (There were some problems with
some tests, by I used -Dmaven.test.skip=true)
I am currently trying to make an cADL validador, using the constructed
model from the parser, and a dADL object builder.
Is it possible to submit the code to subversion? (Maybe in a folder
inside branches)
See ya,
Humberto
Hooray!
Yes, I have already downloaded (checked out the code from subversion)
and compiled the project with Maven2! (There were some problems with
some tests, by I used -Dmaven.test.skip=true)
Which component has failing tests? We need to know what is broken and it should be fixed right away.
All the core components from the trunk are monitored by a Continuous Integration server at http://openehr.cambiosys.org/continuum, the only exception is the rm-builder component. It was migrated from 0.95 branch initially, but now it seems it will take some more time due to the need of API re-design. I would like to move it to sandbox branch if no one objects.
I am currently trying to make an cADL validador, using the constructed
model from the parser, and a dADL object builder.
Is it possible to submit the code to subversion? (Maybe in a folder
inside branches)
The current adl-parser can parse cADL and dADL at same time (one phase parsing), although it would be better if the parsing can be separated into two phases. This needs to be done if we want to add ADL 2.0 support later. If you have already/are doing that, it would be great if it can be contributed to the Java project.
But I guess what you are trying to do (based on the fact that you are using the model from the parser) is an AOM validator or Archetype Validator as mentioned on the roadmap of the project. It is relatively straight-forward and the current parser has already got some support on that, e.g. internal reference check. The best way is to extract that part from the parser into a standard-alone component for archetype or aom validation. Also there is some piece of code in the ehr-integration on the sand-box branch that can load all openEHR RM classes on given classpath. That logic should ideally be extracted and reused by other components, e.g. in the Archetype validation.
As for RM object construction based on archetypes, the above-mentioned rm-builder is created exactly for that purpose. But we need to work out a good API for that together. We should even consider a common API that will be used by openEHR system across platform.
About committing code to the Java project repository, my view is that one has to become a contributor and has been part of the project (and active on the email list) for some time to qualify as a committer. What’s the status of your code? If it’s already completed, perhaps can you send me a cut and if it looks OK I can commit the code for you. If you are interested in participating development of any components mentioned above, please also let me know.
Cheers,
Rong
Rong Chen said the following on 15/9/07 18:09:
About committing code to the Java project repository, my view is that
one has to become a contributor and has been part of the project (and
active on the email list) for some time to qualify as a committer.
What's the status of your code? If it's already completed, perhaps can
you send me a cut and if it looks OK I can commit the code for you. If
you are interested in participating development of any components
mentioned above, please also let me know.
Hi,
I too agree that committing code to the repository should be done by
contributors, or committers as they are called by Apache projects, that
are with the project for some time and are peer reviewed on the quality
of their contributions.
I would propose to change the terms slightly: contributors are all
people that want to participate and provide input and patches, new code
etc. Committers are contributors who have gained merits through their
contributions and given the right to commit to the code repository.
What should be clear is through which process a contributor can become
committer. Something along the lines of the Apache Foundation:
http://www.apache.org/foundation/how-it-works.html#meritocracy
This doesn't mean we HAVE to do it this way, I merely want to point out
a system that has proven its merits over time and that can be used as a
basis.
In my opinion the proposed contribution should go into a JIRA issue (is
JIRA already up and running?). This way all contributions are in the
open, for all contributors and committers to see and work on. When time
permits committers can take the code and integrate it into the code
base. Comments and questions on the contribution go into the JIRA issue
to keep things together.
Just my thoughts.
Bye, Helma
Good comments, Helma! I think it is a good way to go forward.
Before JIRA is up running, we probably should have a “current issues” page linked from the project page. I have already got several issues to be included on that page as a start. Others please post issues that you think are important for the Java project to work with.
I will soon put up a page about current committers and their current tasks or main responsible areas.
Cheers,
Rong
I couldn't agree more!
[]'s Humberto
About the failing tests, the current log is:
Results :
Failed tests:
testToTimeString(org.openehr.rm.datatypes.quantity.datetime.DvDateTimeParserTest)
testToDateTimeString(org.openehr.rm.datatypes.quantity.datetime.DvDateTimeParserTest)
Tests in error:
testCompareTo(org.openehr.rm.datatypes.quantity.datetime.DvTimeTest)
testToString(org.openehr.rm.datatypes.quantity.datetime.DvTimeTest)
testConstructorTakeString(org.openehr.rm.datatypes.quantity.datetime.DvTimeTest)
testParseTime(org.openehr.rm.datatypes.quantity.datetime.DvDateTimeParserTest)
Hi Humberto Naves,
This log seems to me that either your classpath is not sufficient to
build, or you don't have enough library to build.
Please show me your .classpath file and we may give you some
positive advice.
I am very interested in your contribution and your skill in Java. Would
you show me your source codes on some site?
Cheers!
It seems to be locale related. The DateTimeFormatter used for parsing has no specific locale and it could behave differently when new locale is used. What was the locale of the computer where you run the test?
/Rong
My current Locale is "pt-BR", Brazil.
Humberto