I have several code changes done in Couchbase server and other components (like forestdb) etc., required to support Couchbase on ppc64le. I have gone through general guidelines on how to contribute code (https://developer.couchbase.com/open-source-projects) but still I am a bit confused. As I understand, I need to check the manifest file and see which github repositories are pulled in. I also see a specific “revision” tag in manifest file. This is what is confusing me. Suppose I want to submit my code changes to kv_engine or forestdb, what is the significance of “revision” tag? Should my changes go to top-of-the-tree or to a specific revision/branch? i.e. should I just fork the repository and create a pull request, or if there is anything additional that needs to be done with that repository? Can somebody please explain?
The easiest way is to propose your change for master branch on gerrit, doing so, you will increase likelihood of accepting your change, as release branches has more testing/maintenance operations to patches there.
But for forestdb manifest branch-master.xml currently pinned to spock branch, so, I guess, it makes sense to propose changes for this branch.
Make sure you have remote in your project like this ssh://{YOUR_GERRIT_NAME}@review.couchbase.org:29418/forestdb, switch to spock branch, apply your patches and submit it to gerrit with the following command:
git push {YOUR_GERRIT_REMOTE} HEAD:refs/for/spock
Also make sure you have accepted CLA on gerrit, otherwise you won’t be able to submit your patches.
@avsej Thanks for explaining upstreaming procedure. There is one last hurdle in upstreaming the code. that is CLA. The standard procedure presents a CLA which one has to sign and accept, but we have a special case which I would like to discuss further. Is this a right forum or should I be discussing it with different set of people on different forum?