Table of Contents
Contributing code
Want to develop for Evergreen or OpenSRF? Great! To get started, please take a look at
- new developer wishlist where a group of us are identifying what documentation needs to be developed to support new developers(some of the drafts of documentation being developed are here too)
For more technical details, read on.
Languages
Evergreen is an OpenSRF application, so in principle you can write an OpenSRF binding for any language you want (although we will be both seriously impressed and laugh at you if you create a BASIC binding). However, in practice, Evergreen makes use of just a few languages, and for the sake of maintaining your code and understanding it, please consider sticking with one of the following.
Language | Use |
---|---|
Perl | business logic; the vast majority of OpenSRF methods used by Evergreen are written in Perl. Note that this is Perl 5, not Perl 6. |
JavaScript | front end; important for both the staff client and the public catalog |
PL/pgSQL and PL/Perl | search code and some business logic |
HTML and CSS | public catalog and staff client |
Languages that are used for specific purposes include
Language | Use |
---|---|
C | core OpenSRF code; can be considered for middle-layer OpenSRF services if speed is important enough |
XUL | staff client layout |
Languages that are supported (partially or wholly) by OpenSRF but are not really in use by Evergreen include Java and Python.
Frameworks
Evergreen makes use of the following frameworks:
Name | Language | Use | Notes |
---|---|---|---|
Dojo | JavaScript | staff and public interfaces | Currently we use Dojo 1.3; help to upgrade us to |