Contact us
  • en
  • fr
  • Solutions
    • Company IntranetDiscover our company intranet software to connect and engage your employees
    • Collaboration PlatformDiscover our digital collaboration platform that boost your employee engagement and performance
    • Knowledge ManagementHow To build and manage your knowledge base with eXo Platform
    • Employee EngagementDiscover how to boost your employee engagement
  • Product
    • Overview
      • Software TourAn overview of our software capabilities
      • Why eXoHow eXo improves your employee experience
    • Features
      • CommunicationFeatures to facilitate employee communications
      • CollaborationFeatures to create efficient teams
      • KnowledgeKnowledge management capabilities
      • ProductivityEmployee productivity tools to engage employees
    • Technology
      • Open sourceAn overview of our technology
      • IntegrationsDiscover how eXo integrates with your tools and systems
      • SecurityHow eXo Platform ensures your data security
  • Pricing
    • Product pricingLearn about our business model and pricing
    • ServicesLearn about our professional services
    • FAQsQuestions about the software, the community and our offers
  • Resources
    • Resource center
      • Case studies
      • White Papers
      • Datasheets
      • Videos
    • Technical documentation
      • Getting started
      • Developer Guide
      • Technical administration guide
      • REST APIs
    • From The Blog
      • eXo Platform 6.4 is here, available in both Enterprise and Community editions!
      • eXo Platform community edition is back
      • Cloud Vs On-premise Digital Workplace: Which one is right for your business?
  • Company
    • About us
    • Careers
    • Customers
    • Newsroom
    • Contact us
    • Partners
  • Menu mobile
    • Pricing
    • About us
    • Services
    • FAQs
    • Customers
    • Resource center
    • Contact us
    • Blog
Company Intranet Discover our company intranet software to connect and engage your employees
Collaboration Platform Discover our digital collaboration platform that boost your employee engagement and performance
Knowledge Management How To build and manage your knowledge base with eXo Platform
Employee Engagement Discover how to boost your employee engagement
Overview
  • Software Tour An overview of our software capabilities
  • Why eXo How eXo improves your employee experience
Features
  • Communication Features to facilitate employee communications
  • Collaboration Features to create efficient teams
  • Knowledge Knowledge management capabilities
  • Productivity Employee productivity tools to engage employees
Technology
  • Open source An overview of our technology
  • Integrations Discover how eXo integrates with your tools and systems
  • Security How eXo Platform ensures your data security
Product pricing Learn about our business model and pricing
Services Learn about our professional services
FAQs Questions about the software, the community and our offers
Resource center
  • Case studies
  • White Papers
  • Datasheets
  • Videos
Technical documentation
  • Getting started
  • Developer Guide
  • Technical administration guide
  • REST APIs
From The Blog
  • eXo Platform 6.4 is here, available in both Enterprise and Community editions!
  • eXo Platform community edition is back
  • Cloud Vs On-premise Digital Workplace: Which one is right for your business?
About us
Careers
Customers
Newsroom
Contact us
Partners
Pricing
About us
Services
FAQs
Customers
Resource center
Contact us
Blog
  1. Accueil
  2. Tutorial
  3. How to contribute to eXo Platform add-ons in 10 minutes with Che and Codenvy

How to contribute to eXo Platform add-ons in 10 minutes with Che and Codenvy

Do you remember that a few months ago if you wanted to contribute to an open-source project, even to fix a minor issue, you had to:

  • clone the project
  • read the contribution manual
  • check your Java version
  • install the right package manager (Maven, Bower, npm or whatever you needed)
  • download the right application server, setup your IDE as well
  • run the init script, find out why it doesn’t work on your laptop, kill any other local applications on the server to fix the conflict … and so on!

It was so boring that in some cases you gave up on your fix because of all the annoying things you had to do.

But wait, this time is over!

In this post, I will show you how to work as a developer on the eXo Tasks Add-on and how you can quickly contribute to this open-source project without installing anything on your laptop, thanks to Eclipse Che and Codenvy! (Unless you don’t have a browser 😉 )

Codenvy is based on the open-source Eclipse Che project and can be extended and customized with Che plugins.

The eXo Tasks Add-on is a task management application that allows you to create and organize tasks in eXo Platform. If you want to know more about it, take a look at these two blog posts:

  • Getting Things Done with eXo Tasks!
  • Better Task Management is Coming in eXo Platform

Fix a bug in an eXo add-on, then build, install and test your code and create a PR with just … a browser!

We are going to fix a very simple issue for the purposes of this demo. As you can see in the animated image below, when you want to edit a task description, you have to click on the dedicated rich editor area, but the focus is not set in the rich editor field.

Fix a bug on a task management

Ok so now let’s fix it!

Start your developer workspace with one click

The first step is to go to the eXo Task GitHub project and to click on the { ☁ } Developer Workspace button.

Task management add-on

When clicking on the button, it calls a Codenvy Factory. A Factory is a template used to generate a new developer workspace from a consumer-friendly URL. We created one dedicated for eXo Tasks which allows to automatically load a ready-to-use development environment.

NOTE: You need a Codenvy account to be able to use it. An account is free and you can create one quickly with your GitHub or Google+ accounts, for example.

eXo Task Add-on check out from GitHub

When the workspace starts up, the following steps are automatically executed:

  • The eXo Task Add-on project is checked out from GitHub.
  • The project is configured as a Maven project.
  • A custom command named “Task – Build & Install & Start PLF” is executed to build this add-on, install it to the local eXo Platform installation and start an eXo Platform instance.

You can follow these processes in the Terminal view at the bottom of the screen, where you can also find the link to access your eXo Platform instance with the default username (root) and password (gtn):

eXo Platform instance

NOTE: Even if the preview URL is there from the beginning, you need to wait until the end of the command to be able to click on it so that your eXo Platform instance is ready to use.

A closer look at the commands

Eclipse Che and Codenvy allow you to create commands associated with your work space. As the eXo Tasks Add-on is a Maven project, there are some basic Maven commands available, like “clean package” and “clean test”.
In addition, we have created some useful custom commands:

    • eXo PLF – Start

Starts the eXo Platform as a background process and displays the logs

    • eXo PLF – Stop

Stops the Platform waiting for up to a few seconds for a process to end

    • eXo PLF – Logs

Displays the platform.log content file in real time

    • eXo PLF – Clean

Cleans up all the data to enable starting with a fresh instance

    • Task – Build & Install

Builds the eXo Tasks project with Maven and installs it into (or updates it in) the eXo Platform installation with the eXo Add-on Manager.

  • Task – Build & Install & Start PLF

 

Like the previous command, and in addition starts the eXo Platform instance after successful installation of the Add-on

As you can see on the screenshot below, those commands, available via the Run > Commands menu, can be easily updated:

Useful custom commands on eXo tasks add-on

These commands are enough to make you efficient in developing eXo Tasks out of the box, but you can also create your own commands. Feel free to create some and share them with us. We will be happy to improve the default commands based on your feedback.

Fix a bug, and then build, install and test your code on an eXo Platform instance

Now we are ready to fix the bug:

Fix a bug on eXo Platform instance

Ok, the fix seems to be good, let’s create a pull request 🙂

Create a Pull Request

To be able to create a pull request on GitHub, you first need to fill in the form on the Committer screen via the menu entry Profile > Preferences > Git > Committer:

Create a Pull Request on Github

Then, since the Task project has been checked out on the default Git branch (branch develop), you need to create a new branch. Let’s name it “fix/TA-484” here to follow eXo conventions, because we already have a JIRA opened for this bug:

  • Click on the top menu: Git > Branches….
  • Then in the dialog box that opens, click on the Create button from the default develop branch and name your branch:

New branch creation on Git branch

  • Select your new branch and click on the Checkout button.
  • Finally, add any files that you have updated and commit them to the local Git repository using the Git > Add files and Git > Commit menu entries.

Now you can use the Pull Request panel on the right of the screen to enter all the details for the pull request you want to create:

Pull Request panel
NOTE: A fork of the project will be created on your GitHub account, so the first time Codenvy needs to access your account, a popup will ask you to validate some GitHub permissions.

This PR is available here.

Share your fix with the Engineering team, the QA team and others!

Now, that your PR has been created and seems to be ok, all other teams, like the QA Team for example, can easily test your code in the same development environment.

They just have to click on the { ☁ } Developer Workspace button available on the PR description and that’s it!
Indeed, when clicking on this button, it calls another Factory, automatically created by Codenvy with the PR, and loads a ready-to-use environment to help others to review this contribution and test it before accepting the PR.

Another Factory automatically created by Codenvy with the PR

As you can see, this PR has successfully passed all the eXo checks … but wait! It’s another subject and we will discuss about the PR Workflow used at eXo in another blog post. Stay tuned!


Join The eXo Tribe

Join The eXo Tribe

Register for our Community to Get updates, tutorials, support, and access to the Platform and add-on downloads. Sign in Now!

Brahim Jaouane

I am a Digital Marketing specialist specialized in SEO at eXo Platform. Passionate about new technologies and Digital Marketing. With 10 years' experience, I support companies in their digital communication strategies and implement the tools necessary for their success. My approach combines the use of different traffic acquisition levers and an optimization of the user experience to convert visitors into customers. After various digital experiences in communication agencies as well as in B2B company, I have a wide range of skills and I am able to manage the digital marketing strategy of small and medium-sized companies.

Full-featured digital workplace with everything your employees need to work efficiently, smartly integrated for a compelling employee experience

  • Product
    • Software tour
    • Communication
    • Collaboration
    • Knowledge
    • Productivity
    • Open Source
    • Integrations
    • Security
  • Uses cases
    • Digital Workplace
    • Intranet software
    • Collaboration software
    • Knowledge management software
    • Entreprise Social Network
    • Employee Engagement platform
  • Roles
    • Internal Communications
    • Human Resources
    • Information Technology
  • Company
    • Product offer
    • Services Offer
    • Customers
    • Partners
    • About us
  • Resources
    • FAQs
    • Resource Center
    • Collaboration guide
    • What is a Digital workplace?
    • What is an intranet?
    • Employee engagement
  • Terms and Conditions
  • Legal
  • Privacy Policy
  • Accessibility
  • Contact us
  • Sitemap
  • Facebook
  • Twitter
  • LinkedIn
wpDiscuz