First off, thanks for taking the time to contribute! +1
We need volunteer developers to help this project come to fruition.
If you haven't already, come find us in Mattermost. We want you working on things you're excited about.
The following is a set of guidelines for contributing to iDempiere. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Before starting, make sure that you read our code of conduct.This project and everyone participating in it is governed by the iDempiere's Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior.
Here are some important resources:
- Test sites lets you try iDempiere without installing it,
- Bugs, feature requests and improvements? Use the ticketing system for iDempiere - our JIRA system (for support please use our forums)
- Mattermost: Support channel. We're usually there during business hours.
- Do not open up a JIRA ticket if the bug is a security vulnerability in iDempiere, and instead refer to our security policy page.
- Ensure the bug was not already reported by searching on JIRA under Issues. Note: If you find a Closed issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring, it is a good idea if you can reproduce the bug in one of the test servers before you create a ticket.
- **Check if you can reproduce the problem in the latest version of iDempiere.
- Check the FAQs on the forum for a list of common questions and problems.
Bugs are tracked as JIRA issues.
Explain the problem and include additional details to help maintainers reproduce the problem:
- Use a clear and descriptive title for the issue to identify the problem.
- Describe the exact steps which reproduce the problem in as many details as possible.
- Provide specific examples to demonstrate the steps. If possible reproduce the problem with Garden data.
- Describe the behavior you observed after following the steps and point out what exactly is the problem with that behavior.
- Explain which behavior you expected to see instead and why.
- Include screenshots and videos - if possible, which show you following the described steps and clearly demonstrate the problem.
- If you're reporting that iDempiere crashed, include a crash report with a stack trace from the log files.
- If the problem is related to performance or memory, include valid numbers.
- If the problem wasn't triggered by a specific action, describe what you were doing before the problem happened and share more information using the guidelines below.
Provide more context by answering these questions:
- Can you reproduce the problem in the test sites?
- Did the problem start happening recently (e.g. after updating to a new version of iDempiere) or was this always a problem?
- If the problem started happening recently, can you reproduce the problem in an older version of iDempiere? What's the most recent version in which the problem doesn't happen?
- Can you reliably reproduce the issue? If not, provide details about how often the problem happens and under which conditions it normally happens.
This section guides you through submitting an enhancement suggestion for iDempiere, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion 📝 and find related suggestions 🔎.
Before creating enhancement suggestions, please check this list as you might find out that you don't need to create one. When you are creating an enhancement suggestion, please include as many details as possible.
- Suggest your change in the public forum, do not open an issue on JIRA until you have collected positive feedback about the change. JIRA issues are primarily intended for bug reports and fixes.
- Check if there's already a ticket which provides or suggests that enhancement.
Enhancement suggestions are tracked as JIRA issues.
- Use a clear and descriptive title for the issue to identify the suggestion.
- Provide a step-by-step description of the suggested enhancement in as many details as possible.
- Provide specific examples to demonstrate the steps.
- Describe the current behavior and explain which behavior you expected to see instead and why.
- Explain why this enhancement would be useful to most iDempiere users and isn't something that can or should be implemented as a community plugin.
Before integrating any code change, please read the Contributing to iDempiere's core guide to know more about coding conventions, guidelines and benchmarks.
iDempiere uses a forking workflow for code contributions. To have a detailed explanation of how to create a pull request, please read the Fork and Branch Git Workflow page.
In summary, here are the steps to follow:
- Create your personal fork.
- Clone your fork to your local machine.
- Synchronize your local repository with the upstream source.
- Create a feature branch for your work.
- Integrate your changes into the source code.
- Test thoughtfully
- Create a commit using the iDempiere standard message format: IDEMPIERE-[####] [Ticket Description].
- Push your commit to your own fork.
- Navigate to GitHub in the web browser.
- Create a Pull request.
- If the change is big and adds new functionality, please document the modifications and new features and add this documentation to the new features wiki.
- Read our Plugin guidelines.
- Add your plugin to the available plugins site. Note: If the community or its leaders find that your plugin do not follow the guidelines, it's disrupting or needs further support from a specific implementing company to use it. The project leaders are entitled to remove the plugin from the Available plugins list.
- Ask any question about how to use iDempiere in the public forum.
- Please read Contributing to iDempiere Documentation.
iDempiere is a community-driven open source project and it is a volunteer effort. We encourage you to pitch in and join the team!
Thanks!
The iDempiere team