You are viewing the PKP Support Forum | PKP Home Wiki

Development Guidelines

OJS development discussion, enhancement requests, third-party patches and plug-ins.

Moderators: jmacgreg, btbell, michael, bdgregg, barbarah, asmecher

Forum rules
Developer Resources:

Documentation: The OJS Technical Reference and the OJS API Reference are both available from the OJS Documentation page.

Git: You can access our public Git Repository here. Comprehensive Git usage instructions are available on the wiki.

Bugzilla: You can access our Bugzilla report tracker here.

Search: You can use our Google Custom Search to search across our main website, the support forum, and Bugzilla.

Questions and discussion are welcome, but if you have a workflow or usability question you should probably post to the OJS Editorial Support and Discussion subforum; if you have a technical support question, try the OJS Technical Support subforum.

Development Guidelines

Postby asmecher » Thu Sep 08, 2005 9:22 am

Contributing Code

The PKP team is happy to accept patches and development discussion in this forum. If you would like to have your patch included in the OJS codebase, we suggest discussing it with the OJS team before implementation to ensure that it suits upcoming development plans.

For code that is intended for inclusion in the main codebase:
  • Patches against a current Git checkout are preferred; alternately, patches against the most recent release version are acceptable. You may also submit pull requests via Github.
  • Unless agreed with the development team, users should be able to toggle contributed features between enabled and disabled with a single setting; the system behavior should not be modified when the feature is disabled.
  • The feature should be suitable for situations where very distinct journals are hosted within the same deployment; i.e. settings should generally be journal-level, not system-level.
  • The design patterns used in OJS 2.x should be understood and adhered to.
  • Localization standards should be maintained.
  • Database IDs should be checked as in the current codebase.
  • XSS (cross-site scripting) attacks should be checked as in the current codebase.
  • Contributors are responsible for writing code compatible with the primary platforms listed in README.
  • Contributions should be delivered to the team via this forum as a patch and/or as a Github pull request.
  • OJS 2.x management features should be kept in mind, such as upgrade and installation; all database schema information should be maintained in the dbscripts/xml/ojs_schema.xml file; etc.
  • The development team is happy to review contributed patches, but we have a limited amount of time to spend integrating patches with the codebase or modifying contributed code. If aspects of the code need work, we would rather inform the author and have them perform the modifications.

For contributions that are distributed separately as patches or plugins:
  • If contributors haven't met all the conditions above, they are welcome to distribute additional features as patches or plugins. However, the OJS team won't be able to provide support in this case.
  • If the option is available, coding a feature as a plugin is the preferred method.

Additional coding standards and information are available in the CVS repository in docs/README-DEV. Comprehensive design information is available at http://pkp.sfu.ca/ojs/OJSTechnicalReference.pdf.
Posts: 10015
Joined: Wed Aug 10, 2005 12:56 pm

Return to OJS Development

Who is online

Users browsing this forum: No registered users and 1 guest