| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta 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="Home page of The Apache Software Foundation"> |
| <link rel="apple-touch-icon" sizes="57x57" href="/favicons/apple-touch-icon-57x57.png"> |
| <link rel="apple-touch-icon" sizes="60x60" href="/favicons/apple-touch-icon-60x60.png"> |
| <link rel="apple-touch-icon" sizes="72x72" href="/favicons/apple-touch-icon-72x72.png"> |
| <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon-76x76.png"> |
| <link rel="apple-touch-icon" sizes="114x114" href="/favicons/apple-touch-icon-114x114.png"> |
| <link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon-120x120.png"> |
| <link rel="apple-touch-icon" sizes="144x144" href="/favicons/apple-touch-icon-144x144.png"> |
| <link rel="apple-touch-icon" sizes="152x152" href="/favicons/apple-touch-icon-152x152.png"> |
| <link rel="apple-touch-icon" sizes="180x180" href="/favicons/apple-touch-icon-180x180.png"> |
| <link rel="icon" type="image/png" href="/favicons/favicon-32x32.png" sizes="32x32"> |
| <link rel="icon" type="image/png" href="/favicons/favicon-194x194.png" sizes="194x194"> |
| <link rel="icon" type="image/png" href="/favicons/favicon-96x96.png" sizes="96x96"> |
| <link rel="icon" type="image/png" href="/favicons/android-chrome-192x192.png" sizes="192x192"> |
| <link rel="icon" type="image/png" href="/favicons/favicon-16x16.png" sizes="16x16"> |
| <link rel="manifest" href="/favicons/manifest.json"> |
| <link rel="shortcut icon" href="/favicons/favicon.ico"> |
| <meta name="msapplication-TileColor" content="#603cba"> |
| <meta name="msapplication-TileImage" content="/favicons/mstile-144x144.png"> |
| <meta name="msapplication-config" content="/favicons/browserconfig.xml"> |
| <meta name="theme-color" content="#282661"> |
| |
| <title>Release Policy</title> |
| <link href="/css/Montserrat-300-600.css" rel="stylesheet"> |
| <link href="/css/min.bootstrap.css" rel="stylesheet"> |
| <link href="/css/styles.css" rel="stylesheet"> |
| <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> |
| |
| <!-- pagefind search --> |
| <link href="/_pagefind/pagefind-ui.css" rel="stylesheet"> |
| <script src="/_pagefind/pagefind-ui.js" type="text/javascript"></script> |
| <script> |
| window.addEventListener('DOMContentLoaded', (event) => { |
| new PagefindUI({ element: "#pagefind-search" }); |
| }); |
| var pageTitle = 'Release Policy'; |
| if(pageTitle === '404'){ |
| window.addEventListener('DOMContentLoaded', (event) => { |
| new PagefindUI({ element: "#page-404-search" }); |
| }); |
| } |
| </script> |
| |
| |
| <!-- https://www.apache.org/licenses/LICENSE-2.0 --> <!-- Matomo --> |
| <script> |
| var pageTitle = 'Release Policy'; |
| var _paq = window._paq = window._paq || []; |
| /* tracker methods like "setCustomDimension" should be called before |
| "trackPageView" */ |
| /* We explicitly disable cookie tracking to avoid privacy issues */ |
| _paq.push(['disableCookies']); |
| if(pageTitle === '404'){ |
| /* Track 404 page hits */ |
| _paq.push(['setDocumentTitle', '404/URL = ' + encodeURIComponent(document.location.pathname+document.location.search) + '/From = ' + encodeURIComponent(document.referrer)]); |
| } |
| /* Measure a visit to flink.apache.org and nightlies.apache.org/flink |
| as the same visit */ |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u="//analytics.apache.org/"; |
| _paq.push(['setTrackerUrl', u+'matomo.php']); |
| _paq.push(['setSiteId', '37']); |
| var d=document, g=d.createElement('script'), |
| s=d.getElementsByTagName('script')[0]; |
| g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| |
| </head> |
| |
| <body > |
| <!-- Navigation --> |
| <header> |
| <div id="skiptocontent"> |
| <a href="#maincontent">Skip to Main Content</a> |
| </div> |
| <nav class="navbar navbar-inverse navbar-fixed-top mainmenu"> |
| |
| <div class="container"> |
| <div class="navbar-header"> |
| <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#mainnav-collapse"> |
| <span class="sr-only">Toggle navigation</span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| <span class="icon-bar"></span> |
| </button> |
| </div> |
| <div class="collapse navbar-collapse" id="mainnav-collapse"> |
| <div class="upper-nav"> |
| <div class="header-social-icons"> |
| <a target="_blank" href="https://infra.apache.org/slack.html"><img src="/images/slack-icon.svg" alt="slack icon"></a> |
| <a target="_blank" href="https://github.com/apache"><img src="/images/github-mark-white.svg" alt="github icon"></a> |
| <a target="_blank" href="https://www.linkedin.com/company/the-apache-software-foundation/"><img src="/images/linkedin-icon.png" alt="linkedIn icon"></a> |
| <a target="_blank" href="https://www.youtube.com/c/TheApacheFoundation"><img src="/images/youtube-icon.svg" alt="youtube icon"></a> |
| <a target="_blank" href="https://twitter.com/TheASF"><img src="/images/x-icon.svg" alt="X icon"></a> |
| </div> |
| <a href="/foundation/sponsorship" class="btn btn-default" onclick="_paq.push(['trackEvent', 'click', 'SponsorASF Button']);">Sponsor the ASF</a> |
| </div> |
| <ul class="nav navbar-nav navbar-justified"> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Community <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li> |
| <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li> |
| <li><a href="/foundation/policies/conduct">Code of Conduct</a></li> |
| <li><a href="/community-resources/">Community Resources</a></li> |
| <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li> |
| <li><a href="https://events.apache.org/" target="_blank">Events</a></li> |
| <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Projects <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="/projects">Projects</a></li> |
| <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li> |
| <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li> |
| <li><a href="/foundation/mailinglists">Mailing Lists </a></li> |
| <li><a href="/security">Report a Vulnerability</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Downloads <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li> |
| <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li> |
| <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li> |
| <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Learn <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="https://news.apache.org/" target="_blank">Blog</a></li> |
| <li><a href="/foundation/how-it-works">How the ASF Works</a></li> |
| <li><a href="/theapacheway/">The Apache Way</a></li> |
| <li><a href="/legal/">Legal & Trademark</a></li> |
| <li><a href="/licenses">Licenses</a></li> |
| <li><a href="/foundation/glossary">Glossary</a></li> |
| <li><a href="/foundation/faq">FAQ</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">Resources & Tools <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="/dev/">Developer Information</a></li> |
| <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li> |
| <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li> |
| <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li> |
| <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li> |
| <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li> |
| <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li> |
| <li><a href="/foundation/press/kit/">Brand Guidelines</a></li> |
| <li><a href="/logos/">Project Logos</a></li> |
| </ul> |
| </li> |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button">About <span class="caret"></span></a> |
| <ul class="dropdown-menu" role="menu"> |
| <li><a href="/foundation/">About</a></li> |
| <li><a href="/foundation/sponsors">Our Sponsors</a></li> |
| <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li> |
| <li><a href="/foundation/individual-supporters">Individual Supporters</a></li> |
| <li><a href="/foundation/leadership">Leadership</a></li> |
| <li><a href="/foundation/members">Members</a></li> |
| <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li> |
| <li><a href="/press/">Newsroom</a></li> |
| <li><a href="/foundation/contact">Contact</a></li> |
| </ul> |
| </li> |
| |
| |
| |
| <li class="dropdown"> |
| <a href="#" class="dropdown-toggle hidden-xs" data-toggle="dropdown" role="button"><span class="glyphicon glyphicon-search" |
| aria-hidden="true"></span><span class="sr-only">Search</span></a> |
| <ul class="dropdown-menu search-form" role="search"> |
| <li> |
| <div id="pagefind-search" class="input-group" style="width: 100%; padding: 0 5px;"></div> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </div> |
| </div> |
| </nav> |
| </header> |
| <!-- / Navigation --> |
| <header id="main-header" class="container"> |
| <div class="sideImg"> |
| <a class="visible-home" href="https://events.apache.org/x/current-event.html"> |
| <img class="img-responsive" style="width: 125px;" src="/events/current-event-125x125.png" alt="Apache Events"/> |
| <!-- STALE: <img class="img-responsive" style="width: 125px;" src="https://www.apachecon.com/event-images/default-square-light.png" alt="ApacheCon 2021 Coming Soon!" /> --> |
| </a> |
| <a class="hidden-home" href="/"><img class="img-responsive" src="/img/asf-estd-1999-logo.jpg" alt="The Apache Software Foundation"></a> |
| </div> |
| <div class="main"> |
| <img class="img-responsive center-block visible-home" src="/img/asf-estd-1999-logo.jpg" alt="Apache 20th Anniversary Logo"> |
| |
| </div> |
| |
| </header> |
| <main id="maincontent"> |
| <div class="container"> <h1 id="release-policy">Release Policy<a class="headerlink" href="#release-policy" title="Permalink">¶</a></h1> |
| <p>This page documents the ASF policy on software releases. This document is for ASF release managers and <a href="/foundation/glossary#PMC">PMC</a> members. |
| Information <a href="https://infra.apache.org/release-download-pages.html#best_practice">for end-users</a> is also available.</p> |
| <p>This document summarizes the <a href="https://infra.apache.org/release-publishing.html">release process</a>.</p> |
| <h2 id="contents">Contents<a class="headerlink" href="#contents" title="Permalink">¶</a></h2> |
| <div id="toc"><ul><li><a class="toc-href" href="#policy" title="Release Policy">Release Policy</a><ul><li><a class="toc-href" href="#release-definition" title='Definition of "release"'>Definition of "release"</a></li><li><a class="toc-href" href="#release-approval" title="Release approval">Release approval</a></li><li><a class="toc-href" href="#publication" title="Publication">Publication</a></li><li><a class="toc-href" href="#artifacts" title="Artifacts">Artifacts</a><ul><li><a class="toc-href" href="#source-packages" title="Source packages">Source packages</a></li><li><a class="toc-href" href="#release-signing" title="Release signing">Release signing</a></li><li><a class="toc-href" href="#compiled-packages" title="Compiled packages">Compiled packages</a></li></ul></li><li><a class="toc-href" href="#licensing" title="Licensing">Licensing</a></li><li><a class="toc-href" href="#licensing-documentation" title="Licensing Documentation">Licensing Documentation</a><ul><li><a class="toc-href" href="#license-file" title="The LICENSE file">The LICENSE file</a></li><li><a class="toc-href" href="#notice-file" title="The NOTICE file">The NOTICE file</a></li><li><a class="toc-href" href="#license-headers" title="License Headers">License Headers</a></li></ul></li><li><a class="toc-href" href="#release-distribution" title="Release Distribution">Release Distribution</a><ul><li><a class="toc-href" href="#release-archival" title="Release Archival">Release Archival</a></li></ul></li><li><a class="toc-href" href="#administration" title="Release Policy Administration">Release Policy Administration</a></li><li><a class="toc-href" href="#todo" title="TODO">TODO</a></li><li><a class="toc-href" href="#release-faqs" title="Release FAQs">Release FAQs</a><ul><li><a class="toc-href" href="#why" title="Why do we need a Foundation-wide policy?">Why do we need a Foundation-wide policy?</a></li><li><a class="toc-href" href="#what" title="What is a release?">What is a release?</a></li><li><a class="toc-href" href="#release-types" title="How do the types Of Apache software distribution differ?">How do the types Of Apache software distribution differ?</a></li></ul></li><li><a class="toc-href" href="#management" title="Release Management Questions">Release Management Questions</a><ul><li><a class="toc-href" href="#where-do-releases-go" title="Where do releases go?">Where do releases go?</a></li><li><a class="toc-href" href="#what-must-every-release-contain" title="What Must Every ASF Release Contain?">What Must Every ASF Release Contain?</a></li><li><a class="toc-href" href="#approving-a-release" title="What are the ASF requirements on approving a release?">What are the ASF requirements on approving a release?</a></li><li><a class="toc-href" href="#release-announcements" title="How should releases be announced?">How should releases be announced?</a></li><li><a class="toc-href" href="#best-practice" title="Is there a guide to best practices?">Is there a guide to best practices?</a></li><li><a class="toc-href" href="#owned-controlled-hardware" title="Must releases be built on hardware owned and controlled by the committer?">Must releases be built on hardware owned and controlled by the committer?</a></li></ul></li><li><a class="toc-href" href="#mirroring" title="Release Distribution Questions">Release Distribution Questions</a><ul><li><a class="toc-href" href="#host-rc" title="Where can we host test packages (nightly builds and release candidates)?">Where can we host test packages (nightly builds and release candidates)?</a></li><li><a class="toc-href" href="#host-GA" title="Where can we host public (GA) releases?">Where can we host public (GA) releases?</a></li><li><a class="toc-href" href="#archived" title="How are releases archived?">How are releases archived?</a></li><li><a class="toc-href" href="#when-to-archive" title="When should an old release be archived?">When should an old release be archived?</a></li><li><a class="toc-href" href="#upload-ci" title="How do I upload a release ?">How do I upload a release ?</a></li><li><a class="toc-href" href="#stage" title="Where can I stage a release candidate?">Where can I stage a release candidate?</a></li><li><a class="toc-href" href="#heads-up" title="Do I need to talk to Infrastructure before distributing a release?">Do I need to talk to Infrastructure before distributing a release?</a></li><li><a class="toc-href" href="#build-directories" title="Which Directory for what build?">Which Directory for what build?</a></li><li><a class="toc-href" href="#how-to-archive" title="How is an old release moved to the archives?">How is an old release moved to the archives?</a></li><li><a class="toc-href" href="#maven-artifacts" title="How do I release Maven artifacts?">How do I release Maven artifacts?</a></li></ul></li><li><a class="toc-href" href="#license" title="Release licensing questions">Release licensing questions</a><ul><li><a class="toc-href" href="#which-files-contain-license" title="Which files must contain an ASF license text?">Which files must contain an ASF license text?</a></li><li><a class="toc-href" href="#full-copy-for-each-source-file" title="Is a full copy of the license required in each source file?">Is a full copy of the license required in each source file?</a></li><li><a class="toc-href" href="#attribution-notices" title="Where is the right place for attribution notices?">Where is the right place for attribution notices?</a></li><li><a class="toc-href" href="#notice-content" title="What content is appropriate for the NOTICE file?">What content is appropriate for the NOTICE file?</a></li><li><a class="toc-href" href="#notice-required" title="Is a NOTICE file required for pure ASF code?">Is a NOTICE file required for pure ASF code?</a></li><li><a class="toc-href" href="#distributing-code-under-several-licenses" title="If an artifact contains code under several licenses, should it contain several license files?">If an artifact contains code under several licenses, should it contain several license files?</a></li><li><a class="toc-href" href="#distribute-other-artifacts" title="What are the requirements to distribute other artifacts in addition to the source package?">What are the requirements to distribute other artifacts in addition to the source package?</a></li></ul></li><li><a class="toc-href" href="#stats" title="Questions About Release Statistics">Questions About Release Statistics</a><ul><li><a class="toc-href" href="#downloads" title="Is there any way to measure how many times XYZ has been downloaded?">Is there any way to measure how many times XYZ has been downloaded?</a></li></ul></li></ul></li></ul></div> |
| <h2 id="policy">Release Policy<a class="headerlink" href="#policy" title="Permalink">¶</a></h2> |
| <h3 id="release-definition">Definition of "release"<a class="headerlink" href="#release-definition" title="Permalink">¶</a></h3> |
| <p>Generically, a release is anything that is published beyond the group |
| that owns it. For an Apache project, that means any publication outside the |
| development community, defined as individuals actively participating in |
| development or following the dev list.</p> |
| <p>More narrowly, an official Apache release is one which has been endorsed as an |
| "act of the Foundation" by a PMC.</p> |
| <h3 id="release-approval">Release approval<a class="headerlink" href="#release-approval" title="Permalink">¶</a></h3> |
| <p>Each PMC MUST obey the ASF requirements on approving any release.</p> |
| <p>See the <a href="../foundation/voting.html">ASF voting process</a> page for general |
| information about voting.</p> |
| <p>For a release vote to pass, a minimum of three positive binding votes and more |
| positive binding votes than negative binding votes MUST be cast. Releases may |
| not be vetoed. Votes cast by PMC members are binding, however, non-binding votes |
| are greatly encouraged and a sign of a healthy project. See |
| <a href="../foundation/voting.html#expressing-votes-1-0-1-and-fractions">expressing votes</a> |
| for details on what constitutes positive and negative votes.</p> |
| <p>Before casting +1 binding votes, individuals are REQUIRED to download all |
| signed source code packages onto their own hardware, verify that they meet all |
| requirements of ASF policy on releases as described below, validate all |
| cryptographic signatures, compile as provided, and test the result on their |
| own platform.</p> |
| <p>Release votes SHOULD remain open for at least 72 hours.</p> |
| <h3 id="publication">Publication<a class="headerlink" href="#publication" title="Permalink">¶</a></h3> |
| <p>Projects SHALL publish official releases and SHALL NOT publish unreleased |
| materials outside the development community.</p> |
| <p>During the process of developing software and preparing a release, various |
| packages are made available to the development community for testing |
| purposes. <strong>Projects MUST direct outsiders towards official releases rather |
| than raw source repositories, nightly builds, snapshots, release |
| candidates, or any other similar packages.</strong> |
| Projects SHOULD make available developer resources to support individuals actively |
| participating in development or following the dev list and thus aware of the |
| conditions placed on unreleased materials.</p> |
| <h3 id="artifacts">Artifacts<a class="headerlink" href="#artifacts" title="Permalink">¶</a></h3> |
| <h4 id="source-packages">Source packages<a class="headerlink" href="#source-packages" title="Permalink">¶</a></h4> |
| <p>Every ASF release MUST contain one or more source packages, which MUST be |
| sufficient for a user to build and test the release provided they have |
| access to the appropriate platform and tools. A source release SHOULD not |
| contain compiled code.</p> |
| <h4 id="release-signing">Release signing<a class="headerlink" href="#release-signing" title="Permalink">¶</a></h4> |
| <p>All supplied packages MUST be cryptographically signed with a detached signature. |
| It MUST be signed by either the Release Manager or the automated release |
| infrastructure, where the underlying implementation MUST follow the principles |
| <a href="/dev/release-signing.html#automated-release-signing">outlined</a> by the Apache |
| Security Team. All supplied packages MUST use a detached signature. Those who |
| vote +1 for release MAY offer their own cryptographic signature to be concatenated |
| with the detached signature file (at the Release Manager's discretion) |
| prior to release.</p> |
| <h4 id="compiled-packages">Compiled packages<a class="headerlink" href="#compiled-packages" title="Permalink">¶</a></h4> |
| <p>The Apache Software Foundation produces open source software. All releases |
| are in the form of the source materials needed to make changes to the |
| software being released.</p> |
| <p>As a convenience to users that might not have the appropriate tools to build a |
| compiled version of the source, binary/bytecode packages MAY be distributed |
| alongside official Apache releases. In all such cases, the |
| binary/bytecode package MUST have the same version number as the source |
| release and MUST only add binary/bytecode files that are the result of |
| compiling that version of the source code release and its dependencies.</p> |
| <h3 id="licensing">Licensing<a class="headerlink" href="#licensing" title="Permalink">¶</a></h3> |
| <p>Every ASF release MUST comply with ASF licensing policy. This |
| requirement is of utmost importance and an audit SHOULD be performed before |
| any full release is created. In particular, every artifact distributed MUST |
| contain only appropriately licensed code per <a href="/legal/resolved">Apache Licensing |
| Policy</a>.</p> |
| <h3 id="licensing-documentation">Licensing Documentation<a class="headerlink" href="#licensing-documentation" title="Permalink">¶</a></h3> |
| <p>Each package MUST provide a <code>LICENSE</code> file and a <code>NOTICE</code> file which account |
| for the package's exact content. <code>LICENSE</code> and <code>NOTICE</code> MUST NOT provide |
| unnecessary information about materials which are not bundled in the package, |
| such as separately downloaded dependencies.</p> |
| <p>For source packages, <code>LICENSE</code> and <code>NOTICE</code> MUST be located at the root of the |
| distribution. For additional packages, they MUST be located in the |
| distribution format's customary location for licensing materials, such as the |
| <code>META-INF</code> directory of Java "jar" files.</p> |
| <h4 id="license-file">The <code>LICENSE</code> file<a class="headerlink" href="#license-file" title="Permalink">¶</a></h4> |
| <p>The <code>LICENSE</code> file MUST contain the full text of the <a href="/licenses/LICENSE-2.0.txt">Apache License |
| 2.0</a>.</p> |
| <p>When a package bundles code under several licenses, the <code>LICENSE</code> file |
| MUST contain details of all these licenses. For each component which is not |
| Apache licensed, details of the component MUST be appended to the <code>LICENSE</code> |
| file. The component license itself MUST either be appended or else stored |
| elsewhere in the package with a pointer to it from the <code>LICENSE</code> file, e.g. |
| if the license is long.</p> |
| <h4 id="notice-file">The <code>NOTICE</code> file<a class="headerlink" href="#notice-file" title="Permalink">¶</a></h4> |
| <p>The <code>NOTICE</code> file must conform to the requirements of <a href="/legal/src-headers.html#notice">Apache licensing |
| policy</a>.</p> |
| <p>See also <a href="licenses/LICENSE-2.0.html#redistribution">section 4(d)</a> of the |
| Apache License 2.0.</p> |
| <h4 id="license-headers">License Headers<a class="headerlink" href="#license-headers" title="Permalink">¶</a></h4> |
| <p>Source files consisting of works submitted directly to the ASF by the |
| copyright owner or owner's agent must contain the appropriate <a href="/legal/src-headers.html#headers">ASF license |
| header</a>.</p> |
| <h3 id="release-distribution">Release Distribution<a class="headerlink" href="#release-distribution" title="Permalink">¶</a></h3> |
| <p>Once a release is approved, all artifacts MUST be uploaded to the project's |
| subdirectory within the canonical Apache distribution channel, |
| <code>downloads.apache.org</code>.</p> |
| <p>The PMC is responsible for the project distribution directory and MUST be able |
| to account for its entire contents. All release artifacts within the |
| directory MUST be signed by a committer, preferably a PMC member.</p> |
| <p>After uploading to the canonical distribution channel, the project (or anyone |
| else) MAY redistribute the artifacts in accordance with their licensing |
| through other channels.</p> |
| <h4 id="release-archival">Release Archival<a class="headerlink" href="#release-archival" title="Permalink">¶</a></h4> |
| <p>All official releases MUST be archived permanently on archive.apache.org.</p> |
| <p>(Uploading to the canonical distribution channel satisfies this requirement |
| because archival happens automatically as a side effect.)</p> |
| <h3 id="administration">Release Policy Administration<a class="headerlink" href="#administration" title="Permalink">¶</a></h3> |
| <p>Projects MUST notify the Board of Directors of any deviations from recommended |
| or required policy directives.</p> |
| <p>Changes to Release Policy must be approved by Legal Affairs.</p> |
| <h3 id="todo">TODO<a class="headerlink" href="#todo" title="Permalink">¶</a></h3> |
| <p>Formalize additional official policies and reference them from this policy:</p> |
| <ul> |
| <li><em>ASF Licensing Policy</em> (curated by Legal Affairs, applies to both released |
| and unreleased code)</li> |
| </ul> |
| <h3 id="release-faqs">Release FAQs<a class="headerlink" href="#release-faqs" title="Permalink">¶</a></h3> |
| <h4 id="why">Why do we need a Foundation-wide policy?<a class="headerlink" href="#why" title="Permalink">¶</a></h4> |
| <p>In the traditional open source development methodology practiced |
| at volunteer liability-limiting organizations like Apache, it is necessary to draw |
| clear distinctions between public resources that represent works "in-progress" |
| and works suitable for consumption by the public at large. |
| The purpose of a clear line is to inform our legal strategy of providing |
| protection for formal participants involved in producing releases, as defined |
| in the next section. In-progress assets are viewed as controlled distributions |
| designed for self-identifying participants in project development, who are |
| primarily following the project's development lists. Uncontrolled distributions, |
| aka releases, are what this policy document is designed to cover.</p> |
| <p>Were we to avoid drawing this distinction, and instead encouraged users to interact |
| directly with source control or nightly builds, it would be very difficult for |
| the organization to offer legal protection to Apache committers and PMC members |
| who have only exercised their own judgement in making software modifications |
| without the benefit of an <strong>authorized business decision</strong> approving of the distribution |
| of those artifacts as-is to the public at large. The bulk of Apache's "bureaucracy" |
| and project governance structure are to facilitate the goals of this policy, so this |
| document is well worth a careful study.</p> |
| <p>Deviations from this policy may have an adverse effect on the legal shield's effectiveness, |
| or the insurance premiums Apache pays to protect officers and directors, so are strongly |
| discouraged without prior, explicit board approval. Do note however that organizationally |
| we prefer robust, reviewable decision-making over efficient decision-making, so if you |
| are thinking of proposing an alternative process for the board to consider, be sure |
| your targets reflect this.</p> |
| <h4 id="what">What is a release?<a class="headerlink" href="#what" title="Permalink">¶</a></h4> |
| <p>Releases are, by definition, anything that is published beyond the group |
| that owns it. In our case, that means any publication outside the group of |
| people on the product dev list. If the general public is being instructed |
| to download a package, then that package has been released. Each PMC must |
| obey the ASF requirements on <a href="#approving-a-release">approving any release</a>. |
| How you label the package is a secondary issue, described below.</p> |
| <p>During the process of developing software and preparing a release, various |
| packages are made available to the developer community for testing |
| purposes. <strong>Do not include any links on the project website that might |
| encourage non-developers to download and use nightly builds, snapshots, |
| release candidates, or any other similar package.</strong> The only people who are |
| supposed to know about such packages are the people following the dev list |
| (or searching its archives) and thus aware of the conditions placed on the |
| package. If you find that the general public are downloading such test |
| packages, then remove them.</p> |
| <p>Under no circumstances are unapproved builds a substitute for releases. If |
| this policy seems inconvenient, then release more often. Proper release |
| management is a key aspect of Apache software development.</p> |
| <p>The Apache Software Foundation produces open source software. All releases |
| are in the form of the source materials needed to make changes to the |
| software being released. In some cases, binary/bytecode packages are also |
| produced as a convenience to users that might not have the appropriate |
| tools to build a compiled version of the source. In all such cases, the |
| binary/bytecode package must have the same version number as the source |
| release and may only add binary/bytecode files that are the result of |
| compiling that version of the source code release.</p> |
| <h4 id="release-types">How do the types Of Apache software distribution differ?<a class="headerlink" href="#release-types" title="Permalink">¶</a></h4> |
| <ul> |
| <li> |
| <p><strong>Test Packages</strong> are not Apache releases. All releases require due |
| process and official approval. Test packages are for testing ongoing |
| development and should only be discussed on the project development lists.</p> |
| </li> |
| <li> |
| <p><strong>Nightly Builds</strong> are simply built from the Subversion/Git trunk/branch, |
| usually once a day. These packages are intended for regular testing of |
| the build process and to give automated testers a common build for |
| regression testing. They are not intended for use by the general |
| public.</p> |
| </li> |
| <li> |
| <p><strong>Release Candidates</strong> are packages that have been proposed for |
| approval as a release but have not yet been approved by the project. |
| These packages are intended for developers (and users who follow the |
| development discussions) to test and report back to the project |
| regarding their opinions on the package quality compared to prior |
| releases. Many release candidates are possible prior to a release |
| approval. Users that are not interested in development testing should |
| wait until a release is formally approved.</p> |
| </li> |
| <li> |
| <p><strong>Releases</strong> are packages that have been approved for general public |
| release, with varying degrees of caveat regarding their perceived quality |
| or potential for change. Releases that are intended for everyday usage by |
| non-developers are usually referred to as "stable" or "general availability |
| (GA)" releases. Releases that are believed to be usable by testers and |
| developers outside the project, but perhaps not yet stable in terms of |
| features or functionality, are usually referred to as "beta" or "unstable". |
| Releases that only represent a project milestone and are intended only for |
| bleeding-edge developers working outside the project are called "alpha".</p> |
| </li> |
| </ul> |
| <h3 id="management">Release Management Questions<a class="headerlink" href="#management" title="Permalink">¶</a></h3> |
| <h4 id="where-do-releases-go">Where do releases go?<a class="headerlink" href="#where-do-releases-go" title="Permalink">¶</a></h4> |
| <p>A release isn't 'released' until the contents are in the project's |
| distribution directory, which is a subdirectory of <code>downloads.apache.org</code>. |
| In addition to the distribution directory, project that use Maven or |
| a related build tool sometimes place their |
| releases on <code>repository.apache.org</code> beside some convenience binaries. |
| The distribution directory is required, |
| while the repository system is an optional convenience.</p> |
| <h4 id="what-must-every-release-contain">What Must Every ASF Release Contain?<a class="headerlink" href="#what-must-every-release-contain" title="Permalink">¶</a></h4> |
| <p>Every ASF release <strong>must</strong> contain a source package, which must be |
| sufficient for a user to build and test the release provided they have |
| access to the appropriate platform and tools. The source package must be |
| <a href="/dev/release-signing.html">cryptographically signed</a> by the Release |
| Manager with a detached signature; and that package together with its |
| signature must be tested prior to voting +1 for release. Folks who vote +1 |
| for release may offer their own cryptographic signature to be concatenated |
| with the detached signature file (at the Release Manager's discretion) |
| prior to release.</p> |
| <p>Note that the PMC is responsible for all artifacts in their distribution |
| directory, which is a subdirectory of <code>downloads.apache.org</code> ; and all |
| artifacts placed in their directory must be signed by a committer, |
| preferably by a PMC member. It is also necessary for the PMC to ensure that |
| the source package is sufficient to build any binary artifacts associated |
| with the release.</p> |
| <p>Every ASF release <strong>must</strong> comply with ASF licensing policy. This |
| requirement is of utmost importance and an audit should be performed before |
| any full release is created. In particular, every artifact distributed must |
| contain only <a href="/legal/resolved#category-a">appropriately</a> |
| <a href="/legal/resolved#category-x">licensed</a> code. More information can be found |
| in the <a href="/">foundation website</a> and in the <a href="#license">release |
| licensing FAQ</a>.</p> |
| <h4 id="approving-a-release">What are the ASF requirements on approving a release?<a class="headerlink" href="#approving-a-release" title="Permalink">¶</a></h4> |
| <p>Release votes happen as described above in the |
| <a href="#release-approval">release approval</a> section.</p> |
| <p>Before voting +1 PMC members are required |
| to download the signed source code package, compile it as provided, and test the |
| resulting executable on their own platform, along with also verifying that the |
| package meets the requirements of the ASF policy on releases.</p> |
| <h4 id="release-announcements">How should releases be announced?<a class="headerlink" href="#release-announcements" title="Permalink">¶</a></h4> |
| <p>Please ensure that you wait at least one hour after uploading a new release |
| before updating the project download page and sending the announcement email(s).</p> |
| <p>It is important to inform people about the availability of new |
| releases. Announcements must contain a link to the relevant download page for the source. |
| At the very least, emails should be sent out announcing this to |
| all appropriate mailing lists. Many top level projects have announcement |
| lists for this purpose. There is also an |
| <a href="/foundation/mailinglists.html#foundation-announce">ASF-wide</a> |
| announcement list which is suitable.</p> |
| <p>Please note that you can not post the ASF-wide announcement list without |
| using an "apache.org" mail address. Also, please make sure that you |
| have put a 3-5 lines blurb for the project (because most of the subscribers |
| to announce.AT.apache.DOT.org list may not know what XX-Project is).</p> |
| <p>It is recommended that an SHA-1 OpenPGP compatible signature is added to |
| the announcement mail. Please ensure that your public key has been already |
| uploaded to famous pgp sites (e.g. <a href="http://pgp.mit.edu/">http://pgp.mit.edu/</a>). This key should |
| either be the one used to sign the release or one that is cross-signed by |
| that key.</p> |
| <h4 id="best-practice">Is there a guide to best practices?<a class="headerlink" href="#best-practice" title="Permalink">¶</a></h4> |
| <p>See the Incubator <a href="http://incubator.apache.org/guides/releasemanagement.html#best-practice">release management |
| guide (draft)</a>. |
| Alternatively, see the "How to release" developer documentation of any |
| established Apache project. (The author is familiar with |
| <a href="http://subversion.apache.org/docs/community-guide/releasing#release-creating">this one</a>, |
| from this project.)</p> |
| <h4 id="owned-controlled-hardware">Must releases be built on hardware owned and controlled by the committer?<a class="headerlink" href="#owned-controlled-hardware" title="Permalink">¶</a></h4> |
| <p>Strictly speaking, releases must be <strong><a href="https://svn.apache.org/repos/private/committers/tools/releases/compare_dirs.pl">verified</a></strong> |
| on hardware owned and controlled by the committer. That means hardware the |
| committer has physical possession and control of and exclusively full |
| administrative/superuser access to. That's because only such hardware is |
| qualified to hold a PGP private key, and the release should be verified on the |
| machine the private key lives on or on a machine as trusted as that.</p> |
| <p>Practically speaking, when a release consists of anything beyond an archive |
| (e.g., tarball or zip file) of a source control tag, the only practical way to |
| validate that archive is to build it locally; manually inspecting generated |
| files (especially binary files) is not feasible. So, basically, "Yes".</p> |
| <p><em>Note: This answer refers to the process used to produce a release artifact |
| from a source control tag. It does not refer to testing that artifact for |
| technical quality.</em></p> |
| <h3 id="mirroring">Release Distribution Questions<a class="headerlink" href="#mirroring" title="Permalink">¶</a></h3> |
| <h4 id="host-rc">Where can we host test packages (nightly builds and release candidates)?<a class="headerlink" href="#host-rc" title="Permalink">¶</a></h4> |
| <p>Test packages are for use by consenting developers and interested community |
| members only, so they should not be hosted or linked on pages intended for end |
| users, or released using a <code>closer.lua</code> script.</p> |
| <p>Projects should use the |
| <a href="https://dist.apache.org/repos/dist/dev"><code>/dev</code> tree of the <code>dist</code> repository</a> |
| or the staging features of repository.apache.org |
| to host release candidates posted for developer testing/voting (prior to being, |
| potentially, formally blessed as a GA release).</p> |
| <p>Nightly Builds that are not release candidates can be hosted at <a href="https://ci.apache.org/projects">ci.apache.org projects area</a>, |
| just file an INFRA ticket.</p> |
| <h4 id="host-GA">Where can we host public (GA) releases?<a class="headerlink" href="#host-GA" title="Permalink">¶</a></h4> |
| <p>Current releases must be served from the ASF content distribution system by placing them under |
| <code>https://downloads.apache.org/</code> (see <a href="#upload-ci">How do I upload a release?</a>).</p> |
| <p>Project download pages must use a <code>closer.lua</code> script and not link directly to the main Apache Web site; see <a href="https://infra.apache.org/release-download-pages.html" target="_blank">instructions for creating download pages</a> for further details. |
| The website documentation for the software must contain a link to the download page for the source.</p> |
| <p>Project websites (<code>http:// {project}.apache.org</code>), |
| VMs (<code>http:// {project}.zones.apache.org</code> and <code>http://{project}-vm.apache.org</code>), |
| and source control repositories (<code>svn.apache.org</code> and Git repositories) |
| may not be used to distribute releases --- that is, releases should not be |
| downloaded from them.</p> |
| <h4 id="archived">How are releases archived?<a class="headerlink" href="#archived" title="Permalink">¶</a></h4> |
| <p>All releases are archived on <a href="http://archive.apache.org/dist/">http://archive.apache.org/dist/</a>.</p> |
| <p>An automated process adds releases to the archive about a day after |
| they first appear on to <a href="https://downloads.apache.org/">https://downloads.apache.org/</a>. |
| Once a release is placed under <code>https://downloads.apache.org/</code> it will automatically be copied over |
| to <code>http://archive.apache.org/dist/</code> and held there permanently, even after it is deleted from <code>https://downloads.apache.org/</code>.</p> |
| <p>If you have (legacy?) releases that never got archived, ask infra to copy them to <code>http://archive.apache.org/dist/</code>.</p> |
| <h4 id="when-to-archive">When should an old release be archived?<a class="headerlink" href="#when-to-archive" title="Permalink">¶</a></h4> |
| <p><code>downloads.apache.org</code> should contain <em>the latest release in each branch |
| that is currently under development</em>. When development ceases on a version |
| branch, releases of that branch should be removed from the project's download |
| directory.</p> |
| <p>(If the project uses svnpubsub, delete the artifacts from |
| <code>https://dist.apache.org/repos/dist/release/<TLP name>/</code>.)</p> |
| <p>For example, if Apache Foo 1.2.x is a newer release in the same line as |
| Foo 1.1.a, then 1.1.a should be removed when 1.2.x is released. |
| Note that all releases are automatically archived, |
| see <a href="#how-to-archive">How Is An Old Release Moved To The Archives</a></p> |
| <p>If Apache Foo 1.2 is a new branch, and development continues on 1.1 in |
| parallel, then it is acceptable to serve both 1.1.a and 1.2.x from <code>/dist</code>.</p> |
| <h4 id="upload-ci">How do I upload a release ?<a class="headerlink" href="#upload-ci" title="Permalink">¶</a></h4> |
| <p>By committing your release tarballs to the appropriate subdirectory (i.e. TLP name) of the |
| <a href="https://dist.apache.org/repos/dist/release/"><code>https://dist.apache.org/repos/dist/release/</code></a> |
| repository. Our synchronization process will push the files to <a href="https://downloads.apache.org/">the master |
| download site</a> within 15 minutes.</p> |
| <p>Wait about an hour after uploading a new release before updating the project download page.</p> |
| <p>The repository directory |
| <code>https://dist.apache.org/repos/dist/release/<TLP name>/</code> |
| is for <strong>official releases only</strong>, i.e. archives (+ sigs, hashes) that have been approved |
| by the PMC. For this reason, <strong>by default only PMC members can update the dist/release directory tree</strong>.</p> |
| <p>If the Release Manager is not a member of the PMC, they will need to ask a PMC member to do the actual release publication.</p> |
| <p>The PMC can also vote to let non-PMC-members update the dist/release area. |
| To get this set up, please open a JIRA ticket at the <a href="https://issues.apache.org/jira/browse/INFRA">INFRA JIRA</a> referencing the PMC vote.</p> |
| <h4 id="stage">Where can I stage a release candidate?<a class="headerlink" href="#stage" title="Permalink">¶</a></h4> |
| <p>There is also a development area under |
| <code>https://dist.apache.org/repos/dist/dev/<TLP name>/</code> |
| which can be used for development releases. |
| For example snapshots and release candidates can be stored here. One important item to note |
| is that this directory does not get published to the content distribution system via svnpubsub. It is intended to |
| act as a staging location in preparation for the release to become official.</p> |
| <p>All committers on a project can write to the dist/dev area for the project.</p> |
| <p>If used for release candidates, then following a successful vote, the |
| appropriate files can be moved from the dev/ tree to the release/ tree |
| in order to publish them.</p> |
| <p>Commit mails to the <code>dist/</code> repository go to your normal project mailing lists.</p> |
| <h4 id="heads-up">Do I need to talk to Infrastructure before distributing a release?<a class="headerlink" href="#heads-up" title="Permalink">¶</a></h4> |
| <p>Most projects can just distribute a release as described in the previous two |
| questions. However, releases that are likely to strain content distribution resources <strong>must</strong> be coordinated with infrastructure.</p> |
| <p>Releases of more than 1GB of artifacts require a heads-up to Infrastructure in advance.</p> |
| <p>Specific exemptions from other dist policies (such as what may or must or must |
| not be distributed via the content distribution system) also need to be coordinated with Infrastructure.</p> |
| <h4 id="build-directories">Which Directory for what build?<a class="headerlink" href="#build-directories" title="Permalink">¶</a></h4> |
| <table class="table"> |
| <thead> |
| <tr> |
| <th>Type</th> |
| <th>Location</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr> |
| <td>Nightly Builds</td> |
| <td>ci.apache.org/projects</td> |
| </tr> |
| <tr> |
| <td>Current Releases</td> |
| <td>downloads.apache.org</td> |
| </tr> |
| <tr> |
| <td>Older Releases</td> |
| <td>archive.apache.org/dist</td> |
| </tr></tbody></table> |
| <h4 id="how-to-archive">How is an old release moved to the archives?<a class="headerlink" href="#how-to-archive" title="Permalink">¶</a></h4> |
| <p><code>downloads.apache.org</code> is automatically archived. Therefore, a copy of an |
| official release will already exist in the archives. To move a release to |
| the archives, just delete the copy in your project's dist directory. Remember to |
| update any links from the download page.</p> |
| <h4 id="maven-artifacts">How do I release Maven artifacts?<a class="headerlink" href="#maven-artifacts" title="Permalink">¶</a></h4> |
| <p>See the guide to <a href="https://infra.apache.org/publishing-maven-artifacts.html" target="_blank">Publishing Maven |
| Releases</a>.</p> |
| <h3 id="license">Release licensing questions<a class="headerlink" href="#license" title="Permalink">¶</a></h3> |
| <p>Please read <a href="/legal/apply-license.html">Applying the Apache License, Version |
| 2.0</a> and check the <a href="/licenses/">Apache Licenses</a> and |
| <a href="/legal/">Apache Legal</a> pages for current information.</p> |
| <h4 id="which-files-contain-license">Which files must contain an ASF license text?<a class="headerlink" href="#which-files-contain-license" title="Permalink">¶</a></h4> |
| <p>Every source file must contain the appropriate ASF License text.</p> |
| <h4 id="full-copy-for-each-source-file">Is a full copy of the license required in each source file?<a class="headerlink" href="#full-copy-for-each-source-file" title="Permalink">¶</a></h4> |
| <p>In short, only one copy of the license is needed per distribution. This |
| full license file should be placed at the root of the distribution in a |
| file named LICENSE. For software developed at the ASF, each source file |
| need only contain the <a href="/legal/src-headers.html#headers">boilerplate |
| notice</a>.</p> |
| <h4 id="attribution-notices">Where is the right place for attribution notices?<a class="headerlink" href="#attribution-notices" title="Permalink">¶</a></h4> |
| <p>The new license allows for a NOTICE file that contains such attribution |
| notices (including the Apache attribution notice). Read |
| <a href="/legal/src-headers.html#notice">this</a>.</p> |
| <p>Any attribution notices contained within existing source files should be |
| moved into the file. The NOTICE file must included within the distributed |
| next to the LICENSE file.</p> |
| <p>Ensure that the standard ASF attribution notice is contained in any new |
| NOTICE file created.</p> |
| <h4 id="notice-content">What content is appropriate for the NOTICE file?<a class="headerlink" href="#notice-content" title="Permalink">¶</a></h4> |
| <p>Read <a href="/legal/src-headers.html#notice">this</a>.</p> |
| <p>Only mandatory information required by the product's software licenses. Not |
| suitable for normal documentation.</p> |
| <h4 id="notice-required">Is a NOTICE file required for pure ASF code?<a class="headerlink" href="#notice-required" title="Permalink">¶</a></h4> |
| <p>Yes! The NOTICE file must contain the standard ASF attribution, given |
| below:</p> |
| <pre><code>This product includes software developed at |
| The Apache Software Foundation (/). |
| </code></pre> |
| <p>N.B. Unfortunately versions of this document prior to 2013-01-30 (r1440650) were incorrect, as they used the phrase: |
| "developed by" instead of "developed at". |
| The official wording was established in section 6C of the |
| <a href="/foundation/records/minutes/2006/board_minutes_2006_05_24.txt">board minutes for May 24 2006</a></p> |
| <!-- Note: the text was originally added in: r201713 see #INFRA-367 --> |
| <h4 id="distributing-code-under-several-licenses">If an artifact contains code under several licenses, should it contain several license files?<a class="headerlink" href="#distributing-code-under-several-licenses" title="Permalink">¶</a></h4> |
| <p>When an artifact contains code under several licenses, the LICENSE file |
| should contain details of all these licenses. For each component which is |
| not Apache licensed, details of the component should be appended to the LICENSE file. |
| The component license itself may also be appended, or it may be stored elsewhere in the |
| artifact with a pointer to it from the LICENSE file, e.g. if the license is long.</p> |
| <p><a href="https://svn.apache.org/repos/asf/httpd/httpd/trunk/LICENSE">Here</a> is an |
| example showing appended licenses.</p> |
| <h4 id="distribute-other-artifacts">What are the requirements to distribute other artifacts in addition to the source package?<a class="headerlink" href="#distribute-other-artifacts" title="Permalink">¶</a></h4> |
| <p>ASF releases typically contain additional material together with the source |
| package. This material may include documentation concerning the release but |
| must contain LICENSE and NOTICE files. As mentioned above, these artifacts |
| must be signed by a committer with a detached signature if they are to be |
| placed in the project's distribution directory.</p> |
| <p>Again, these artifacts may be distributed only if they contain LICENSE and |
| NOTICE files. For example, the Java artifact format is based on a |
| compressed directory structure and those projects wishing to distribute |
| jars must place LICENSE and NOTICE files in the META-INF directory within |
| the jar.</p> |
| <p>Nothing in this section is meant to supersede the requirements defined |
| <a href="#what">here</a> and <a href="#what-must-every-release-contain">here</a> that all |
| releases be primarily based on a signed source package.</p> |
| <h3 id="stats">Questions About Release Statistics<a class="headerlink" href="#stats" title="Permalink">¶</a></h3> |
| <h4 id="downloads">Is there any way to measure how many times XYZ has been downloaded?<a class="headerlink" href="#downloads" title="Permalink">¶</a></h4> |
| <p>Visit <a href="https://logging1-he-de.apache.org/stats/" target="_blank">the download stats page</a>.</p> |
| |
| </div> </main> |
| |
| <!-- Footer --> |
| <footer class="bg-primary"> |
| <div class="container"> |
| <div class="row"> |
| <br /> |
| <div class="col-sm-2"> |
| <h5 class="white">Community</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="https://community.apache.org/" target="_blank">Contributor Getting Started</a></li> |
| <li><a href="https://community.apache.org/contributors/" target="_blank">Becoming a Committer</a></li> |
| <li><a href="/foundation/policies/conduct">Code of Conduct</a></li> |
| <li><a href="/community-resources/">Community Resources</a></li> |
| <li><a href="https://communityovercode.org/" target="_blank">Community Over Code</a></li> |
| <li><a href="https://events.apache.org/" target="_blank">Events</a></li> |
| <li><a href="https://www.redbubble.com/people/comdev/shop" target="_blank">Store</a></li> |
| </ul> |
| </div> |
| |
| <div class="col-sm-2"> |
| <h5 class="white">Projects</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="/projects">Projects</a></li> |
| <li><a href="https://incubator.apache.org/" target="_blank">Incubator Projects</a></li> |
| <li><a href="https://projects.apache.org/" target="_blank">Projects Directory </a></li> |
| <li><a href="/foundation/mailinglists">Mailing Lists </a></li> |
| <li><a href="/security">Report a Vulnerability</a></li> |
| </ul> |
| </div> |
| <div class="col-sm-2"> |
| <h5 class="white">Downloads</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="https://downloads.apache.org/" target="_blank">Distributions</a></li> |
| <li><a href="https://projects.apache.org/releases.html" target="_blank">Releases</a></li> |
| <li><a href="https://status.apache.org/" target="_blank">Infrastructure Status</a></li> |
| <li><a href="https://infra-reports.apache.org/#uptime" target="_blank">Infrastructure Statistics</a></li> |
| </ul> |
| </div> |
| |
| <div class="col-sm-2"> |
| <h5 class="white">Learn</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="https://news.apache.org/" target="_blank">Blog</a></li> |
| <li><a href="/foundation/how-it-works">How the ASF Works</a></li> |
| <li><a href="/theapacheway/">The Apache Way</a></li> |
| <li><a href="/legal/">Legal & Trademark</a></li> |
| <li><a href="/licenses">Licenses</a></li> |
| <li><a href="/foundation/glossary">Glossary</a></li> |
| <li><a href="/foundation/faq">FAQ</a></li> |
| </ul> |
| </div> |
| |
| <div class="col-sm-2"> |
| <h5 class="white">Resources & Tools</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="/dev/">Developer Information</a></li> |
| <li><a href="https://cwiki.apache.org/" target="_blank" >Wiki</a></li> |
| <li><a href="https://issues.apache.org/" target="_blank" >Issues</a></li> |
| <li><a href="https://infra.apache.org/slack.html" target="_blank" >Slack</a></li> |
| <li><a href="https://selfserve.apache.org/" target="_blank" >Self Serve Portal</a></li> |
| <li><a href="https://infra.apache.org/" target="_blank" >Infrastructure</a></li> |
| <li><a href="https://whimsy.apache.org/" target="_blank" >Whimsy</a></li> |
| <li><a href="/foundation/press/kit/">Brand Guidelines</a></li> |
| <li><a href="/logos/">Project Logos</a></li> |
| </ul> |
| </div> |
| |
| <div class="col-sm-2"> |
| <h5 class="white">About</h5> |
| <ul class="list-unstyled white" role="menu"> |
| <li><a href="/foundation/">About</a></li> |
| <li><a href="/foundation/sponsors">Our Sponsors</a></li> |
| <li><a href="/foundation/sponsorship">Corporate Sponsorship</a></li> |
| <li><a href="/foundation/individual-supporters">Individual Supporters</a></li> |
| <li><a href="/foundation/leadership">Leadership</a></li> |
| <li><a href="/foundation/members">Members</a></li> |
| <li><a href="https://diversity.apache.org/" target="_blank">Diversity & Inclusion</a></li> |
| <li><a href="/press/">Newsroom</a></li> |
| <li><a href="/foundation/contact">Contact</a></li> |
| <li><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy Policy</a></li> |
| </ul> |
| </div> |
| |
| |
| </div> |
| <hr class="col-lg-12 hr-white" /> |
| <div class="row"> |
| <div class="col-lg-12"> |
| <p class="text-center">Copyright © 2023 The Apache Software Foundation, Licensed under the <a class="white" href="/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> |
| <p class="text-center">Apache and the Apache feather logo are trademarks of The Apache Software Foundation. </p> |
| </div> |
| </div> |
| </div> |
| |
| </footer> |
| |
| <!-- / Footer --> |
| |
| <script src="/js/jquery.min.js"></script> |
| <script src="/js/bootstrap.js"></script> |
| <script src="/js/slideshow.js"></script> |
| <script> |
| (function($){ |
| $(document).ready(function(){ |
| $('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) { |
| event.preventDefault(); |
| event.stopPropagation(); |
| $(this).parent().siblings().removeClass('open'); |
| $(this).parent().toggleClass('open'); |
| console.log('WOrked'); |
| }); |
| }); |
| })(jQuery); |
| </script> |
| </body> |
| </html> |