This document discusses contributing to the Nuxeo EP platform by providing translations, reporting issues, developing add-ons, and staying engaged with the community. It encourages contributions through Nuxeo Studio, themes, patches, modules, and discusses coding best practices. Nuxeo aims to make contributing easy and wants to support contributors to ensure changes are integrated and supported. The community's engagement further improves the platform for all users.
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Contributing to Nuxeo EP - Rules and advices for contributors
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 studio and NXThemes users
●
●
for end 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
●
●
Desktop integration
●
●
we only speak English and French
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
➔
●
Modular platform assembly
➔
●
easy generation of business templates and addons
Marketplace package distribution system
➔
➔
can add features without modifying all Nuxeo
Studio generated plug-ins
➔
●
can build clean extensions
easy to package and distribute
Contribution is easier than ever
9
10. Time for contribution
●
the Nuxeo platform is ready
●
●
the Nuxeo team is ready to help
●
●
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
●
➔
we will invest more time on this :)
we know a lot of people have done small addons
●
●
it is tested in a lot of configurations and environments
embedded Nuxeo Server, Django bridge,
portal integration …
don't be shy,
contribute your work !!!
10
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 actions
●
define custom operation chains
●
define custom looks
●
define new filing plans
●
●
define custom types and forms
…
Nuxeo Studio is more and more used
●
by you
●
by us
17
18. Using Studio to contribute
●
Nuxeo Studio can be used to provide
●
●
small additional actions
●
●
Business templates
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
–
–
CSS
–
●
Presets
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
●
●
provide test case and test data if applicable
●
check you don't break the tests !
●
●
explain what issue you want to resolve
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
–
–
Quality Assurance & Continuous Integration (Hudson)
–
➔
issue tracking (Jira) / code repository (Mercurial)
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, …)
●
●
pay attention to your dependencies
●
write unit tests (TDD) !!!
●
●
follow coding standards
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
●
●
Documentation home : http://doc.nuxeo.com/
●
●
Forum : http://www.nuxeo.org/discussions
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