Author Topic: Git Repository for community involvement  (Read 4906 times)

Offline Palamedes

  • Newbie
  • *
  • Posts: 36
  • Karma: +5/-0
    • View Profile
    • RandomStringOfWords
Git Repository for community involvement
« on: March 08, 2012, 05:48:29 PM »
So what are the chances of getting a GIT repository so that developers like myself can help contribute?

The nice thing about git is that we can create feature branches, do something we think would be handy and then issue a pull request when we have it working.. you can then choose to merge it into the code base or not.  Most likely a lot of folks would end up committing code to the project this way  and so long as you make it clear that all code committed in this manner must be clean, dry and easy to understand it ends up being a win win for everyone..
~Pal

Offline abantecart

  • Administrator
  • Hero Member
  • *****
  • Posts: 4230
  • Karma: +269/-9
    • View Profile
    • Ideal Open Source Ecommerce Solution
Re: Git Repository for community involvement
« Reply #1 on: March 27, 2012, 10:22:55 PM »
We have discussed the possibility to locate source on github.

Any suggestion how to maintain quality of the code with git commits from the public?

How do we structure the branches? Do we require everyone to create a new branch and decide what is getting to the next release? 
What is the best practice for this?

Thanks
We need your help to build better free open source eCommerce platform for everyone.
See how you can help

Offline Palamedes

  • Newbie
  • *
  • Posts: 36
  • Karma: +5/-0
    • View Profile
    • RandomStringOfWords
Re: Git Repository for community involvement
« Reply #2 on: April 10, 2012, 02:13:31 PM »
So your question implies to me that you have done very little with git before.. It would likely pay you dividends if you were to do some reading about how git works and maybe some general work flow concepts..

I realize that it's a little scary but I think (and in my experience) in the long term if you embrace this you'll really appreciate how it works.. you get a lot of stuff for free and it only serves to improve your end product..  Even php is entirely in github =)

With the typical work flow of any open source product, only direct team members can push directly to the repo or accept pull requests.   (it's a setting in github)..   Everyone else can fork the work or issue pull requests back to your repo, but they don't have access to modify files without your permission.  They can't push directly into your repo, but rather have to issue a pull request that must be approved first.

So for example;

I find a bug..  I fork or clone your repo and fix the bug..  I then issue a pull request back to your repo.. 

You guys have a look at the code submitted by me in the pull request and make sure it conforms to coding standards, solves the problem at hand and doesn't inject malicious code or cause other headaches..etc..  You can either accept the pull or reject it..  If you accept it gets merged into the repo just as if you pushed a fix yourself.. 

If you reject it you can add a note to the rejection as to why the pull isn't up to snuff.. And that can be anything from "I don't like you" to "we are fixing this differently".. to nothing at all.. though its generally polite to say why a pull got rejected.

If you go one step further you can put all of your issue back log into github that users can browser and submit fixes for directly.. so I can say "This pull request fixes issue #1234" and you can then see exactly what it fixes and close the ticket too..

An added bonus is that every time you tag a repo to a version number github automatically creates a zip archive at that very moment of the latest branch on master that you can link to on your website.. no longer do you have to host and manage zips or tgz's but github does it for you..

For now would I would probably do if I were in your shoes is to create a master branch with the core code.. create a development branch that you do all your pushing to and test on.. when its "ready" tag it and merge that into your master..  master is the code on the website for download..  The develop branch is the ongoing unstable branch..

Then you create feature branches for any new features you want and merge those back into develop as they get done..

Bugs are either fixed directly in the development branch or in a hotfix branch that gets pushed to master directly.. but lets not get too confusing yet =)

Unlike svn everything in git is a branch and branches are good..  (unlike svn in which branches and merging can suck..)


Either way you should likely try forking a big open source product and then get a buddy to create an account and have them issue a pull request that changes the "hello world" to your product and see how it works..   its all free and it's worth your effort to learn how this works.  This work flow is very important and will make you more comfortable with this process.. 

~Pal

Offline abantecart

  • Administrator
  • Hero Member
  • *****
  • Posts: 4230
  • Karma: +269/-9
    • View Profile
    • Ideal Open Source Ecommerce Solution
Re: Git Repository for community involvement
« Reply #3 on: April 11, 2012, 08:34:20 AM »
Thank you so much for the post and clarification. We will move to github. After next release we will seriously come back to this and start setting it up.
We need your help to build better free open source eCommerce platform for everyone.
See how you can help

Offline abolabo

  • core-developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1827
  • Karma: +269/-11
  • web for all, all for web!
    • View Profile
    • AbanteCart
“No one is useless in this world who lightens the burdens of another.”
― Charles Dickens

 

Powered by SMFPacks Social Login Mod