Contributing to Nuxeo EP Rules and advices for contributors Julien Carsique / Thierry Delprat
Agenda <ul><li>Contributing to Nuxeo EP </li><ul><li>what it means ?
why should you do it ? </li></ul><li>Small  contribution guide </li><ul><li>for end  users
for studio and  NXThemes  users
for developers </li></ul><li>Keeping in touch with the community </li></ul>
What is contributing ? <ul><li>Contributing to Nuxeo means helping us making the Nuxeo platform </li><ul><li>better for yo...
the users / developers community </li></ul></ul>
A win / win deal <ul><li>The platform gets better
You get  </li><ul><li>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) </li></ul><li>We get </li><ul><li>feedback and...
Contributing ? <ul><li>Contributing can take several paths </li><ul><li>testing and reporting problems
giving improvement ideas
submitting translations
helping us improving existing modules
building new modules
making Marketplace packages </li></ul></ul>
Some examples of contributions <ul><li>Translations and Tests
Additional modules </li><ul><li>Theme Editor (Chalmers University)
OpenSocial integration (Leroy Merlin)
Scenari integration and SDS (Kelis)
User Settings (Vilogia)
Preview initial implementation (Yerbabuena) ... </li></ul><li>Patches and code improvements </li><ul><li>Vilogia   (notifi...
Gagnavarslan  (WSS and hopefully more soon)
... </li></ul></ul>
Area where you can help <ul><li>Translations </li><ul><li>we only speak English and French </li></ul><li>Desktop integrati...
Unexpected use cases ! </li></ul>
Contributing to Nuxeo EP Why contributing now ?
Contributing is easy <ul><li>Nuxeo platform makes contribution easy </li><ul><li>Externalized translation files
Upcoming SlideShare
Loading in …5
×

Nuxeo World Session: Becoming a Contributor: How to Get Started

6,986 views

Published on

Presentation at Nuxeo World (Nov 17-18, 2010) on how to become a contributor to Nuxeo.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,986
On SlideShare
0
From Embeds
0
Number of Embeds
175
Actions
Shares
0
Downloads
13
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Nuxeo World Session: Becoming a Contributor: How to Get Started

  1. Contributing to Nuxeo EP Rules and advices for contributors Julien Carsique / Thierry Delprat
  2. Agenda <ul><li>Contributing to Nuxeo EP </li><ul><li>what it means ?
  3. why should you do it ? </li></ul><li>Small contribution guide </li><ul><li>for end users
  4. for studio and NXThemes users
  5. for developers </li></ul><li>Keeping in touch with the community </li></ul>
  6. What is contributing ? <ul><li>Contributing to Nuxeo means helping us making the Nuxeo platform </li><ul><li>better for your use cases </li></ul></ul>but also <ul><ul><li>better for everyone </li></ul></ul><ul><li>become an real Actor of </li><ul><li>the evolution of Nuxeo Platform
  7. the users / developers community </li></ul></ul>
  8. A win / win deal <ul><li>The platform gets better
  9. You get </li><ul><li>the improvements you need
  10. your changes are integrated and supported by Nuxeo (no maintenance issue because of patches)
  11. it makes your work easier (you get expertise and you build on vanilla code) </li></ul><li>We get </li><ul><li>feedback and improvements on our work </li></ul></ul><ul><ul><li>Everybody is happy ! </li></ul></ul>
  12. Contributing ? <ul><li>Contributing can take several paths </li><ul><li>testing and reporting problems
  13. giving improvement ideas
  14. submitting translations
  15. helping us improving existing modules
  16. building new modules
  17. making Marketplace packages </li></ul></ul>
  18. Some examples of contributions <ul><li>Translations and Tests
  19. Additional modules </li><ul><li>Theme Editor (Chalmers University)
  20. OpenSocial integration (Leroy Merlin)
  21. Scenari integration and SDS (Kelis)
  22. User Settings (Vilogia)
  23. Preview initial implementation (Yerbabuena) ... </li></ul><li>Patches and code improvements </li><ul><li>Vilogia (notifications, NTLM ...)
  24. Gagnavarslan (WSS and hopefully more soon)
  25. ... </li></ul></ul>
  26. Area where you can help <ul><li>Translations </li><ul><li>we only speak English and French </li></ul><li>Desktop integration </li><ul><li>very few MS Windows users in Nuxeo team </li></ul><li>OS specific packagings </li><ul><li>very few MS Windows users in Nuxeo team </li></ul><li>Connectors to third party applications
  27. Unexpected use cases ! </li></ul>
  28. Contributing to Nuxeo EP Why contributing now ?
  29. Contributing is easy <ul><li>Nuxeo platform makes contribution easy </li><ul><li>Externalized translation files
  30. Extension points and event bus systems </li></ul></ul><ul><ul><ul><li>can build clean extensions </li></ul></ul></ul><ul><ul><li>Modular platform assembly </li></ul></ul><ul><ul><ul><li>can add features without modifying all Nuxeo </li></ul></ul></ul><ul><ul><li>Studio generated plug-ins </li></ul></ul><ul><ul><ul><li>easy generation of business templates and addons </li></ul></ul></ul><ul><ul><li>Marketplace package distribution system </li></ul></ul><ul><ul><ul><li>easy to package and distribute </li></ul><li>Contribution is easier than ever </li></ul></ul>
  31. Time for contribution <ul><li>the Nuxeo platform is ready </li><ul><li>it is tested in a lot of configurations and environments </li></ul><li>the Nuxeo team is ready to help </li><ul><li>we will invest more time on this :) </li></ul><li>we know a lot of people have done small addons </li><ul><li>MS Outlook plug-in , Auth plug-ins , Business App connectors, Widgets ... </li></ul><li>we know some of you are doing amazing and unexpected stuffs with Nuxeo Platform </li><ul><li>embedded Nuxeo Server, Django bridge, portal integration … </li></ul></ul><ul><li>don't be shy, contribute your work !!! </li></ul>
  32. Don't wait <ul><li>A lot of contributions come from projects </li><ul><li>don't wait for a fully featured plug in before contributing </li><ul><li>chances are high that you may never have the time ! </li></ul></ul><li>Nuxeo Sandbox in available to host </li><ul><li>prototype code
  33. POC code
  34. demo code </li></ul></ul><ul><ul><li>give a chance for someone to finish the work ! </li></ul></ul>
  35. Contributing to Nuxeo EP User contributions
  36. Helping us with the translations <ul><li>The current way </li><ul><li>Take one of the 14 existing translations </li></ul></ul><ul><ul><ul><li>spot errors, fix them, upload patch on Jira </li></ul></ul></ul><ul><ul><li>Or create new translation from messages_en.properties file and upload on Jira </li></ul><li>The new way (coming in December 2010) </li><ul><li>New translation portal will allow collaborative editing of translations, workflow, etc. </li></ul></ul><ul><ul><ul><li>easier for non-specialists
  37. traceability of each message
  38. more visibility on the process </li></ul></ul></ul>
  39. Report ideas or problems <ul><li>You may </li><ul><li>find an issue when using your Nuxeo application </li><ul><li>installation problem
  40. functional limitation
  41. bugs on some screens
  42. ... </li></ul><li>have a super idea for a killer feature
  43. need some improvements in the platform (add an extension point, add an API …) </li></ul></ul>
  44. Report ideas or problems <ul><li>Support can help you
  45. You can also </li><ul><li>file a Jira ticket ( http://jira.nuxeo.org ) </li><ul><li>in the right project (Nuxeo EP/NXP could be the default)
  46. with the correct level of information </li><ul><li>give precise description and reproduction test case
  47. choose a « reasonable » priority level
  48. mark it for next release (we'll move it if needed)
  49. provide logs or meaningful screenshots </li></ul></ul><li>send a mail on the mailing list </li><ul><li>to explain your super idea and requirements </li></ul></ul></ul>
  50. Contributing to Nuxeo EP Studio and NXThemes user contributions
  51. Using Studio to contribute <ul><li>With Nuxeo Studio you can </li><ul><li>define custom types and forms
  52. define custom actions
  53. define custom operation chains
  54. define custom looks
  55. define new filing plans
  56. … </li></ul><li>Nuxeo Studio is more and more used </li><ul><li>by you
  57. by us </li></ul></ul>
  58. Using Studio to contribute <ul><li>Nuxeo Studio can be used to provide </li><ul><li>Business templates
  59. small additional actions
  60. simple ECM oriented applications </li></ul><li>We will improve this way of contributing </li><ul><li>more features in Nuxeo Studio
  61. direct publishing from Studio to Marketplace </li></ul></ul>
  62. Nuxeo Theme Editor <ul><li>The new Theme editor ease contributing </li><ul><li>editor now provides several access levels </li><ul><li>Presets
  63. CSS
  64. Complete layout and structure configuration </li></ul><li>theme engine now supports Theme Banks </li><ul><li>library of presets and themes accessible via http </li></ul></ul><li>We will leverage those new features </li><ul><li>to provide more themes
  65. to setup a public Theme Bank server </li></ul></ul>
  66. Contributing to Nuxeo EP Developer contributions
  67. The right approach <ul><li>Specific vs Generic </li><ul><li>carefully define what is generic and what is not </li><ul><li>we can help via Support / Jira / Mailing list / Forum </li></ul></ul></ul><ul><ul><li>we can not integrate code that is too much specific </li></ul></ul><ul><li>Communicate on what you want to do </li><ul><li>so that we know what you want to do
  68. so that we can guide you (existing addons , ongoing development, design, ...) </li></ul></ul>
  69. Patches and small evolutions <ul><li>Create a detailed JIRA ticket with attached diff </li><ul><li>explain what issue you want to resolve
  70. provide test case and test data if applicable
  71. check you don't break the tests !
  72. provide additional unit tests if needed </li></ul><li>Nuxeo Support manages </li><ul><li>bug fixes (of course)
  73. but also small convenient evolutions </li></ul></ul><ul><ul><ul><li>adding an extension point
  74. adding a system parameter
  75. small refactoring to make override easier </li></ul></ul></ul>
  76. Building new modules <ul><li>You should really talk about your module </li><ul><li>to the community and to Nuxeo
  77. before you start having too much code </li></ul><li>We can provide </li><ul><li>help and design guidance
  78. tools and infrastructure </li><ul><li>issue tracking (Jira) / code repository (Mercurial)
  79. Quality Assurance & Continuous Integration (Hudson)
  80. deployment service (Nexus & Marketplace) </li></ul></ul></ul><ul><li>future Nuxeo Forge waiting for volunteers ! </li></ul>
  81. Coding rules <ul><li>Why? </li><ul><li>we can only maintain maintenable code ! </li></ul><li>Nuxeo guide lines </li><ul><li>English only (Javadoc, comments, variable and method names, …)
  82. follow coding standards
  83. pay attention to your dependencies
  84. write unit tests (TDD) !!!
  85. align on the last version or on Snapshot </li></ul><li>Constraints depends on the type of contribution </li><ul><li>Sandbox (low) => Core (high) </li></ul></ul>
  86. Contributing to Nuxeo EP Keeping in touch with the community
  87. Keeping in touch <ul><li>Async communication </li><ul><li>Mailing Lists
  88. Forums
  89. Jira Tickets </li></ul></ul><ul><ul><li>Great places </li></ul></ul><ul><ul><ul><li>to explain requirements
  90. to discuss design </li></ul></ul><li>We can arrange direct communication </li><ul><li>eMeeting to quickly solve design issues
  91. Face to face when possible and needed </li></ul></ul>
  92. Keeping in touch <ul><li>Nuxeo Sprints </li><ul><li>next Sprints will be open to external developers </li></ul></ul><ul><ul><li>come coding with us
  93. come merge your code with us
  94. come help us fixing issues </li></ul></ul>
  95. Engage ! <ul><li>Useful links </li><ul><li>Contribution guide : http://doc.nuxeo.com/display/NXDOC/Nuxeo+contributors+welcome+page
  96. Forum : http://www.nuxeo.org/discussions
  97. Documentation home : http://doc.nuxeo.com/
  98. Source repository : http://hg.nuxeo.com/ </li></ul><li>Useful addresses </li><ul><li>Dev mailing list : [email_address] ( http://lists.nuxeo.com/mailman/listinfo/nuxeo-dev )
  99. User mailing list [email_address] ( http://lists.nuxeo.com/mailman/listinfo/ecm ) </li></ul></ul>
  100. Thank you!

×