SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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 a 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
 

Último

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Último (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

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