DokuWiki

It's better when it's simple

User Tools

Site Tools


development

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
development [2020-04-12 23:11]
RamonMR old revision restored (2020-04-12 20:39)
development [2020-04-13 00:13] (current)
schplurtz old revision restored (2020-04-12 23:18)
Line 1: Line 1:
-putos+====== DokuWiki Development ====== 
 +You are welcome to contribute to DokuWiki and join the development.
  
 +What you want to contribute is of course up to you---you should scratch your own itches first. If you need some ideas of what is missing you should have a look at the [[bugs|bugtracker]] or on the [[devel:ideas|idea pages]]. You could also consider [[devel:adoption|adopting a plugin or template]]. Begin by reading the [[#Getting Started]] chapter.
 +
 +Working together is more fun. The DokuWiki community needs a lot of different skills and is organized in [[teams]]. Please feel free to join one or just hang around the [[mailinglist]] and [[irc|irc channel]] for development talk. There are also [[devel:irc_meetups|regular IRC meetups]], [[devel:bughunting|bughunting weekends]] where eh, bugs are fixed, and sometimes developers meet IRL at DokuWiki [[devel:hackfest]].
 +
 +DokuWiki was a mentoring organization for 2011's [[devel:gsoc|Google Summer of Code]]. If you are interested in getting involved with DokuWiki development via this kind of initiative please contact us.
 +
 +===== Getting Started =====
 +
 +  - [[devel:Git]] - Obtaining the code and working with Git((the VCS used for DokuWiki development))
 +    - [[devel:github|Working with Github Pull Requests]]
 +  - [[devel:coding_style|Coding Style]]
 +  - [[devel:Composer]]
 +  - Editor Setup
 +    - [[devel:VIM]]
 +    - [[devel:IntelliJ Idea]] (or PHPStorm) {{http://www.jetbrains.com/img/logos/logo_intellij_idea.png?80&nolink}}
 +  - [[devel:Security]]
 +  - Testing
 +    - [[devel:unittesting|Unit Testing]]
 +    - [[devel:browserstack|BrowserStack]] browser testing {{browserstack-logo.png?100&nolink}}
 +  - [[devel:Patches]]
 +  - [[devel:Debugging]]
 +
 +===== The Development Manual =====
 +
 +  - [[devel:Overview]], walk through of how a page request is served
 +    - [[devel:dirlayout|Directory Layout]]
 +    - [[devel:Environment]] - global variables and defines
 +      * Accessing [[devel:request_vars|Request Variables]]
 +      * [[devel:Session handling]]
 +      * [[devel:Preload]]
 +    - [[devel:Autoloader]] 
 +    - [[devel:Callgraph]]
 +    - [[devel:Locking]]
 +    - [[devel:Action Modes]]
 +    - [[devel:caching|Caching facilities]]
 +    - [[devel:Parser]]
 +    - [[devel:Metadata]]
 +    - [[devel:fulltextindex|Fulltext Index]]
 +  - [[devel:Plugins]]
 +    - [[devel:Plugin File Structure]]
 +    - [[devel:Common Plugin Functions]]
 +    - [[devel:Action Plugins]]
 +      * [[devel:events|Event System]]
 +      * [[devel:events_list|Events Overview]]
 +      * [[devel:event_handlers|Event Handlers]]
 +      * Examples of [[devel:event handlers code]]
 +    - [[devel:Syntax Plugins]]
 +    - [[devel:Helper Plugins]]
 +    - [[devel:Renderer Plugins]]
 +    - [[devel:Admin Plugins]]
 +    - [[devel:Remote Plugins]]
 +    - [[devel:Auth Plugins]]
 +    - [[devel:CLI Plugins]]
 +    - [[devel:unittesting#plugin_and_template_tests|Plugin and Template Unittests]]
 +    - [[devel:toolbar|The Toolbar]]
 +    - [[devel:Plugin Programming Tips]]
 +  - [[devel:Templates]]
 +    - [[template:Starter]] template - Basic building block for new templates
 +    - [[devel:Menus]]
 +    - [[devel:style.ini|style.ini]] - CSS: loading styles and setting variables
 +  - [[devel:Configuration]]
 +  - [[devel:Localization]]
 +  - [[devel:CSS]]
 +    - [[devel:LESS]] preprocessor
 +  - [[devel:JavaScript]] (jQuery, jQueryUI)
 +    - [[devel:jqueryfaq|jQuery FAQ for Plugin Developers]]
 +  - Internal Libraries
 +    - [[devel:utf-8|UTF-8 String handling]]
 +    - [[devel:request_vars|Request (GET/POST) variable handling]]
 +    - [[devel:mail|E-Mail Sending]]
 +    - [[devel:httpclient|HTTP Client Library]]
 +    - [[devel:simplepie|RSS Parser]]
 +    - [[devel:json|JSON Parser/Writer]]
 +    - [[devel:form|Forms]]
 +  - Composer Libraries
 +    - [[devel:geshi|GeSHi Syntax Highlighting]]
 +    - [[devel:phparchive|Zip and Tgz Compression/Decompression]]
 +  - [[devel:custom webservices|Web Services]]
 +    - [[devel:XMLRPC|XML-RPC]]
 +  - Further Resources
 +    - [[http://xref.dokuwiki.org/reference/dokuwiki/|Development API Reference]]((built daily))
 +    - [[devel:snapshots|Daily Snapshots]]
 +    - [[devel:releases|Developers' Release notes]]
 +    - [[https://github.com/splitbrain/dokuwiki|Git Webinterface]] for browsing the source and patches
 +    - [[https://www.openhub.net/p/dokuwiki/contributors|Hall of Fame]] - all DokuWiki contributors
 +
 +===== Development Team Guides =====
 +
 +  - [[devel:coredevs|How to become a Core Developer]]
 +  - [[devel:release_process|Release process and information on building a release]]
 +
 +===== Ideas and brainstorms =====
 +
 +  * Planning an external [[devel:Security Audit]] of DokuWiki
 +  * [[devel:Ideas|Ideas with some concepting]] that could be picked up and implemented by (new) DokuWiki developers.
 +  * Plans for more radical [[devel:Template changes]]
 +  * DokuWiki [[devel:Refactoring]]
 +  * [[devel:Farm]] - ideas for [[tips:farm|tips:farm]]
 +  * Some remarks on [[devel:Memory footprint reduction]]
 +  * Brainstorm about [[devel:scalability]], [[devel:scalability_proposal]]
 +  * Brainstorm [[devel:Tagline]] for dokuwiki.org
development.1586725901.txt.gz · Last modified: 2020-04-12 23:11 by RamonMR