Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added some Jira tickets.

Table of Contents

Code Repository

The official repositories are on ASF Gitbox, only those are committers writable.


We have also Github mirrors. Committers can push to them they are synced to Gitbox, even using Subversion!
There are actually We already have read-only Git mirrors for the OFBiz Subversion repository. There are two mirrors, before release16.11 and another is after the release16.11.
Since release branch 16.11, we disentangled the plugin components (previously under the specialpurpose folder) into a separate repository called OFBIZ-PLUGINSofbiz-plugins

ASF Gitbox (official repository replacing Subversion now read-only, commiters writable)

https://gitbox.apache.org/repos/asf/ofbiz-framework.git
https://gitbox.apache.org/repos/asf/ofbiz-plugins.git
https://gitbox.apache.org/repos/asf/ofbiz-site.git
https://gitbox.apache.org/repos/asf/ofbiz-tools.git

Github (official mirrors of the ASF Gitbox repositories)

Synced with Gitbox, can be forked, and PRs can be made

release16.11 and previous releases

https://github.com/apache/ofbiz/

Trunk and releases after 16.11

Framework - https://github.com/apache/ofbiz-framework
https://github.com/apache/ofbiz-framework/Plugins - plugins
https://github.com/apache/ofbiz-site
https://github.com/apache/ofbiz-tools

Info
titleCommiters: Github, Subversion and Gitbox
Note that you can use Subversion through those repository to finally commit to Gitbox. You can also checkout.
A Github feature[1] allows that. You can do it by checking out from Github. For instance, simply try
svn co https://github.com/apache/ofbiz-plugins/trunk/ecommerce
If you then Svn commit, the Github repo will be the ending container and will sync to ASF Gitbox
I have used the same in build.Gradle:
Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyOFBIZ-11276
Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyOFBIZ-11284


I don't say it's a definitive solution. At least it allows to think more about the best solution...

[1] https://help.github.com/en/github/importing-your-projects-to-github/working-with-subversion-on-github


  •  Communicate with ASF Infra team to enable write access in the above repositories.
  •  After successful migration to Git, mark the SVN repository as read-only
  •  PR can be asked but we have still to discuss if we want that to be used. I believe the Jira way should be still the official way. Clarification in progress, see
    Jira
    serverASF JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyOFBIZ-11301

Workflow

As nicely explained by Unknown User (taher) in the mail thread, here details on workflow.

...

You do your work, diff it, and attach the patch to a JIRA and request a commit from one of the committers. As explained in Contributing via Git and Github - WIP

Large Features

For large features usually multiple people need to collaborate on a separate branch. Here is where git shines and the distributed model kicks in:
1. A JIRA is created for a large feature.
2. The team (not necessarily having a committer) creates a remote repository which itself may have many branches with the master branch having all the work agreed upon and merged (actually, rebased)
3. The collaboration for this branch happens in the JIRA including discussions, comments, and even links to the commits, etc ...
4. A request is made to the project, to make a pull request from the repository after reaching a certain milestone with consensus from the community of course.
5. Here, for extra safety, the branch model may have a trunk and a develop branches. Everything is pulled to the develop branch and trickles down to the master branch after thorough and proper testing.

The above workflow can also adhere to the now famous Vincent Driessen git branching model found here -> http://nvie.com/posts/a-successful-git-branching-model/

Buildbot configuration with Git (Build Scripts)

  •  We should make sure the buildbots are enabled on the commits for the above mentioned repositorygit repositories.
     I have created Waiting for
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyINFRA-1937619443
    for that. Addressed in 

Revert workflow

The git revert command can use be revert a commit, more details can be found here.

...

  •  All the releases are branches in the repository of Git, we can write similar script mergefromtrunk.sh(bat) and mergefromplugins.sh(bat)   See 
    Jira
    serverASF JIRA
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyOFBIZ-11297

Release management

We will have a branch for the release management, currently we have three branches in https://github.com/apache/ofbiz-framework/

...

Migrate svn pre/post commit hooks

...

Update the RAT tool if needed to use git repository

  •  Check if we are using any RAT related thing, and impact of using Git repository on this. We finally use the associated Svn repo associated by Githhub, it works.
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyINFRA-19376