Congratulations! You've gained the confidence of your fellow Cordova committers and have been granted the ability to commit code directly, and to apply pull requests from others. You should receive an email from our Apache mentor with the details of how to setup your account.
see slides from ApacheCon 2015 talk on Committer Tools.
It‘s convenient to have the origin of your git repos to point to Apache’s repos (as opposed to your clone of them on github). The easiest way to do this is to delete them and re-clone them using coho:
git clone https://git-wip-us.apache.org/repos/asf/cordova-coho.git cd cordova-coho npm install cd .. cordova-coho/coho repo-clone -r plugins -r mobile-spec -r ...
Test out your credentials with the following:
git pull git push
If all goes well, git push should have asked you for your username and password, and an “Everything up-to-date” message should have been printed.
This is a list that only committers can join.
Send an email to private-subscribe@cordova.apache.org
.
Note that this is a moderated list, so your request to join must be manually accepted.
Understanding how Apache works goes a long way:
This is required if any of the following apply:
When possible, try to phrase things in the form of a proposal. If no one objects (within a workday or two), then consider yourself to have lazy consensus.
CB-XXXX **PLATFORM** Fixed broken scrolling
npm test
from the project rootcordova-android/test
, cordova-ios/CordovaLibTests
)grunt test
Here is an example workflow for committing a change when you've made it on a topic branch
git pull git checkout topic_branch git rebase master -i git checkout master git merge --ff-only topic_branch git push git branch -d topic_branch
Here is an example workflow for committing a change when you've made it on master:
git pull --rebase git rebase origin/master -i # Squash & reword commit messages git push
If you ever end up with a merge commit on master that you don't want:
git rebase origin/master
If you need to add your change to a release branch:
git checkout 2.9.x git cherry-pick -x COMMIT_HASH # the -x flag adds "cherry-picked from <commit>" to the commit messages git push origin 2.9.x
The git rebase -i
step is your chance to clean up the commit messages and to combine small commits when appropriate. For example:
Commit A: CB-1234 Implemented RockOn feature Commit B: CB-1234 Added tests for RockOn Commit C: Fixed RockOn not working with empty strings Commit D: Renamed RockOn to JustRock Commit E: Refactor MainFeature to make use of JustRock.
CB-1234 android: Improved exec bridge by using strings instead of JSON
CB-1234 all: Fixed plugin loading paths that start with /
If you created a topic branch above, and you‘ve merged your work to master, delete your topic branch. This is because we don’t want to accumulate a bunch of topic branches which don‘t have anything that hasn’t already been merged to master.
If your topic branch doesn't get merged to master and sits around for a long time to the point of becoming stale or abandoned, also please consider deleting those topic branches. No sense in letting cruft accumulate.
master
git cherry-pick -x master
master