OpenbravoPOS Contributor's Guide/it
Languages: |
English | Français | Italiano | Translate this article... |
Introduzione
Thanks for taking the time and effort to consider helping the Openbravo POS open source project. There are many ways that you can help to make Openbravo POS a better product. Here are some areas were you can help - if you have more ideas for how to improve Openbravo POS feel free to post them publicly in our Open Discussion forum or send us a message to collaborate@openbravo.com.
Find other ways to contribute to open source project without coding.
Contribuire ai progetti Openbravo : 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 POS 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 POS during the life time 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. 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 a ton 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, you work is edited by peers, Openbravo developers, and tested by around the world.
Partecipare ai forums e aiutare altri utenti
Do you have experience installing, configuring or using Openbravo POS? Many people download, install, configure and deploy Openbravo POS every day. Help them by answering their questions at Openbravo POS forums at Openbravo Forge. Share your knowledge and experiences with others and learn from the Openbravo POS community.
Creare e migliorare la documentazione
Have you created a significant piece of documentation regarding the implementation, development or use of Openbravo? Share it with us in our Open Discussion forum. Also 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.
Tradurre la documentazione
In the Openbravo project most of the documentation is at the project's Wiki. This allows people to modify and enhance the documentation, but 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.
Scrivere un 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.
Localizzazione Openbravo POS e internationalizzazione
Is Openbravo still not ready for your region? Check if someone is working on it in our Localization projects page and help them or start a new localization project.
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. Openbravo community has been very active in supporting these efforts in the forums, which are monitored by Openbravo's development team.
If with that Openbravo POS is still not ready for your region, other projects can be achieved to get a complete localization for a country or region. Please read localization process.
Segnalare bugs
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. Even better, you can also propose a bug fix for the issue.
Contribuire con idee e richieste di feature
Do you have an idea for Openbravo ERP? You can fill up 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.
We have a list of ideas if you wish to contribute but you still do not have a project.
Contribuire con 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 existent documents, to provide information of your snippets in a structured way.
Contribuire al core di Openbravo POS
Openbravo POS includes all the modules that are distributed by the default Openbravo POS distribution. These are the modules that are part of the code product and that Openbravo POS acquires the commitment of maintaining them.
If you are planning to contribute see the legal section of this document.
Openbravo POS is in continuous evolution. Check our roadmap to see which features we are working for the next versions of the product.
Contribuire con fixes
Do you have a fix for a bug in Openbravo POS? 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.
Propoporre nuove features
You can propose or discuss new features fill up 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 Developer guide 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:
- Which functionality you are exactly considering (requirements / objectives)
- How this fits in the current Openbravo POS functionality
- Which Openbravo POS modules are affected
- How many resource you can devote to it
- Which period of time you expect it will take
Share you idea and let everyone know about your intentions and get feedback from the community. This also helps to avoid the duplication of efforts.
Contribuire con nuove features
Some suggestions to consider when working on functionality:
- Be consistent with the current design principles of Openbravo POS: based on open standards, client server web based architecture, support for all web browsers, etc.
- Design in the open. Before you start coding a single line, make a proposal of the design of the new functionality at developers forum.
Processo
The standard process that we are following with all the contributors in order to implement a new Community Project is:
- Log a feature request at issues.openbravo.com if it doesn't exist.
- 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report).
- 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report/Functional_Specification).
- We will do a review to make sure that the functionality is complete, generic and consistent with the rest of the product.
- We will create a branch for you to put your code in our development source code repository.
- We 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report/Technical_Documentation).
- 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report/Development_Status).
- If everything is OK, we 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.
Funzionalità già sviluppate
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. On 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 found interesting the section Contributing new features.
Processo
If you want to share your finished development with the community, the process that you should follow is:
- Log a feature request at issues.openbravo.com if it doesn't exist.
- 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report).
- Document there the functional specification (the more, the better) 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 (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report/Functional_Specification).
- We will do a brief review to make sure that the functionality is consistent with the rest of the product.
- We will create a branch for you to put your code in our development source code repository, available for the whole community.
- A technical design document would be welcome. This document should be created in a link like http://wiki.openbravo.com/wiki/Projects/My_Project/Technical_Documentation (e.g., http://wiki.openbravo.com/wiki/Projects/Project_Evolution_Report/Technical_Documentation).
In these few steps you would share your work with the rest of the Community with a little effort from your side.
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 Subversion
Openbravo POS source code lives in Subversion. Everyone can read the source code but only developers can write on it. You need written access permission to Openbravo Subversion to be able to send your code to Subversion 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 requires any contributor to the core of the Openbravo projects to sign our contributor's agreement and send it by regular mail or by 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:
- In case of a legal claim, having a single copyright owner makes more easy 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.
- Openbravo S.L 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.
- 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.
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
Add support for more POS hardware
Openbravo POS supports several receipt printer models, customer display models, scale models, but you can help us adding more models to the list developing the protocol of new models and testing it.
Packages for distributions and installers
Can you help to prepare the necessary infrastructure to create packages for different distributions and installers for different platforms?
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.
Add support for payment gateways
Currently Openbravo POS supports two payment gateways. But these implementations must be improved and also more payment gateways need to be included to support electronic payment around the world. The base clases to support electronic payment is already included in Openbravo POS, you only need to implement the specific protocol for the payment gateway you want to be supported by Openbravo POS.