View source | Discuss this page | Page history | Printable version   

Contributor's Guide

Contents

Introduction

Thanks for taking the time and effort to consider helping the Openbravo ERP open source project. There are many ways that you can help to make Openbravo ERP a better product. Here are some areas were you can help.

Find other ways to contribute to open source project without coding.

Contributing to Openbravo projects: A win - win proposition

We truly believe that anyone can be personally benefit by contributing to Openbravo and the Openbravo project. Whether you're an independent consultant, student, open source hacker, or even part of a company, contributing could be great for you.


Specifically for the company, we see that there are many advantages:

1. Contributions to Core are Maintained by Openbravo: If you contribute your enhancements to Openbravo ERP Core, they will be part of the product and will be maintained, documented and tested as part of the Openbravo product and all subsequent versions. This means that, after the initial development investment, you will not need to invest in upgrading these features anymore and that your upgrades to future versions will be smoother. This translates in very significant savings in your total cost of ownership for Openbravo ERP during the lifetime of the system.

2. Free up Resources through Teamwork: Contributing to Openbravo and having developments supported by us leaves you more time for your own developments and installations. You develop, and let us take care of maintaining the code during versions. For example, think of the big changes occurring in each one of the versions (2.30 with the new skinnable user interface, 2.40 with PostgreSQL 8.3 compatibility, 2.50 with Modularity, new developments as Database independence, etc.). Whatever you put in our Core is monitored by us for life.

3. Work with People with Common Goals: Whether by leveraging on other's work or collaborating on a project, push development in your own direction by leading it. The product will support what you want, and when you want it. This also helps ensure that your priorities, issues and features becomes the communities goals.


And for everybody:

4. Gain recognition and exposure: Make yourself known in a community of individuals and companies deploying professional open source solutions.

5. Network: Work with and meet others just like yourself, while potentially getting job or professional opportunities worldwide.

6. Build something you believe in: Help build a free and open source infrastructure that can be used for companies and non-governmental organizations. Yes, we're for profit, however many NGO's and non-profits are getting our code free of charge, and saving tons of money in the process.

7. Learn and Apply Skills: Enhance your knowledge by working on open technologies like Java, XML and Web related technologies. These are today's industry standard tools for building professional software solutions. As well, your work is edited by peers (other Openbravo developers) and tested by all Openbravo users around the world.

Create and improve documentation

Have you created a significant piece of documentation regarding the implementation, development or use of Openbravo? You can help improve the current documentation after registering yourself in our Wiki. Check out our Help page for information on how to improve or create new articles.

Translate documentation

In the Openbravo project most of the documentation is at the project's Wiki. This allows people to modify and enhance the documentation, but it also allows every one to translate the documentation into their language. Can you speak English and other language? See how you can translate the Wiki documentation and help other people around the world to use Openbravo.


Write a blog

Do you like using Openbravo? Do you like to write and connect with other community members? Then, consider writing a blog with various articles and news about what you are doing with it. Blogs are superbly easy to set up and there are many free services (Blogger.com for example) that allow you to quickly set up a new blog and maintain it with little effort.

If you do decide to set up a blog check our policy for including blogs to the Openbravo Planet.


Openbravo ERP localization and internationalization

Is Openbravo still not ready for your region/country? Check if someone is working on it in our Localization projects page or contact the Openbravo Localization Lead at "patricia.sanjuan@openbravo.com", if you would like to start a new localization project or contribute in an existing one.

If Openbravo is still not ready for your region, other projects can be used as a starting point to get a complete localization for a country or region. Please read the localization Guide.
This document provides all the information required to properly adapt Openbravo to different languages, regional or country differences and technical requirements of a target market.

Being responsible for the localization/translation of Openbravo to a particular region can serve as a huge competitive advantage for you and we would like to assist you in this effort.
Do not hesitate to contact the Openbravo Localization Lead at "patricia.sanjuan@openbravo.com" who can guide you and support you in this effort.

Quality Assurance (QA)

Quality Assurance is key for having successful software products. Openbravo projects follow an open development process that allows everybody to take part in any part of the development process. This page describes how you can get involved in the Quality Assurance processes for Openbravo ERP.

Before getting started we recommend that you read the following documents to get familiar with the main Openbravo development concepts and processes:

Openbravo testing methodologies

At Openbravo the following testing methodologies are combined to assurance the product's quality:

How you can help

Reporting issues on any version

Have you found a bug? Please, report it to us using our bug database. Make sure that you carefully read our Bug Reporting Guidelines before submitting your bug report.

Contributing test cases

For every release of Openbravo, at Openbravo's TestLink you have the collection of cases that are executed to verify the compliance of requirements. These test cases focus on assurance the coverage of the major use cases but not all the cases.

You can contribute by providing new test cases that you think that are important for Openbravo to include as part of our test plan (collection of cases) for every release or also cases that you think are critical for a specific module, industry or market segment.

Reaching Openbravo QA team

Tools

Contributing ideas and feature requests

Do you have an idea for Openbravo ERP? You can fill out a feature request. This process just communicates an idea to Openbravo that will implement the idea at its discretion. Since Openbravo it is an open source project, you can implement an idea into the product. See the next sections.


Contributing code snippets

Code snippets are small pieces of reusable code, like small cooking recipes. There is a category in the Openbravo Wiki called Code Snippets that holds documents that contain these pieces of reusable code.

If you have small samples of how to customize Openbravo, small changes to the code that you think that may be useful to other people, please create a new page on the Openbravo Wiki and add it to this category. You can also use the template CodeSnippets, like it is done in the already existing documents, to provide information of your snippets in a structured way.


Contributing to Openbravo ERP Core

Openbravo Core includes all the modules that are distributed by the default Openbravo ERP distribution. These are the modules that are part of the code product that Openbravo ERP are committed to maintain.

If you are planning to contribute see the legal section of this document.

Openbravo ERP is in continuous evolution. Check our roadmap to see which features we are working for the next versions of the product.


Contributing fixes

Do you have a fix for a bug in Openbravo ERP? You need to create a file listing the changes you made, called a patch.

When the patch is ready, attach it to the right bug report.

Proposing new features

You can propose or discuss new features fill out a feature request in Openbravo bug tracking system.

If your company or the company where you are installing Openbravo has functionality needs that are not yet covered by the application, we advise you to refer to the development tutorials and hope that you will allow us to share your work with all users.

Please, when you make your proposal consider adding the following information:

Share your idea and let everyone know about your intentions and get feedback from the community. This also helps to avoid the duplication of efforts.


Contributing new features

Some suggestions to consider when working on functionality:

Process

The standard process that Openbravo is following with all the contributors in order to implement a new Community Project is:

  1. Log a feature request at https://issues.openbravo.com if it doesn't exist.
  2. Create a project space in Community Projects Wiki article. This space must point to your project main site, a link like http://wiki.openbravo.com/wiki/Projects:My_Project (project main site example).
  3. Document there the functional specification following the Functional Specifications Style Guide. This document must be created in a link like http://wiki.openbravo.com/wiki/Projects:My_Project/Functional_Specification (project functional specification example).
  4. Openbravo will do a review to make sure that the functionality is complete, generic and consistent with the rest of the product.
  5. Openbravo will create a branch for you to put your code in Openbravo's development source code repository.
  6. Openbravo will do a technical design and code review. This document must be created in a link like http://wiki.openbravo.com/wiki/Projects:My_Project/Technical_Documentation (project technical documentation example).
  7. Then, you should report the development status of the project. This document must be created in a link like http://wiki.openbravo.com/wiki/Projects:My_Project/Development_Status (project development status example).
  8. If all the code is complete and tested, Openbravo will merge the branch in the trunk and from that moment on the feature is part of the standard product.

With this simple process you would be able to incorporate your work to the Openbravo standard code, sharing your developments with the rest of the Community.

Already developed functionality

In some occasions potential contributors have a development already completed for a customer or for a specific need. Some times even with little or no functional documentation. In these cases, we can publish the contribution as it is, giving someone else the possibility of building on top of this work. These kind of contributions are difficult to support by Openbravo community.

As in the above point, already developed functionalities should be included in the Wiki into the Community Projects. And again, the reader will find the section Contributing new features interesting.


Process

If you want to share your finished development with the community, the process that you should follow is:

  1. Log a feature request at https://issues.openbravo.com if it doesn't exist.
  2. Create a project space in Community Projects Wiki article. This space must point to your project main site, a link like http://wiki.openbravo.com/wiki/Projects:My_Project (project main site example).
  3. Document there the functional specification following the Functional Specifications Style Guide. This document must be created in a link like http://wiki.openbravo.com/wiki/Projects:My_Project/Functional_Specification (project functional specification example).
  4. Openbravo will do a review to make sure that the functionality is complete, generic and consistent with the rest of the product.
  5. Openbravo will create a branch for you to put your code in Openbravo's development source code repository.
  6. Then, you should report the development status of the project. This document must be created in a link like http://wiki.openbravo.com/wiki/Projects:My_Project/Development_Status (project development status example).
  7. If all the code is complete and tested, Openbravo will merge the branch in the trunk and from that moment on the feature is part of the standard product.

In these few steps you would share your work with the rest of the Community with a little effort from your side.

Developing verticals

Verticals are independent modules that customize and expand the functionality of Openbravo for a specific industry (e.g. real estate) or market segment.

We are currently defining a better Openbravo ERP modularity and industry templates that will help to simplify vertical developments.

Verticals are developed in Java and distributed as Openbravo ERP add-ons. Usually they involve the creation of new database tables and user interface windows.

Openbravo ERP license gives developers the freedom to choose the licensing conditions for their verticals. You may decide to develop a vertical and work with the same license as Openbravo ERP or develop it under a non-open source license.

Becoming an Openbravo developer

An Openbravo developer is a person that is actively involved in Openbravo development. For example, if you have a significant contribution or write regularly enhancements for the product or planning to do it soon.

Obtaining Write Access to Mercurial

Openbravo ERP source code lives in Mercurial. Everyone can read the source code but only developers can write to it. You need written access permission to Openbravo Mercurial to be able to send your code to Mercurial directly.

Contributing from the academia world

Are you an academic institution? Check our contribution guidelines for participating with your students within the Openbravo community.

Legal aspects

Openbravo S.L.U requires any contributor to the core of the Openbravo projects to sign our contributor's agreement and send it by email (scan it and send it to collaborate@openbravo.com under the subject "Signed Contributors Agreement") or regular mail or fax to Openbravo (this is an unfortunate consequence of copyright law in some jurisdictions). This requirement does not apply to external modules, localizations, documentation, except if they are contributed to us. It only applies to contributions that will be part of the core product.

The objective of contributor agreement is to protect the integrity of the project, its users and developers. The contributor agreement transfers the contributor's copyright to Openbravo who grants a non-exclusive license back to allow the contributor to use his/her own work. The rationale behind the agreement is:

  1. In case of a legal claim, having a single copyright owner makes it easier to defend the interests of the Openbravo users and developers. Openbravo is committed to defend Openbravo projects in the event of any claim or infringement by third parties.
  2. Openbravo S.L.U can relicense its works under any other license in the future. When starting an open source project, the choice of license is intended to be permanent, but the experience of the past few years is that the ability to relicense a project is a useful tool in meeting challenges for open source projects. Not having that flexibility may be a drawback. Without the agreement, every single contributor must be contacted and unanimity reached in order to relicense a code base, or parts of the code must be reimplemented. This is true for all but the most permissively-licensed open source projects.
  3. The contributors assert that their contributions are original and not protected by any patents. It guarantees to all contributors in the project that all the contributions are original.

Contributor's agreements are standard procedure in open source projects followed by projects ranging from the Free Software Foundation to the OpenOffice.org project, including the Apache project, on which this agreement is loosely based.

If you are not contributing code within the framework of a company or an institution, (i.e. your work is done as an individual), you have just to sign the contribution agreement and send it to Openbravo S.L.U.

If you are a company or your company is an Openbravo Partner, your company may well have already signed the agreement. Please, check with your manager or you can check this with us too.

If your company is not an Openbravo Partner, please ensure that someone authorised to sign on behalf of the company signs the agreement and lists the names of people that agreements covers. This is usually done by a senior manager in the organization. This helps to reduce the number of individuals agreements to be signed.

Openbravo has a policy of not negotiating alternative Contributor Agreements. This protects everyone equally, with the goal that no contributor gets special treatment to the detriment of other participants. If the terms of the agreement are not acceptable to you or your company, we can discuss an alternative commercial arrangement.

If you have any question regarding this contract please contact us legal@openbravo.com

Ideas for contributing

If you are a student or an open source hacker here you have some ideas for doing contributions to Openbravo ERP:


Integration with e-commerce systems

Integrating Openbravo with e-commerce systems like Zencart or Joomla. You can approach the integration implementing Openbravo web service (see OpenbravoWSExternalPOS_EN.pdf). Also you may consider looking at a solution like Jitterbit.


Integration with Document Management Systems

Integrate Openbravo with open source Document Management Systems like Alfresco. The idea is to provide document management over the files that can be attached at different Openbravo places (like windows). The attachments are used to include information on PDF on customers or providers, logos, and in general, any information that provides extra information on Openbravo items.


Compatibility with more browsers

Openbravo ERP supports the major web browsers, you can help expanding the current support to other browsers. It is necessary to test all the application windows and functions and make the necessary adjustments to make it work with more browsers, specially Konqueror, Safari and Opera.


Packages for distributions

Currently Openbravo ERP is distributed with an installer and there are no packages available in RPM and DEB formats. Can you help to prepare the necessary infrastructure to create packages for different distributions?

One of the ways to explore to archive this is to use the OpenSuse build service that allows building packages for Novell, Red Hat, Mandriva, Debian and Ubuntu distributions. The service has been open sourced.


Development of new skins

Openbravo ERP supports Skins since 2.30 release, so if you are a creative person and you would like to see Openbravo in a different way, you can elaborate your own skin and then share it with the rest of the community.


External synchronisations

Allow synchronize contacts (or other kind of data) to phones, PDA, laptops, etc. Maybe funambol is an option to look at.

Retrieved from "http://wiki.openbravo.com/wiki/Contributor%27s_Guide#Process"

This page has been accessed 125,779 times. This page was last modified on 22 May 2019, at 14:24. Content is available under Creative Commons Attribution-ShareAlike 2.5 Spain License.