blob: c20ba506fe609c7b9a563825c5eaaeb0f8015446 [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-release-documentation">Apache Olingo Release Documentation<a class="headerlink" href="#apache-olingo-release-documentation" title="Permalink">&para;</a></h1>
<hr/>
<h3 id="introduction">Introduction<a class="headerlink" href="#introduction" title="Permalink">&para;</a></h3>
<p>This document describes the release guidelines for Apache Olingo. It heavily refers
to <a href="http://maven.apache.org/developers/release/apache-release.html">standard Apache procedures to release</a>
Maven based projects at Apache.</p>
<h3 id="build-environments">Build Environments<a class="headerlink" href="#build-environments" title="Permalink">&para;</a></h3>
<p>Apache Olingo is built and released with <a href="http://maven.apache.org">Maven3</a> and uses
the <a href="http://svn.apache.org/repos/asf/maven/pom/tags/apache-13/pom.xml">Apache POM version 13</a>.</p>
<h3 id="release-artifacts">Release Artifacts<a class="headerlink" href="#release-artifacts" title="Permalink">&para;</a></h3>
<p>An Apache Olingo release consists of:</p>
<ul>
<li>All POMs/JARs/WARs built as part of the standard Maven build process. For
an overview on the released modules see artifacts with groupId
<em>org.apache.olingo</em> in the <a href="https://repository.apache.org/index.html#nexus-search;gav%7Eorg.apache.olingo%7E%7E%7E%7E">Apache Maven Repository</a>.
In detail, per every module, where applicable, the following artifacts are produced:</li>
<li><strong>Main artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;.&lt;ext&gt;</code></li>
<li><strong>Source artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;-sources.&lt;ext&gt;</code></li>
<li><strong>Javadoc artifact</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;-javadoc.&lt;ext&gt;</code></li>
<li><strong>POM</strong>: <code>&lt;artifactId&gt;-&lt;version&gt;.pom</code></li>
</ul>
<p>Also the following additional <em>distribution commodity packages</em> are
provided as part of the release:</p>
<ul>
<li>
<p><code>org.apache.olingo-olingo-odata2-parent-${version}-source-release.${ext}</code> <br/> A source-release
bundle containing all files the sources necessary to build all other artifacts. <br/> <strong>Package formats</strong>: zip.</p>
</li>
<li>
<p><code>org.apache.olingo-olingo-odata2-dist-${version}-lib.${ext}</code> <br/> A bundle containing the OData2 core
library and dependencies required to implement an OData V2 processor. <br/> <strong>Package formats</strong>: zip.</p>
</li>
<li>
<p><code>org.apache.olingo-olingo-odata2-dist-${version}-javadoc.${ext}</code> <br/> A bundle
containing JavaDoc of the OData2 library API and annotations, the
JPA processor API as well as additional documentation and reference scenario
examples. <br/> <strong>Package formats</strong>: zip.</p>
</li>
<li>
<p><code>org.apache.olingo-olingo-odata2-dist-${version}-jpa.${ext}</code> <br/> A bundle containing the OData2 JPA
processor and dependencies required to implement an OData V2 processor. <br/> <strong>Package formats</strong>: zip.</p>
</li>
<li>
<p><code>org.apache.olingo-olingo-odata2-dist-${version}-janos.${ext}</code> <br/> A bundle containing the OData2 Java Annotation
processor and dependencies required to implement an OData V2 processor using Java Annotations. <br/> <strong>Package formats</strong>: zip.</p>
</li>
<li>
<p><code>org.apache.olingo-olingo-odata2-dist-${version}-ref.${ext}</code> <br/> A bundle containing ready-to-depoly WAR
files of the OData V2 reference scenarios implementations for the core library and the JPA processor. <br/> <strong>Package formats</strong>: zip.</p>
</li>
</ul>
<h3 id="documentation-and-javadoc">Documentation and JavaDoc<a class="headerlink" href="#documentation-and-javadoc" title="Permalink">&para;</a></h3>
<p>The documentation that will be part of the release must match the code.
All examples in the documentation must work. The Java package documentation must be
up-to-date. Release independend documentation is maintained on the <a href="/documentation.html">Apache Olingo Documentation</a> page.</p>
<h3 id="preparation">Preparation<a class="headerlink" href="#preparation" title="Permalink">&para;</a></h3>
<h5 id="release-manager">Release Manager<a class="headerlink" href="#release-manager" title="Permalink">&para;</a></h5>
<p>A release manager must be appointed for a release. He or she is in charge of the release process,
following the guidelines and eventually generating the release artifacts.
The release manager might tailor the process for a specific release.</p>
<h5 id="version">Version<a class="headerlink" href="#version" title="Permalink">&para;</a></h5>
<p>The Olingo community decides if the release will be a major or a minor release and
agrees on a version number.</p>
<pre><code>mvn versions:set -DnewVersion=1.0.0-RC01
find . -name '*.versionsBackup' -type f -delete
git add .
git commit -am 'Issue OLINGO-25 - make release - set version 1.0.0-RC01'
git tag -f 1.0.0-RC01
mvn versions:set -DnewVersion=1.1.0-SNAPSHOT
find . -name '*.versionsBackup' -type f -delete
git add .
git commit -am 'Issue OLINGO-25 - make release - set version 1.1.0-SNAPSHOT'
git push
git push --tags
</code></pre>
<h5 id="open-issues">Open Issues<a class="headerlink" href="#open-issues" title="Permalink">&para;</a></h5>
<p>There must not be any open JIRA issues for this release. There might be open issues for
future releases. Check with: <a href="https://issues.apache.org/jira/browse/OLINGO/fixforversion/12324804">fix for version view</a></p>
<h5 id="unit-tests-and-integration-tests">Unit Tests and Integration Tests<a class="headerlink" href="#unit-tests-and-integration-tests" title="Permalink">&para;</a></h5>
<p>All unit tests and integration tests must succeed on a
clean machine (starting with an empty local Maven repository). The following Maven
execution will run all unit and integration tests:</p>
<pre><code>mvn clean install
</code></pre>
<h5 id="apache-license-and-code-style">Apache License and Code Style<a class="headerlink" href="#apache-license-and-code-style" title="Permalink">&para;</a></h5>
<p>Each source code file must have a current ASF license header. The source
code should follow the Apache Olingo code style. For verification run following
Maven execution</p>
<pre><code>mvn clean install -Pbuild.quality
</code></pre>
<h5 id="packaging">Packaging<a class="headerlink" href="#packaging" title="Permalink">&para;</a></h5>
<p>NOTICE, LICENSE and DISCLAIMER must be present in all bundles and must be up-to-date.</p>
<p>Remote resources are provided by the ASF and the Maven <code>remote-resources-plugin</code> is
configured in the parent pom of the project.</p>
<pre><code class="language-xml">&lt;resourceBundle&gt;org.apache:apache-jar-resource-bundle:1.4&lt;/resourceBundle&gt;
&lt;resourceBundle&gt;org.apache:apache-disclaimer-resource-bundle:1.1&lt;/resourceBundle&gt;
</code></pre>
<p>The Maven module <code>odata2-dist</code> is responsible to package convenience distribution zip files
using the assembly plugin. The distributions are created with a release build <code>mvn clean install -Papache-release -Dgpg.passphrase="yourPassphraseHere"</code></p>
<h5 id="sha-for-distribution-packages">SHA for distribution packages<a class="headerlink" href="#sha-for-distribution-packages" title="Permalink">&para;</a></h5>
<p>SHA files are created manually for distribution packages:</p>
<pre><code>gpg --print-md SHA512 ${filename}.zip &gt; ${filename}.zip.sha512
</code></pre>
<p>DO NOT generate md5 files.</p>
<h5 id="release-tag">Release Tag<a class="headerlink" href="#release-tag" title="Permalink">&para;</a></h5>
<p>A tag has to be created for every release candidate. The naming rule
for the tags is olingo-${version}-RCxx. This is created as
part of the Maven release process. The tag will be renamed to the
final version number upon vote approval.</p>
<h5 id="release-branch">Release Branch<a class="headerlink" href="#release-branch" title="Permalink">&para;</a></h5>
<p>A branch has to be created for every release. The naming rule for this
branch is olingo-${version}. This has to be created
manually upon release approval.</p>
<h3 id="release-candidate">Release Candidate<a class="headerlink" href="#release-candidate" title="Permalink">&para;</a></h3>
<p>Once all preparations are done, a release candidate will be built.</p>
<p>All release candidates must be cryptographically signed. The string
"-RCxx" will be attached to the version number of the release candidate
artifacts, where is the number of the release candidate starting with 01.
If more than one release candidate is required a new tag has to be created
and release candidate number will be increased by one.</p>
<p>The release candidate artifacts:</p>
<ul>
<li>Maven artifacts will be staged on repository.apache.org. A new staging repo
is created per RC and will be communicated upon release.</li>
<li>Distribution commodity packages are staged at
<a href="http://people.apache.org/%7E%5Busername%5D/olingo2/%5Bversion%5D">http://people.apache.org/~[username]/olingo2/[version]</a> (e.g. <a href="http://people.apache.org/%7Emibo/olingo2/2.0.0-RC01">http://people.apache.org/~mibo/olingo2/2.0.0-RC01</a>)</li>
</ul>
<p>Once candidate artifacts are available, release manager kicks off the [VOTE process][3].</p>
<p>If the vote fails, the raised issues will be fixed, a new release candidate will be
built and the VOTE process will be restarted.</p>
<p>If the release candidate gets approved, we can proceed to release publishing.</p>
<h4 id="how-to-verify-a-release-candidate">How to verify a Release Candidate<a class="headerlink" href="#how-to-verify-a-release-candidate" title="Permalink">&para;</a></h4>
<p>This checklist helps verifying if a release candidate is valid:</p>
<ul>
<li>Are all files on "<a href="http://people.apache.org/%7E%5Busername%5D/olingo2/%5Bversion%5D">http://people.apache.org/~[username]/olingo2/[version]</a>"?</li>
<li>Check if md5, sha512 and asc files are filled correctly?</li>
<li>Can the zip files be unpacked without issues?</li>
<li>Execute a "mvn clean install -Pbuild.quality" on parent distribution. It should work without issues.</li>
<li>Does the JavaDoc only contain API documentation?</li>
<li>Is there a Disclaimer, Notice, License and Dependencies File in every folder?</li>
<li>Do all License files contain the right amount of licenses?</li>
<li>Do Notice files mention 3rd party libraries if they are contained in the distribution?</li>
</ul>
<p>After all questions of this checklist can be answered with yes it is OK to give a +1 on the mailing list.
Of course the Release Manager can also use this checklist to make sure all artifacts are correct before publishing the results on the mailing list.</p>
<h3 id="publishing-the-release">Publishing the Release<a class="headerlink" href="#publishing-the-release" title="Permalink">&para;</a></h3>
<p>If the release candidate gets approved, we can proceed to release publishing:</p>
<ul>
<li>Release candidate maven artifacts are promoted in the Apache Maven Repository and
made available <a href="https://repository.apache.org/index.html#nexus-search;gav%7Eorg.apache.olingo%7E%7E%7E%7E">here</a>.</li>
<li>Publish final release Version to <a href="https://repository.apache.org/">Apache Repository</a>
<ul>
<li>First publish via <code>mvn deploy -Papache-release</code> into the <em>Staging Area</em></li>
<li>From <em>Staging Area</em> close and release the staged Artifacts to finish publishing</li>
<li>Afterwards the Maven artifacts are automatically synced to <a href="http://search.maven.org/#search%7Cga%7C1%7Corg.apache.olingo">Maven Central</a>.</li>
</ul>
</li>
<li>Release candidate commodity packages are synced (together with their checksum and
signatures) to <a href="http://www.apache.org/dist/olingo/">Apache Distributions</a>.</li>
<li>Release tag is renamed to final version.</li>
<li>Release branch is created.</li>
<li>Release is closed in Jira.</li>
<li>Release is announced to <a href="mailto:dev@olingo.apache.org">dev@olingo.apache.org</a>, <a href="mailto:announce@apache.org">announce@apache.org</a>.</li>
</ul>
<h3 id="maintain-release-distributions">Maintain Release Distributions<a class="headerlink" href="#maintain-release-distributions" title="Permalink">&para;</a></h3>
<p>To maintain the released Distributions for the download pages following steps are required (for more information see <a href="http://www.apache.org/dev/release-publishing.html#distribution_dist">Apache Distribution Documentation</a>) to upload the new distribution via SVN (<code>svn co https://dist.apache.org/repos/dist/release/olingo</code>):</p>
<ul>
<li>Check out latest SVN revision via <code>svn co https://dist.apache.org/repos/dist/release/olingo</code></li>
<li>Change into the directory according to the released Olingo artifact (e.g. <code>odata2</code>, <code>odata4</code>, ...)</li>
<li>Create new directory according to release version (e.g <code>rel-x.x.x</code>) and copy all distribution artifacts (includes <em>.zip</em>, <em>.asc</em>, <em>.md5</em>, <em>.sha512</em>).</li>
<li>Add new directory (e.g. <code>svn add rel-x.x.x</code>) and do the commit (e.g <code>svn ci -m "Added Olingo x.x.x release"</code>)</li>
<li>Afterwards do a cleanup for the old releases according to the Apache Release Guidelines <a href="http://www.apache.org/dev/release.html#when-to-archive">When</a> and <a href="http://www.apache.org/dev/release.html#how-to-archive">How</a> to archive.</li>
</ul>
<h3 id="maintain-version-section-in-doap-file">Maintain Version Section in DOAP File<a class="headerlink" href="#maintain-version-section-in-doap-file" title="Permalink">&para;</a></h3>
<p><a href="/doap_Olingo.rdf">http://olingo.apache.org/doap_Olingo.rdf</a></p>
<p>Results are shown here:</p>
<p><a href="http://projects.apache.org/indexes/alpha.html#O">link text</a></p>
<h3 id="additional-apache-release-information">Additional Apache Release Information<a class="headerlink" href="#additional-apache-release-information" title="Permalink">&para;</a></h3>
<ul>
<li><a href="http://www.apache.org/dev/release.html">Releases Policy</a></li>
<li><a href="http://www.apache.org/dev/release-publishing.html">Publishing Releases</a></li>
<li><a href="http://www.apache.org/dev/publishing-maven-artifacts.html">Publishing Maven Artifacts</a></li>
</ul>
<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>