Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 79 additions & 0 deletions docs/source/developers/cpp/support.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
.. 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.

.. _support:

==============
Support Policy
==============

Official Support Policy for Apache Arrow C++
============================================

The Apache Arrow C++ implementation supports various build systems, operating systems,
and architectures. This has generated a growing ecosystem of Continuous Integration (CI)
jobs to maintain in order to ensure the matrix of supported platforms is properly tested.

This page documents how a platform (operation system, architecture or build system)
is supported in the Arrow C++ implementation along with a list of platforms that
are currently supported for the Arrow C++ implementation.

Support tiers
=============

Platform support is broken down into tiers. Each tier comes with different requirements
which lead to different promises being made about support.

To be promoted to a tier, committer support is required and is expected to be driven by consensus.
A vote may be called if there is no agreement about the promotion but general consensus
on the GitHub issue is sufficient.

Demotion to a lower tier occurs when a CI job is unmaintained for an extended period of time or the
platform is going to be EOLed.

If the job is unmaintained a discussion on the mailing list and if necessary a vote
should be called in order to remove the platform from its current tier.

When a Platform is EOLed, it should be demoted to Tier 3 immediately unless there is
a strong reason to keep it supported.

Tier 1
------
- Is tested on CI on PRs or via periodic daily runs.
- Changes which would break the main branch are not allowed to be merged; any breakage should be fixed or reverted immediately.
- CI failures block releases.
- All committers are responsible to keep these CI jobs working.

Tier 2
------
- Is tested on CI via periodic daily runs and can be tested on Pull Requests via optional jobs.
- The CI jobs are prefixed with ``Tier 2``.
- Are maintained as a best-effort basis.
- CI failures do not block releases.
- At least one committer should look over the CI jobs and be responsible to keep these platforms working.

Tier 3
------
- Are not tested on CI.
- Unsupported though we might want to accept patches for them depending on the maintenance overhead.


.. list-table::
:header-rows: 1

* - Platform constraint
- Tier