Difference between revisions of "Developers"

 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{DevelopersTopNav}}
 
{{DevelopersTopNav}}
  
geWorkbench is an open source platform and contributions by members of the community are welcome and encouraged. The latest code releases as well as technical documenation, forums and mailing lists can be found at the project's gForge page, http://gforge.nci.nih.gov/projects/caworkbench. If you are interested in working with us you can follow the '''''"Request to join"''''' link from that page.
+
geWorkbench is an open source Java-based platform and contributions by members of the community are welcome and encouraged. The latest code under development
 +
is hosted on GitHub
 +
https://github.com/geworkbench-group. Anonymous read access is supported for all the code.
  
Development in geWorkbench takes place along 2 paralles axes:
 
* <u>'''geWorkbench core'''</u>: this portion of the code includes mainly 2 groups of packages: ''engine'', which implements services related to the geWorkbench component architecture framework (e.g., plugin instantiation and visual layout, message delivery, component registry management, etc); and, ''bison'' ('''B'''iomedical '''I'''nformatics '''S'''tructured '''ON'''tology) which contains the definition of the bioinformatics data types which form the basis of communication between the geWorkbench plugins.
 
* <u>'''geWorkbench plugins'''</u>: this portion of the source tree contains the code for the various application plugin components. The [[Introduction for Developers]] section provides sample code for creating a simple plugin.
 
  
Contributing a new geWorkbench component is a logistically straightforward process and (logistically) can be accomplished in either of two ways: downloading the geWorkbench software development kit, setting up a local development environment and at the end of the development effort deliver to us a .gear archive file
+
Development in geWorkbench takes place along 2 lines:
<br/><br/><br/>
+
* <u>'''geWorkbench core'''</u>: this portion of the code includes mainly 7 groups of packages:
* [[Introduction_For_Developers|Introduction For Developers]]
+
# ''engine'', which implements services related to the geWorkbench component architecture framework (e.g., plugin instantiation and visual layout, message delivery, component registry management, etc)
* [[Devkit|Instructions]] for the Developer Kit
+
# ''bison'' ('''B'''iomedical '''I'''nformatics '''S'''tructured '''ON'''tology) which contains the definition of the bioinformatics data types which form the basis of communication between the geWorkbench plugins.
* [[Building geWorkbench]]
+
# ''builtin'', supporting the internal execution and coordination of the core process, especially the project panel
* Coding Standards [[Style Guide]]
+
# ''parsers'', parsing supports for input data format
* [http://caldev/workbench/api Javadocs]
+
# ''events'', event classes used by communication between all components and the core
* [[CVS Repository]]
+
# ''util'', all the utility libraries
* [[Screenshots]]
+
# ''analysis'', a small number of classes providing abstract for analyses and savable parameter settings. This group used to be called "others" to include miscellaneous; ''analysis'' is the only one left now. This probably will be re-organized in the future.
* Information on [[.GEAR files]], a method of distributing plugins.
+
* <u>'''geWorkbench plugin components'''</u>: this portion of the source tree contains the code for the various application plugin components (sample code for creating a simple plugin can be found [[A_Simple_Plugin |here]])
* [[Plugin certification checklist]]
+
 
 +
There are no restrictions on who can develop a new component for geWorkbench. You can work against the development version or a release version of the geWorkbench core. To contribute your component to geWorkbench code, you need write access to the subversion server. Please contact us for the procedure.
 +
Contributions to the geWorkbench core packages are more controlled in order to avoid changes that may adversely affect large numbers of plugins.

Latest revision as of 11:21, 13 November 2013

Developers Home | A Simple Plugin | geWorkbench Archive Files | Collaborative Development | Design Documentation | Javadocs | gForge Page | Report Defects


geWorkbench is an open source Java-based platform and contributions by members of the community are welcome and encouraged. The latest code under development is hosted on GitHub https://github.com/geworkbench-group. Anonymous read access is supported for all the code.


Development in geWorkbench takes place along 2 lines:

  • geWorkbench core: this portion of the code includes mainly 7 groups of packages:
  1. engine, which implements services related to the geWorkbench component architecture framework (e.g., plugin instantiation and visual layout, message delivery, component registry management, etc)
  2. bison (Biomedical Informatics Structured ONtology) which contains the definition of the bioinformatics data types which form the basis of communication between the geWorkbench plugins.
  3. builtin, supporting the internal execution and coordination of the core process, especially the project panel
  4. parsers, parsing supports for input data format
  5. events, event classes used by communication between all components and the core
  6. util, all the utility libraries
  7. analysis, a small number of classes providing abstract for analyses and savable parameter settings. This group used to be called "others" to include miscellaneous; analysis is the only one left now. This probably will be re-organized in the future.
  • geWorkbench plugin components: this portion of the source tree contains the code for the various application plugin components (sample code for creating a simple plugin can be found here)

There are no restrictions on who can develop a new component for geWorkbench. You can work against the development version or a release version of the geWorkbench core. To contribute your component to geWorkbench code, you need write access to the subversion server. Please contact us for the procedure. Contributions to the geWorkbench core packages are more controlled in order to avoid changes that may adversely affect large numbers of plugins.