Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Nuxeo World Session: Becoming a Contributor: How to Get Started
1. Contributing to Nuxeo EP
Rules and advices for contributors
Julien Carsique / Thierry Delprat
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 9
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 …
10
➔
don't be shy, contribute your work !!!
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 !
11
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 13
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 …)
14
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 15
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 17
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
18
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
19
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, ...)
21
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 22
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 !
23
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) 24
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
26
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
27
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 : nuxeo-dev@lists.nuxeo.com
(http://lists.nuxeo.com/mailman/listinfo/nuxeo-dev)
● User mailing list ecm@lists.nuxeo.com
(http://lists.nuxeo.com/mailman/listinfo/ecm) 28