SlideShare a Scribd company logo
1 of 29
Download to read offline
Contributing to Nuxeo EP
Rules and advices for contributors
Julien Carsique / Thierry Delprat

1
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
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
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
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
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
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
Contributing to Nuxeo EP
Why contributing now ?

8
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
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
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
Contributing to Nuxeo EP
User contributions

12
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
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
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
Contributing to Nuxeo EP
Studio and NXThemes user contributions

16
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
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
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
Contributing to Nuxeo EP
Developer contributions

20
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
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
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
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
Contributing to Nuxeo EP
Keeping in touch with the community

25
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
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
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
Thank you!

29

More Related Content

Similar to Contributing to Nuxeo EP - Rules and advices for contributors

Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Nuxeo
 
[Nuxeo World 2013] Roadmap 2014 - Technical Part
[Nuxeo World 2013] Roadmap 2014 - Technical Part [Nuxeo World 2013] Roadmap 2014 - Technical Part
[Nuxeo World 2013] Roadmap 2014 - Technical Part Nuxeo
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftAnkitaJaggi1
 
Nuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Maritime DevCon
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true storyJakub Paweł Głazik
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software houseParis Apostolopoulos
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!ddrschiw
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02Manohar Kumar
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev opsMukta Aphale
 
Building and testing a desktop application written in Python
Building and testing a desktop application written in PythonBuilding and testing a desktop application written in Python
Building and testing a desktop application written in PythonNuxeo
 
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...Alexandra N. Martinez
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processChristopher Cundill
 
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxMuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxShiva Sahu
 
Investing in a good software factory and automating the build process
Investing in a good software factory and automating the build processInvesting in a good software factory and automating the build process
Investing in a good software factory and automating the build processNicolas Mas
 

Similar to Contributing to Nuxeo EP - Rules and advices for contributors (20)

Nuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get StartedNuxeo World Session: Becoming a Contributor: How to Get Started
Nuxeo World Session: Becoming a Contributor: How to Get Started
 
Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012Nuxeo Roadmap June 2012
Nuxeo Roadmap June 2012
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
 
[Nuxeo World 2013] Roadmap 2014 - Technical Part
[Nuxeo World 2013] Roadmap 2014 - Technical Part [Nuxeo World 2013] Roadmap 2014 - Technical Part
[Nuxeo World 2013] Roadmap 2014 - Technical Part
 
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoftBhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
Bhopal mule soft_meetup_17july2021_azuredevopsintegration_mulesoft
 
Nuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - RoadmapNuxeo Platform LTS 2016 - Roadmap
Nuxeo Platform LTS 2016 - Roadmap
 
Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"Eric tucker - Eliminating "Over the Fence"
Eric tucker - Eliminating "Over the Fence"
 
Successful DevOps implementation for small teams a true story
Successful DevOps implementation for small teams  a true storySuccessful DevOps implementation for small teams  a true story
Successful DevOps implementation for small teams a true story
 
Services, tools & practices for a software house
Services, tools & practices for a software houseServices, tools & practices for a software house
Services, tools & practices for a software house
 
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
Ad101 - IBM Lotus Domino Designer: Full Speed Ahead!
 
icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02icebreakerwithdevops-150218112943-conversion-gate02
icebreakerwithdevops-150218112943-conversion-gate02
 
Ice breaker with dev ops
Ice breaker with dev opsIce breaker with dev ops
Ice breaker with dev ops
 
Bootstrap4 x pages
Bootstrap4 x pagesBootstrap4 x pages
Bootstrap4 x pages
 
Building and testing a desktop application written in Python
Building and testing a desktop application written in PythonBuilding and testing a desktop application written in Python
Building and testing a desktop application written in Python
 
Debugging 2013- Lars pedersen
Debugging 2013- Lars pedersenDebugging 2013- Lars pedersen
Debugging 2013- Lars pedersen
 
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
Meetup en español #5 - Continuous Integration and Continuous Delivery (CI/CD)...
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptxMuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
MuleSoft_Noida_Meetup_CICD_Azure_07_May_2022.pptx
 
Investing in a good software factory and automating the build process
Investing in a good software factory and automating the build processInvesting in a good software factory and automating the build process
Investing in a good software factory and automating the build process
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
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
  • 8. Contributing to Nuxeo EP Why contributing now ? 8
  • 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
  • 12. Contributing to Nuxeo EP User contributions 12
  • 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
  • 16. Contributing to Nuxeo EP Studio and NXThemes user contributions 16
  • 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
  • 20. Contributing to Nuxeo EP Developer contributions 20
  • 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
  • 25. Contributing to Nuxeo EP Keeping in touch with the community 25
  • 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