Git Repositories
The project maintains several repositories:
Name | Description | Public location |
---|---|---|
ofbiz-framework | The repository containing all base components | https://github.com/apache/ofbiz-framework |
ofbiz-plugins | The repository containing several plugins | https://github.com/apache/ofbiz-plugins |
ofbiz-site | The repository containing the page of the official OFBiz site | https://github.com/apache/ofbiz-site |
ofbiz-tools | The repository containing several functions and services to maintain the project and its works | https://github.com/apache/ofbiz-tools |
Setting up your own Git Clone
Forking the OFBiz repositories
Forking the OFBiz repository in Github is - in essence - having your clone of the OFBiz repository in the Github environment, thereby being publicly available to the community and others.
This is done by clicking on the 'Fork' button on the repository's page in Github (see public locations above).
From here you can clone or download it to your local development environment (and use it within your preferred IDE). You can do this via the green 'Clone or Download' button on your repository page, or directly in your preferred location (folder) on your local environment, with a command as decribed in the 'Cloning your Github fork' section.
Cloning your Github fork
A Git clone is your remote git clone existing in your local environment.
Cloning is done through following commands in your cli:
Repo | command |
---|---|
ofbiz-framework | git clone https://github.com/<your_github_id>/ofbiz-framework |
ofbiz-plugins | git clone https://github.com/<your_github_id>/ofbiz-plugins |
ofbiz-site | git clone https://github.com/<your_github_id>/ofbiz-site |
ofbiz-tools | git clone https://github.com/<your_github_id>/ofbiz-tools |
Keeping your local clone in sync with changes in the official repositories
Accepted commits will be merged regularly in one of the branches in the repository by one of the committers. In order to ensure that you're working with the latest from the official repository (to avoid merge conflicts), it is of the utmost importance that you regularly bring the changes from the OFBiz repository to your local clone.
In order to do this you need to set up a connection to the official repository. This is done by executing one of following git commands in your environment (in the folder of your local clone):
for ofbiz-framework: git remote add OFBiz https://github.com/apache/ofbiz-framework.git
- for ofbiz-plugins: git remote add OFBiz https://github.com/apache/ofbiz-plugins.git
- for ofbiz-site: git remote add OFBiz https://github.com/apache/ofbiz-site.git
- for ofbiz-tools: git remote add OFBiz https://github.com/apache/ofbiz-tools.git
and update your local clone via git fetch, followed by git rebase.
Working on your enhancements for the project
Enhancements to the codebases of our project always start from somewhere. For our project this driven by one or more open issues (tickets) existing in our JIRA (https://issues.apache.org/jira/projects/OFBIZ), see also the section 'Reporting Code Issues' below.
Todo:
- addressing patch files?
- addressing interaction with JIRA - see below
- addressing cherry-picking?
- addressing pull requests? - see below
Pull Requests
Github Guide
Github workflow explanation: https://guides.github.com/introduction/flow/
TBD: Pull request template: https://help.github.com/en/github/building-a-strong-community/creating-a-pull-request-template-for-your-repository
Pull requests (e.g. from Github) can be handled in the same way as patch files in a JIRA ticket. In general, patch files are downloaded from the ticket and then applied to a branch in the development environment (e.g. your IDE) for evaluation and testing purposes.
Collaborating with community members
@todo
Git GUI Clients
Instead of working via the cli (terminal) that comes with your OS, you can also use dedicated Git GUI clients (software packages) to execute git commands.
An overview of clients available (for your os platform) can be found here: https://git-scm.com/downloads/guis
Of course, you can also use the git functionalities available in your IDE of choice (Apache Netbeans, Eclipse, IntelliJ, etc.)
Reporting Code Issues
The project's tool to report and track progress on issues with code in the various repositories is JIRA (https://issues.apache.org/jira/projects/OFBIZ).
While Github also offers functionality to report issues, there is no bidirectional way to sync these with JIRA. Therefore, it is advised to register issues in JIRA as tickets there appear in the project's mailing lists to reach its community members in a better way.