|
1 |
| -= Contributor License Agreement ("Agreement") |
2 |
| - |
3 |
| -Thank you for your interest in an open source project administered by |
4 |
| -the MarkLogic Corporation (the "Project"). This Agreement states the |
5 |
| -terms under which you, the person listed below, may contribute to the |
6 |
| -Project any software, modifications or additions, bug fixes, |
7 |
| -documentation, or any other materials that you provide (whether |
8 |
| -electronically, verbally, or in written form) to MarkLogic |
9 |
| -Corporation ("MarkLogic" or "us") related to the Project (each a |
10 |
| -"Contribution"). This license is for your protection as well as the |
11 |
| -protection of MarkLogic and its licensees. This Agreement does not |
12 |
| -otherwise change your rights to use your own Contributions for any |
13 |
| -other purpose. Please complete the following information about you and |
14 |
| -the Contributions and either (a) sign electronically by filling out |
15 |
| -the form below or (b) sign and submit the form to the contact |
16 |
| -information below. |
17 |
| - |
18 |
| -If you develop software or create software code as a part of your |
19 |
| -employment, or if your employer is in the business of developing |
20 |
| -software, or otherwise may claim rights in the Contributions, please |
21 |
| -provide information about your employer's policy on contributing to |
22 |
| -open source projects below, including the name of the supervisor to |
23 |
| -contact in connection with such contributions. |
24 |
| - |
25 |
| -If you have questions about this Agreement, please contact us at |
26 |
| -opensource@marklogic.com. |
27 |
| - |
28 |
| -.You and MarkLogic acknowledge and agree: |
29 |
| -. Control of the Project. We, in our sole discretion, determine the |
30 |
| - Contributions that will be included in the Project. You understand |
31 |
| - that this Agreement, and your submission of any Contribution, does |
32 |
| - not guarantee that any such Contributions will be included in the |
33 |
| - Project. |
34 |
| -. License Grants. You hereby grant to MarkLogic, a perpetual, |
35 |
| - non-exclusive, irrevocable, worldwide, royalty-free and fully |
36 |
| - paid-up, sublicenseable, and transferable license under all of your |
37 |
| - relevant intellectual property rights (including copyright, patent, |
38 |
| - trade secret, and any other rights), to use, copy, modify, prepare |
39 |
| - derivative works of, distribute and publicly perform and publicly |
40 |
| - display your Contributions on any licensing terms, in our sole |
41 |
| - discretion, including without limitation: (a) the GNU General Public |
42 |
| - License, the GNU Lesser General Public License, the Common Public |
43 |
| - License, the MIT License, the Apache License, or the Berkeley |
44 |
| - Software Distribution license; and (b) binary, proprietary, or |
45 |
| - commercial licenses. You hereby grant to MarkLogic and to recipients |
46 |
| - of the Project a perpetual, worldwide, non-exclusive, fully-paid up |
47 |
| - and royalty-free, irrevocable patent license to make, have made, use, |
48 |
| - offer to sell, sell, import, and otherwise transfer the Project, |
49 |
| - where such license applies only to those patent claims licensable by |
50 |
| - you that are necessarily infringed by your Contributions alone or by |
51 |
| - combination of your Contributions with the Project. |
52 |
| -. Ownership. Except for the licenses granted herein, you reserve all |
53 |
| - right, title, and interest in and to your Contributions. |
54 |
| -. Your Representations. You represent that you are able and entitled to |
55 |
| - grant us the above license rights. You represent that your |
56 |
| - Contributions are your original works of authorship, and to your |
57 |
| - knowledge, no other person claims, or has the right to claim, any |
58 |
| - right in any intellectual property right, including without |
59 |
| - limitation invention or patent rights, related to your Contributions. |
60 |
| - You also represent that you are not legally obligated, whether by |
61 |
| - entering into an agreement or otherwise, in any way that conflicts |
62 |
| - with the terms of the foregoing license grant. If your employer has |
63 |
| - rights to intellectual property that you create, you represent that |
64 |
| - you have received permission to make your Contributions on behalf of |
65 |
| - that employer, or that your employer has waived such rights for your |
66 |
| - Contributions. |
67 |
| -. No Implied Warranties. MarkLogic acknowledges that, except as |
68 |
| - explicitly described in this Agreement, your Contribution is |
69 |
| - provided on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF |
70 |
| - ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, |
71 |
| - ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, |
72 |
| - MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. |
73 |
| - |
74 |
| -== Complete and sign |
75 |
| - |
76 |
| ----- |
77 |
| -Full name: ____________________________________________________________ |
78 |
| - |
79 |
| -Email address: ____________________________________________________________ |
80 |
| - |
81 |
| -Postal address: |
82 |
| - |
83 |
| - Street: _____________________________________________________ |
84 |
| - |
85 |
| - _____________________________________________________ |
86 |
| - |
87 |
| - City: _____________________________________________________ |
88 |
| - |
89 |
| - State or province: _____________________________________________________ |
90 |
| - |
91 |
| - Postal code: _____________________________________________________ |
92 |
| - |
93 |
| - Country: _____________________________________________________ |
94 |
| - |
95 |
| -Phone number: ____________________________________________________________ |
96 |
| - |
97 |
| - |
98 |
| -Corporate contributor information: |
99 |
| - |
100 |
| - ____________________________________________________________ |
101 |
| - |
102 |
| - ____________________________________________________________ |
103 |
| - |
104 |
| - ____________________________________________________________ |
105 |
| - |
106 |
| - ____________________________________________________________ |
107 |
| - |
108 |
| - |
109 |
| -Signature: ____________________________________________________________ |
110 |
| - |
111 |
| ----- |
112 |
| - |
113 |
| -== Signing Alternatives |
| 1 | +# Contributing to the Java Client API |
114 | 2 |
|
115 |
| -You may print the document and send the original to: |
| 3 | +The Java Client API welcomes new contributors. This document will guide you |
| 4 | +through the process. |
116 | 5 |
|
117 |
| -MarkLogic Corporation + |
118 |
| -Attn: Contract Administrator + |
119 |
| -999 Skyway Road, + |
120 |
| -San Carlos, CA 94070 + |
121 |
| -USA + |
| 6 | + - [Question or Problem?](#question) |
| 7 | + - [Issues and Bugs](#issue) |
| 8 | + - [Feature Requests](#feature) |
| 9 | + - [Submission Guidelines](#submit) |
| 10 | + |
| 11 | +## <a name="question"></a> Got a Question or Problem? |
122 | 12 |
|
123 |
| -You may also send a scanned PDF of the form to |
124 |
| -opensource@marklogic.com. |
| 13 | +If you have questions about how to use the Java Client API, you can ask on |
| 14 | +[StackOverflow](http://stackoverflow.com/tags/marklogic), tagging the question |
| 15 | +with MarkLogic. |
| 16 | + |
| 17 | +## <a name="issue"></a> Found an Issue? |
| 18 | +If you find a bug in the source code or a mistake in the documentation, you can help us by |
| 19 | +submitting an issue to our [GitHub Issue Tracker][issue tracker]. Even better |
| 20 | +you can submit a Pull Request with a fix for the issue you filed. |
| 21 | + |
| 22 | +## <a name="feature"></a> Want a Feature? |
| 23 | +You can request a new feature by submitting an issue to our |
| 24 | +[GitHub Issue Tracker][issue tracker]. If you would like to implement a new |
| 25 | +feature then first create a new issue and discuss it with one of our project |
| 26 | +maintainers. |
| 27 | + |
| 28 | +## <a name="submit"></a> Submission Guidelines |
| 29 | + |
| 30 | +### Submitting an Issue |
| 31 | +If your issue appears to be a bug, and hasn't been reported, open a new issue. |
| 32 | +Providing the following information will increase the chances of your issue |
| 33 | +being dealt with quickly: |
| 34 | + |
| 35 | +* **Overview of the Issue** - if an error is being thrown a stack trace helps |
| 36 | +* **Motivation for or Use Case** - explain why this is a bug for you |
| 37 | +* **Environment** - Mac, windows? Firefox, Chrome? details help |
| 38 | +* **Suggest a Fix** - if you can't fix the bug yourself, perhaps you can point |
| 39 | +to what might be causing the problem (line of code or commit) |
| 40 | + |
| 41 | +### Submitting a Pull Request |
| 42 | + |
| 43 | +#### Fill in the CLA |
| 44 | + |
| 45 | +Before we can accept your pull request, we need you to sign the [Contributor |
| 46 | +License Agreement](http://developer.marklogic.com/products/cla). |
| 47 | + |
| 48 | +#### Fork the Java Client API |
| 49 | + |
| 50 | +Fork the project [on GitHub](https://github.com/marklogic/java-client-api/fork) |
| 51 | +and clone your copy. |
| 52 | + |
| 53 | + $ git clone git@github.com:username/java-client-api.git |
| 54 | + $ cd java-client-api |
| 55 | + $ git remote add upstream git://github.com/marklogic/java-client-api.git |
| 56 | + |
| 57 | +All bug fixes and new features go into the dev branch. |
| 58 | + |
| 59 | +We ask that you open an issue in the [issue tracker][] and get agreement from |
| 60 | +at least one of the project maintainers before you start coding. |
| 61 | + |
| 62 | +Nothing is more frustrating than seeing your hard work go to waste because |
| 63 | +your vision does not align with that of a project maintainer. |
| 64 | + |
| 65 | +#### Create a branch for your changes |
| 66 | + |
| 67 | +Okay, so you have decided to fix something. Create a feature branch |
| 68 | +and start hacking: |
| 69 | + |
| 70 | + $ git checkout -b my-feature-branch -t origin/dev |
| 71 | + |
| 72 | +#### Commit your changes |
| 73 | + |
| 74 | +Make sure git knows your name and email address: |
| 75 | + |
| 76 | + $ git config --global user.name "J. Random User" |
| 77 | + $ git config --global user.email "j.random.user@example.com" |
| 78 | + |
| 79 | +Writing good commit logs is important. A commit log should describe what |
| 80 | +changed and why. Follow these guidelines when writing one: |
| 81 | + |
| 82 | +1. The first line should be 50 characters or less and contain a short |
| 83 | + description of the change including the Issue number prefixed by a hash (#). |
| 84 | +2. Keep the second line blank. |
| 85 | +3. Wrap all other lines at 72 columns. |
| 86 | + |
| 87 | +A good commit log looks like this: |
| 88 | + |
| 89 | +``` |
| 90 | +Fixing Issue #123: make the whatchamajigger work in MarkLogic 8 |
| 91 | +
|
| 92 | +Body of commit message is a few lines of text, explaining things |
| 93 | +in more detail, possibly giving some background about the issue |
| 94 | +being fixed, etc etc. |
| 95 | +
|
| 96 | +The body of the commit message can be several paragraphs, and |
| 97 | +please do proper word-wrap and keep columns shorter than about |
| 98 | +72 characters or so. That way `git log` will show things |
| 99 | +nicely even when it is indented. |
| 100 | +``` |
| 101 | + |
| 102 | +The header line should be meaningful; it is what other people see when they |
| 103 | +run `git shortlog` or `git log --oneline`. |
| 104 | + |
| 105 | +#### Rebase your repo |
| 106 | + |
| 107 | +Use `git rebase` (not `git merge`) to sync your work from time to time. |
| 108 | + |
| 109 | + $ git fetch upstream |
| 110 | + $ git rebase upstream/dev |
| 111 | + |
| 112 | +#### Test your code |
| 113 | + |
| 114 | +Be sure to run the tests before submitting your pull request. PRs with failing |
| 115 | +tests won't be accepted. |
| 116 | + |
| 117 | + $ mvn test-compile |
| 118 | + $ sh src/test/resources/boot-test.sh |
| 119 | + $ mvn test |
| 120 | + |
| 121 | +#### Push your changes |
| 122 | + |
| 123 | + $ git push origin my-feature-branch |
| 124 | + |
| 125 | +#### Submit the pull request |
| 126 | + |
| 127 | +Go to https://github.com/username/java-client-api and select your feature |
| 128 | +branch. Click the 'Pull Request' button and fill out the form. |
| 129 | + |
| 130 | +Pull requests are usually reviewed within a few days. If you get comments that |
| 131 | +need to be to addressed, apply your changes in a separate commit and push that |
| 132 | +to your feature branch. Post a comment in the pull request afterwards; GitHub |
| 133 | +does not send out notifications when you add commits to existing pull requests. |
| 134 | + |
| 135 | +That's it! Thank you for your contribution! |
| 136 | + |
| 137 | + |
| 138 | +#### After your pull request is merged |
| 139 | + |
| 140 | +After your pull request is merged, you can safely delete your branch and pull |
| 141 | +the changes from the main (upstream) repository: |
| 142 | + |
| 143 | +* Delete the remote branch on GitHub either through the GitHub web UI or your |
| 144 | +local shell as follows: |
| 145 | + |
| 146 | + $ git push origin --delete my-feature-branch |
| 147 | + |
| 148 | +* Check out the dev branch: |
| 149 | + |
| 150 | + $ git checkout dev -f |
| 151 | + |
| 152 | +* Delete the local branch: |
| 153 | + |
| 154 | + $ git branch -D my-feature-branch |
| 155 | + |
| 156 | +* Update your dev with the latest upstream version: |
| 157 | + |
| 158 | + $ git pull --ff upstream dev |
| 159 | +[issue tracker]: https://github.com/marklogic/java-client-api/issues |
0 commit comments