Github Contributions
Some people prefer to make contributions to karaf source via github. If you are one of them, this is for you!
Introduction
Apache Karaf is available as a periodically replicated mirror on: https://github.com/apache/karaf
Suggested Workflow
make a fork of karaf repo github mirror
do all your new work on your own karaf fork
when ready, file a jira issue https://issues.apache.org/jira/browse/KARAF, attach the link to your github pull request, and ask for a review
one of karaf committers will discuss your pull request on github; and at some point your pull request will be accepted
when your pull request is accepted, squash it into a single commit and attach single patch file to the original jira, with ASF grant check box selected
now pray to your favorite ASF committer to really accept the patch :-)
when your patch is committed to the svn, and you can verify it in the latest karaf snapshot, close your pull request on github
License Reminder
in order for your contributions to be accepted:
all files must contain ASL license grant header
you must select ASF grant check box when attaching patch to the jira
How to Generate a One-File-Patch Via Throw-Away Branch
here is one way to generate squash of your commits:
# # 'archon' referers to karaf mirror # 'origin' referers to your own fork # # attach karaf mirror as remote, if not done yet git remote add archon https://github.com/apache/karaf # fetch latest karaf mirror git fetch archon # ensure you are on your fork trunk git checkout origin/trunk # kill previous patch delivery, if you had one git branch -D delivery # make new delivery throw-away branch, based on latest karaf mirror git branch delivery archon/trunk # use it git checkout delivery # squash all your local development into a single commit git merge --squash trunk # commit it to the delivery branch git commit -m "delivery" # generate a patch file against the mirror git format-patch archon/trunk
root of your karaf source now contains a file named "0001-delivery.patch.txt" (please attach the .txt ending;this will allow commiters to open your patch directly in the browser and give it a short look there) which you should attach to your karaf jira, and ask to commit to the svn trunk