blob: d377df698810540d5a0fbffffb0efb327dabb603 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Apache Olingo provides libraries which enable developers to implement OData producers and OData consumers. The available OData Java library implements OData version 2.0. In future on goal is to provide an OData 4.0 compliant library once the OData standard is published at OASIS. The focus within the community is currently on the Java technology but it is up to the community to discuss if other environments find interest.">
<meta name="author" content="">
<link rel="icon" href="/favicon.ico">
<title>Apache Olingo Library</title>
<!-- Bootstrap core CSS -->
<link href="/css/bootstrap.css" rel="stylesheet" type="text/css"><!-- Custom styles for this template -->
<link href="/css/navbar.css" rel="stylesheet" type="text/css"><!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<link href="/css/offcanvas.css" rel="stylesheet" type="text/css"><!-- Custom styles for this template -->
<link rel="stylesheet" href="/css/main.css">
<!--[if lt IE 9]><script src="/js/ie8-responsive-file-warning.js"></script><![endif]-->
<style>
.headerlink {
visibility: hidden;
}
dt:hover > .headerlink, p:hover > .headerlink, td:hover > .headerlink, h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
visibility: visible
} </style>
<script src="/js/ie-emulation-modes-warning.js" type="text/javascript">
</script><!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="/js/ie10-viewport-bug-workaround.js" type="text/javascript">
</script><!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<script src="/js/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<!-- Static navbar -->
<div class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<img class="navbar-brand" src="/img/OlingoOrangeTM.png" style="width:62px;" >
<a class="navbar-brand" href="/">Apache Olingo™</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">ASF <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="http://www.apache.org/foundation/">ASF Home</a></li>
<li><a href="http://projects.apache.org/">Projects</a></li>
<li><a href="http://people.apache.org/">People</a></li>
<li><a href="http://www.apache.org/foundation/getinvolved.html">Get Involved</a></li>
<li><a href="http://www.apache.org/dyn/closer.cgi">Download</a></li>
<li><a href="http://www.apache.org/security/">Security</a></li>
<li><a href="http://www.apache.org/foundation/sponsorship.html">Support Apache</a></li>
</ul>
</li>
<li><a href="http://www.apache.org/licenses/">License</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Download <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/doc/odata2/download.html">Download OData 2.0 Java</a></li>
<li><a href="/doc/odata4/download.html">Download OData 4.0 Java</a></li>
<li><a href="/doc/javascript/download.html">Download OData 4.0 JavaScript</a></li>
</ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="/doc/odata2/index.html">Documentation OData 2.0 Java</a></li>
<li><a href="/doc/odata4/index.html">Documentation OData 4.0 Java</a></li>
<li><a href="/doc/javascript/index.html">Documentation OData 4.0 JavaScript</a></li>
</ul>
</li>
<li><a href="/support.html">Support</a></li>
<li><a href="/contribute.html">Contribute</a></li>
</ul>
<a class="navbar-right" href="http://www.apache.org/foundation/" target="_blank">
<img class="navbar-right" height="50px" src="/img/asf_logo_url.svg" alt="Apache Software Foundation">
</a>
</div><!--/.nav-collapse -->
</div><!--/.container-fluid -->
</div><!-- Main component for a primary marketing message or call to action -->
<h1 id="apache-olingo-how-to-contribute">Apache Olingo - How To Contribute<a class="headerlink" href="#apache-olingo-how-to-contribute" title="Permalink">&para;</a></h1>
<p><strong>Content</strong></p>
<div id="toc"><ul><li><a class="toc-href" href="#overview" title="Overview">Overview</a></li><li><a class="toc-href" href="#contribute-via-git-patchpull-request-and-olingo-jira" title="Contribute via Git-Patch/Pull-Request and Olingo-JIRA">Contribute via Git-Patch/Pull-Request and Olingo-JIRA</a></li><li><a class="toc-href" href="#report-a-bug-or-feature" title="Report a bug or feature">Report a bug or feature</a></li><li><a class="toc-href" href="#develop-the-according-bugfix-feature" title="Develop the according bugfix / feature">Develop the according bugfix / feature</a><ul><li><a class="toc-href" href="#clone-the-olingo-project" title="Clone the Olingo Project">Clone the Olingo Project</a></li><li><a class="toc-href" href="#providing-bugfix-code" title="Providing bugfix / code">Providing bugfix / code</a></li><li><a class="toc-href" href="#prepare-your-code-for-contribution" title="Prepare your code for contribution">Prepare your code for contribution</a></li></ul></li></ul></div>
<h3 id="overview">Overview<a class="headerlink" href="#overview" title="Permalink">&para;</a></h3>
<p>If you want to contribute to the Olingo Project, you can submit patches, report bugs or provide documentation and tutorials. Contributions are managed in the project <a href="https://issues.apache.org/jira/browse/OLINGO">JIRA</a>. So if you found a bug or want to provide a contribution please open a new <a href="https://issues.apache.org/jira/browse/OLINGO">JIRA</a> ticket. Detailed information how to contribute can be found in the following chapter.</p>
<h3 id="contribute-via-git-patchpull-request-and-olingo-jira">Contribute via Git-Patch/Pull-Request and Olingo-JIRA<a class="headerlink" href="#contribute-via-git-patchpull-request-and-olingo-jira" title="Permalink">&para;</a></h3>
<p>The Olingo uses the following process for contributions:</p>
<ol>
<li>Clone the Olingo Project</li>
<li>Report a bug or feature (you must be <a href="https://issues.apache.org/jira/login.jsp">signed in</a> to open an issue)</li>
<li>Develop the according bugfix / feature</li>
<li>Prepare your code for contribution</li>
<li>Submit your JIRA ticket to receive feedback</li>
</ol>
<h3 id="report-a-bug-or-feature">Report a bug or feature<a class="headerlink" href="#report-a-bug-or-feature" title="Permalink">&para;</a></h3>
<p>If have you found a bug, please provide a detailed explanation how the bug can be reproduced.</p>
<p>You should mention the following properties:</p>
<ul>
<li>Version of the library e.g. <code>(Java) V4 4.0.0</code></li>
<li>If a part of the implementation is not compliant to the OData protocol, please link the related part of the speciation or provide a link to the related JIRA issue of OData protocol. The official OASIS-OData JIRA can be found <a href="https://issues.oasis-open.org/browse/ODATA/">here</a></li>
<li>Often bugs are related to the underlying metadata document. Please append the related part of the metadata document to reproduce the bug.</li>
<li>Provide a code snipped to reproduce the bug.</li>
<li>If you receive an exception, provide the stack trace of the exception.</li>
<li>Append further information in which part of the library the bug occurs (if available).</li>
<li>If you have fixed a bug, you can append the solution to the request. Further information how to append your solution to a ticket are provided in the following chapters.</li>
</ul>
<p><strong>Bug/Feature Priorities</strong>
The Olingo project uses the following definition of priorities:</p>
<ul>
<li><em>Blocker</em> - This bug/feature must be fixed/implemented before the next release</li>
<li><em>Critical</em> - This bug/feature should be resolved/implemented immediately and must be fixed/implemented before the next major release.</li>
<li><em>Major</em> - This bug/feature should be resolved/implemented as soon as possible in the normal course of development activity, before the software is released.</li>
<li><em>Minor</em> (<strong>default</strong>) - This bug/feature should be fixed/implemented after serious bugs have been fixed/implemented.</li>
<li><em>Trivial</em> - This bug/feature can be resolved in a future major system revision or not be resolved/implemented at all.</li>
</ul>
<p>The default priority is <strong>Minor</strong>.</p>
<p><strong>Bug/Feature Types</strong>
The Olingo project uses the following <em>types</em> for an issue:</p>
<ul>
<li><em>Feature</em> - An issue that introduced a new feature (behaviour) to the Olingo library (this could be e.g. an additional not yet implemented part of the OData specification or convenience methods)</li>
<li><em>Improvement</em> - An issue that improves an existing feature (behaviour) of the Olingo library (this could be e.g. a convenience method or internal improvements which does not change behavior)</li>
<li><em>Bug</em> - An issue that describes an incorrect behaviour of the Olingo library in relation to the according OData specification.</li>
<li><em>Test</em> - An issue that only improve or extends tests for the Olingo library.</li>
<li><em>Task</em> - An issue that improve or extends basic parts for the Olingo library without changing code (or logic). This could be e.g. improvements or changes necessary for the build infrastructure.</li>
<li><em>Question</em> - An issue that only is a question related to the Olingo library.</li>
</ul>
<h3 id="develop-the-according-bugfix-feature">Develop the according bugfix / feature<a class="headerlink" href="#develop-the-according-bugfix-feature" title="Permalink">&para;</a></h3>
<h4 id="clone-the-olingo-project">Clone the Olingo Project<a class="headerlink" href="#clone-the-olingo-project" title="Permalink">&para;</a></h4>
<p>The current development version can be found in the Apache git repository.
Please note Olingo provides two different libraries. One one hand Olingo V2 which implements the OData V2 specification and Olingo V4, which implements the OData V4 specification.</p>
<p>To clone the current master branch of the Olingo project please use one of the following commands:</p>
<p><strong>Olingo V2 Code</strong></p>
<pre><code>git clone https://gitbox.apache.org/repos/asf/olingo-odata2
</code></pre>
<p><strong>Olingo V4 code</strong></p>
<pre><code>git clone https://gitbox.apache.org/repos/asf/olingo-odata4
</code></pre>
<h4 id="providing-bugfix-code">Providing bugfix / code<a class="headerlink" href="#providing-bugfix-code" title="Permalink">&para;</a></h4>
<p>To provide a bug fix, checkout the current master branch of the project and develop your solution. In Olingo we truly believe in tests, so your contribution should at least contain tests that show that your contribution works as expected and also tests that reproduces the previous reported bug. If you provide a new feature your tests should reach at least 80 percent test-coverage.</p>
<p>To ensure this we have lots of tests and use <a href="http://cobertura.github.io/cobertura/">Cobertura</a> as <em>code coverage tool</em>. In addition there exists separate build jobs on the Apache Build servers for latest versions of <a href="https://builds.apache.org/job/olingo-odata2-cobertura/">Olingo V2</a> and <a href="https://builds.apache.org/job/olingo-odata4-cobertura/">Olingo V4</a>.</p>
<p>To append your contribution to a JIRA ticket, please create a patch file as explained in the chapter.</p>
<p><strong>Providing documentation for the Apache website</strong>
To provide documentation or tutorials you should write your contribution using <a href="www.apache.org/dev/cmsref#markdown">a Markdown syntax</a>.</p>
<h4 id="prepare-your-code-for-contribution">Prepare your code for contribution<a class="headerlink" href="#prepare-your-code-for-contribution" title="Permalink">&para;</a></h4>
<p>To append you contribution to a JIRA issue, please create a <a href="https://git-scm.com/docs/git-format-patch">patch file</a>. The commit message should contain the JIRA request number (e.g. OLINGO-42) and a short commit message.</p>
<p><strong>Example - Create a patch file</strong>
You have done several commits and want to provide a single commit which contains all your changes.</p>
<pre><code>...
git commit -m "[OLINGO-42] Start development new feature"
git commit -m "[OLINGO-42] Added new tests"
git commit -m "[OLINGO-42] Typo fixed"
...
git rebase -i HEAD~3
git format-patch -1
</code></pre>
<p>First rebase your local history to create a single commit. After that create a patch file using <code>git format-patch</code>. Now you can upload and append your created patch file to the JIRA issue.</p>
<p><strong>Example - Applying a patch file</strong>
You like to apply a patch file named "OLINGO_42.patch". Use the following commands:</p>
<pre><code>git am --signoff OLINGO_42.patch
</code></pre>
<div align="center">
<p>Copyright © 2013-2022, The Apache Software Foundation<br>
Apache Olingo, Olingo, Apache, the Apache feather, and
the Apache Olingo project logo are trademarks of the Apache Software
Foundation.</p>
<small><a href="/doc/odata2/privacy.html">Privacy</a></small>
</div>
</div><!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="/js/jquery.js" type="text/javascript">
</script>
<script src="/js/bootstrap.js" type="text/javascript">
</script>
<script src="/js/offcanvas.js" type="text/javascript">
</script>
<link rel="stylesheet" href="/css/docco.css">
<script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.0.1/build/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</body>
</html>