Date post: | 13-Jan-2015 |
Category: |
Technology |
Upload: | julien-carsique |
View: | 44 times |
Download: | 2 times |
1
Contributing to Nuxeo EPRules and advices for contributors
Julien Carsique / Thierry Delprat
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
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
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 !
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
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)
...
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 !
8
Contributing to Nuxeo EPWhy contributing now ?
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
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 !!!
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 !
12
Contributing to Nuxeo EPUser contributions
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
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 …)
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
16
Contributing to Nuxeo EPStudio and NXThemes user contributions
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
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
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
20
Contributing to Nuxeo EPDeveloper contributions
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, ...)
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
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 !
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)
25
Contributing to Nuxeo EPKeeping in touch with the community
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
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
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)
29
Thank you!