Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Nuxeo World 2010 — Contributing to Nuxeo

Nuxeo World 2010 — Contributing to Nuxeo

Rules and advices for contributors to Nuxeo EP

Avatar for Julien Carsique

Julien Carsique

November 17, 2010
Tweet

More Decks by Julien Carsique

Other Decks in Programming

Transcript

  1. 2 Agenda • Contributing to Nuxeo EP • what it

    means ? • why should you do it ? • Small contribution guide • for end users • for studio and NXThemes users • for developers • Keeping in touch with the community
  2. 3 What is contributing ? • Contributing to Nuxeo means

    helping us making the Nuxeo platform • better for your use cases but also • better for everyone ➔ become an real Actor of ➔ the evolution of Nuxeo Platform ➔ the users / developers community
  3. 4 A win / win deal • The platform gets

    better • You get • the improvements you need • your changes are integrated and supported by Nuxeo (no maintenance issue because of patches) • it makes your work easier (you get expertise and you build on vanilla code) • We get • feedback and improvements on our work ➔ Everybody is happy !
  4. 5 Contributing ? • Contributing can take several paths •

    testing and reporting problems • giving improvement ideas • submitting translations • helping us improving existing modules • building new modules • making Marketplace packages
  5. 6 Some examples of contributions • Translations and Tests •

    Additional modules • Theme Editor (Chalmers University) • OpenSocial integration (Leroy Merlin) • Scenari integration and SDS (Kelis) • User Settings (Vilogia) • Preview initial implementation (Yerbabuena) ... • Patches and code improvements • Vilogia (notifications, NTLM ...) • Gagnavarslan (WSS and hopefully more soon) ...
  6. 7 Area where you can help • Translations • we

    only speak English and French • Desktop integration • very few MS Windows users in Nuxeo team • OS specific packagings • very few MS Windows users in Nuxeo team • Connectors to third party applications • Unexpected use cases !
  7. 9 Contributing is easy • Nuxeo platform makes contribution easy

    • Externalized translation files • Extension points and event bus systems ➔ can build clean extensions • Modular platform assembly ➔ can add features without modifying all Nuxeo • Studio generated plug-ins ➔ easy generation of business templates and addons • Marketplace package distribution system ➔ easy to package and distribute ➔ Contribution is easier than ever
  8. 10 Time for contribution • the Nuxeo platform is ready

    • it is tested in a lot of configurations and environments • the Nuxeo team is ready to help • we will invest more time on this :) • we know a lot of people have done small addons • MS Outlook plug-in, Auth plug-ins, Business App connectors, Widgets ... • we know some of you are doing amazing and unexpected stuffs with Nuxeo Platform • embedded Nuxeo Server, Django bridge, portal integration … ➔ don't be shy, contribute your work !!!
  9. 11 Don't wait • A lot of contributions come from

    projects • don't wait for a fully featured plug in before contributing – chances are high that you may never have the time ! • Nuxeo Sandbox in available to host • prototype code • POC code • demo code ➔ give a chance for someone to finish the work !
  10. 13 Helping us with the translations • The current way

    • Take one of the 14 existing translations ➔ spot errors, fix them, upload patch on Jira • Or create new translation from messages_en.properties file and upload on Jira • The new way (coming in December 2010) • New translation portal will allow collaborative editing of translations, workflow, etc. ➔ easier for non-specialists ➔ traceability of each message ➔ more visibility on the process
  11. 14 Report ideas or problems • You may • find

    an issue when using your Nuxeo application – installation problem – functional limitation – bugs on some screens – ... • have a super idea for a killer feature • need some improvements in the platform (add an extension point, add an API …)
  12. 15 Report ideas or problems • Support can help you

    • You can also • file a Jira ticket (http://jira.nuxeo.org) – in the right project (Nuxeo EP/NXP could be the default) – with the correct level of information • give precise description and reproduction test case • choose a « reasonable » priority level • mark it for next release (we'll move it if needed) • provide logs or meaningful screenshots • send a mail on the mailing list – to explain your super idea and requirements
  13. 17 Using Studio to contribute • With Nuxeo Studio you

    can • define custom types and forms • define custom actions • define custom operation chains • define custom looks • define new filing plans • … • Nuxeo Studio is more and more used • by you • by us
  14. 18 Using Studio to contribute • Nuxeo Studio can be

    used to provide • Business templates • small additional actions • simple ECM oriented applications • We will improve this way of contributing • more features in Nuxeo Studio • direct publishing from Studio to Marketplace
  15. 19 Nuxeo Theme Editor • The new Theme editor ease

    contributing • editor now provides several access levels – Presets – CSS – Complete layout and structure configuration • theme engine now supports Theme Banks – library of presets and themes accessible via http • We will leverage those new features • to provide more themes • to setup a public Theme Bank server
  16. 21 The right approach • Specific vs Generic • carefully

    define what is generic and what is not – we can help via Support / Jira / Mailing list / Forum ➔ we can not integrate code that is too much specific • Communicate on what you want to do • so that we know what you want to do • so that we can guide you (existing addons, ongoing development, design, ...)
  17. 22 Patches and small evolutions • Create a detailed JIRA

    ticket with attached diff • explain what issue you want to resolve • provide test case and test data if applicable • check you don't break the tests ! • provide additional unit tests if needed • Nuxeo Support manages • bug fixes (of course) • but also small convenient evolutions ➔ adding an extension point ➔ adding a system parameter ➔ small refactoring to make override easier
  18. 23 Building new modules • You should really talk about

    your module • to the community and to Nuxeo • before you start having too much code • We can provide • help and design guidance • tools and infrastructure – issue tracking (Jira) / code repository (Mercurial) – Quality Assurance & Continuous Integration (Hudson) – deployment service (Nexus & Marketplace) ➔ future Nuxeo Forge waiting for volunteers !
  19. 24 Coding rules • Why? • we can only maintain

    maintenable code ! • Nuxeo guide lines • English only (Javadoc, comments, variable and method names, …) • follow coding standards • pay attention to your dependencies • write unit tests (TDD) !!! • align on the last version or on Snapshot • Constraints depends on the type of contribution • Sandbox (low) => Core (high)
  20. 26 Keeping in touch • Async communication • Mailing Lists

    • Forums • Jira Tickets ➔ Great places – to explain requirements – to discuss design • We can arrange direct communication • eMeeting to quickly solve design issues • Face to face when possible and needed
  21. 27 Keeping in touch • Nuxeo Sprints • next Sprints

    will be open to external developers ➔ come coding with us ➔ come merge your code with us ➔ come help us fixing issues
  22. 28 Engage ! • Useful links • Contribution guide :

    http://doc.nuxeo.com/display/NXDOC/Nuxeo+contributors+welcome+page • Forum : http://www.nuxeo.org/discussions • Documentation home : http://doc.nuxeo.com/ • Source repository : http://hg.nuxeo.com/ • Useful addresses • Dev mailing list : [email protected] (http://lists.nuxeo.com/mailman/listinfo/nuxeo-dev) • User mailing list [email protected] (http://lists.nuxeo.com/mailman/listinfo/ecm)