Home Release Distribution Policy (edit)

Release Distribution Policy

This policy governs how Apache Top Level Projects (TLPs) distribute releases of their software through the technical channels that Infra maintains, and through other distribution platforms. It complements the formal Apache Release Policy, which defines what must be in a software release; and the Release Creation Process page, which describes the steps for a PMC to create a release.

Note: RFC 2119 describes how to interpret must, should, should not and similar terms.

Release distribution channels

  • The Apache Software Foundation's official channel for distribution of current Apache software releases to the general public is downloads.apache.org/. This directory provides access for current releases to the ASF content distribution network (CDN), through which most users download releases.
  • The public may also obtain Apache software from downstream channels (rpm, deb, homebrew, etc.) which redistribute our releases in original or derived form. The vast majority of such downstream channels operate independently of Apache.
  • Infra maintains a number of developer-only channels which facilitate distribution of unreleased software to consenting members of a development community.
  • All historical Apache releases are available from archive.apache.org.

Release distribution directory

Every top-level project at Apache has its own public distribution directory, which is a subdirectory of downloads.apache.org/. Each PMC is responsible for all artifacts within their project's distribution directory.

Apache Incubator podlings cannot create official ASF releases; see the Incubator documentation for details and discussion.

Release content

The Apache Release Policy governs the content of official Apache releases and the process by which projects create valid releases.

The Policy specifies that TLPs may distribute binary packages, provided by the project or third parties which meet certain criteria, may be distributed alongside official source packages. Such packages are sometimes referred to as "convenience binaries" or "PMC-approved artifacts", to distinguish them from other binary packages.

Public distribution channels

Projects must upload all official releases to the official distribution channel, downloads.apache.org/. Content suitable for the official distribution channel includes:

  • Official releases
  • PMC-approved artifacts, compiled code anyone can download and install
  • Cryptographic signatures and checksums
  • The KEYS file
  • README, CHANGES and similar documents describing distributed content

If an Apache PMC wishes to publish additional materials through the official distribution channel and there is any question about the suitability of the materials, the PMC must consult with the ASF Board before publishing.

Distribution of unreleased materials

Unreleased materials, in original or derived form,

  • may be distributed to consenting members of a project's development community
  • must not be advertised to anyone outside of the project development community
  • must not be distributed through www.apache.org/dist or downloads.apache.org
  • must not be distributed through channels which encourage use by anyone outside the project development community

Notify Infra before uploading large artifacts

Projects must coordinate with Infra in advance about releases larger than 1GB of artifacts to mitigate strain on content distribution resources.

Requirements for cryptographic signatures and checksums

See the release signing page.

For every artifact distributed to the public through Apache channels, the PMC

  • must supply a valid OpenPGP-compatible ASCII-armored detached signature file.
  • must supply at least one checksum file.
  • should supply a SHA-256 and/or SHA-512 checksum file.
  • SHOULD NOT supply a MD5 or SHA-1 checksum file because these are deprecated.

For new releases, PMCs must supply SHA-256 and/or SHA-512 and should not supply MD5 or SHA-1. You do not need to change existing releases.

You must form the names of individual signature and checksum files by adding to the name of the artifact the appropriate suffix:

  • .asc for a (ASCII-armored) PGP signature
  • .sha256 for an SHA-256 checksum
  • .sha512 for an SHA-512 checksum

Noted for completeness that this specification also applies to deprecated file types:

  • .md5 for an MD5 checksum
  • .sha1 for an SHA-1 checksum

Regarding signature and checksum files:

  • Legacy suffix .sha should not be be used and .sha files should not be provided.
  • Binary PGP signature .sig files must not be provided.
  • .mds files (containing multiple checksums) may be provided for individual files as long as the included checksums comply with the above requirements.
  • Signature and checksum files for verifying distributed artifacts should not be provided, unless named as indicated above.

Regarding KEYS files:

  • Projects must publish a KEYS file in their distribution directory which contains all public keys used to sign artifacts.
  • Signing keys used at Apache must be published in the KEYS file and should be made available through the global public keyserver network. Signing keys should be linked into a strong web of trust.
  • Signing keys for new artifacts must be RSA and at least 2048 bit. New keys should be 4096 bit RSA. Signatures should be cryptographically strong.
  • Private keys must not be stored on any ASF machine. Likewise, signatures for releases must not be created on ASF machines.
  • You must revoke and replace compromised signing keys immediately.
  • Website documentation for any Apache product must provide public download links where interested parties may obtain current official source releases and accompanying cryptographic files.
  • Links to artifacts must not reference the main Apache web site. They should use the standard mechanisms, such as closer.lua, to make the download available through the content distribution system.
  • All links to checksums, detached signatures and public keys for current releases must reference downloads.apache.org/ using https://.
    • Legacy links to https://[www.]apache.org/dist/... still work, but new links should use downloads.apache.org.
    • Older release checksums are on archive.apache.org, and you may also link to them.
  • All releases, including old releases, are archived automatically. You may link from your PMC's download page to archived older releases for community convenience.

Releases are archived

  • All releases are archived automatically on archive.apache.org. This automated process generally adds releases to the archive about a day after they first appear on downloads.apache.org/.
  • Each project's distribution directory should contain the latest release in each branch that is currently under development. When development ceases on a version branch, the PMC should remove links to releases of that branch from their download directory.

Using Maven for releases

Infra operates an Apache Maven repository manager at repository.apache.org. Projects may use the repository system as a downstream channel to redistribute released materials via Maven Central, and may use it to distribute snapshots containing unreleased materials directly to consenting members of a project development community.

Projects must not point or refer to repository.apache.org directly in download pages, release announcements or emails. Instead, any public download links for those releases should point to Maven Central.

Read more about Maven releases for Apache projects.

Other release platforms

The ASF manages a number of distribution platforms that projects are welcome to use. Projects can distribute PMC-approved artifacts on ASF managed distribution platforms and other distribution platforms as long as those binaries comply with ASF release, licensing, branding and trademark policies. Currently, ASF managed platforms include GitHub and Docker.

Docker Hub and releases

The ASF only supports two modes of operation on Docker Hub: automated builds based on tags, and some more generalized access (see notes in the Jira ticket INFRA-14586.) Note that Docker Hub is not an approved release channel for ASF artifacts. Anything you do on Docker Hub requires the description and supporting documentation to be clear that these are convenience releases, not official distribution artifacts.

See the Docker Hub policy for further information.

Policy administration

This policy is required for all Apache projects. The V.P. of Apache Infrastructure must approve changes to this policy.

Copyright 2023, The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache® and the Apache feather logo are trademarks of The Apache Software Foundation...