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

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)