Getting started with XWiki for extension developers
Last modified by Thomas Mortagne on 2017/03/24 12:15
This is supposed to be a Getting Started guide for developers that want to work on the XWiki.org project or that just want to build a project on top of XWiki.
It is just a collection of already existing documentation resources, but gathered in one reference place and structured in an order that should reflect a good flow for the learning process.
For the record, there also already exist a Getting Started guide for users.
A. XWiki Product presentation
- wiki model (page, space, wiki) (objects, classes)
- major features we have (document lifecycle [CRUD, versioning], comments, attachments, EM, AWM, livetable, Administration, Rights, Import/Export, Users/Profile, Dashboard, Annotations, REST, Panels, AS, SOLR, WYSIWYG, Syntax, Macros [Content/Code], Skins/Themes, Internationalisation, Extensions)
- http://enterprise.xwiki.org/xwiki/bin/view/UserGuide/WebHome
- http://enterprise.xwiki.org/xwiki/bin/view/Main/Features
- can be compared with http://platform.xwiki.org/xwiki/bin/view/Main/WebHome to understand how the XWiki Enterprise product is built on top of the platform and adds default applications
- what is the future vision (flavours, design.xwiki.org, cycle theme)
B. XWiki Product Development Process
- http://www.slideshare.net/Enygma2002/development-process-the-xwiki-way
- http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HGeneralDevelopmentFlow
- http://dev.xwiki.org/xwiki/bin/view/Main/WebHome
- what happens in the community development area
- development cycle: release, roadmap, tools we use: mailinglists, irc, issue tracker, ci, l10n, etc.
C. Finding documentation and reporting issues
- how to find documentation (about the features, about the development platform) (user, developer, admin guides)
- http://www.xwiki.org/xwiki/bin/view/Main/Documentation
- http://enterprise.xwiki.org/xwiki/bin/view/Main/Features and http://extensions.xwiki.org/xwiki/bin/view/Main/WebHome
- http://enterprise.xwiki.org/xwiki/bin/view/UserGuide/WebHome
- http://platform.xwiki.org/xwiki/bin/view/AdminGuide/WebHome
- http://platform.xwiki.org/xwiki/bin/view/DevGuide/WebHome
- how to know if something is broken (across skins, release notes, blaming)
- how to report an issue on these features or knowing that your problem is already fixed
D. Contributing an extension
- Finding extensions on e.x.o
- Installing extensions with/without EM
- Creating new extensions with/without AWM
- Publishing an extension on e.x.o:
- publish a XAR
- contrib.xwiki.org
- creating a repo, a jira project, e.x.o page for your extension
- releasing the extension
- http://contrib.xwiki.org/xwiki/bin/view/Main/WebHome
- Contributing to an existing extension
- creating a pull request
E. Contributing back to the product
- Comparison with contrib (repos layout, pull requests, reviewing process, discussions, etc.)
- Ways you can help
- Guidelines and Best Practices
- http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices
- http://dev.xwiki.org/xwiki/bin/view/Community/CodeStyle
- http://dev.xwiki.org/xwiki/bin/view/Community/ApplicationDevelopmentBestPractices
- alternative draft (not official for the product): http://dev.xwiki.org/xwiki/bin/view/Drafts/Best+Practices+XWiki+Application+Organization