Skip to main content

Stack deprecation and removal policy

Abstract

On Bitrise, Android stacks are supported for around two years; Xcode stacks are deprecated gradually as new Xcode versions are released.

We don't keep all stacks around forever: our aim is to provide you with the latest tools to help you build the best app you can. However, we don't expect you to rework your build configuration every time a stack update comes out: you can keep using your reliable older stacks for a long time.

At certain points, we deprecate some older stacks. When a stack is deprecated, you can still keep using it but the stack will no longer get any updates and at that point we strongly recommend switching to a newer, non-deprecated stack.

Deprecated stacks are eventually removed entirely but don't worry: we'll give you plenty of warning in advance before that happens. We'll send out an update like this on multiple different channels.

Maintaining Xcode stacks

We offer a wide variety of Xcode stacks in order to make sure you do not need to immediately switch when a new version comes out. Our policy is as follows:

  • Keep the latest patch version of every minor Xcode version for the most recent major Xcode release.

  • Keep the latest patch version for the two most recent minor versions from the previous major version.

  • Keep the latest patch version for the most recent minor version from the previous -1 major version.

  • Stacks will only be deprecated once their global usage falls below 1% of all builds.

Example 1. Maintaining Xcode stacks

When the latest Xcode version was 13.4.x, we kept:

All the latest patch releases for every minor version of Xcode 13:

  • 13.4.x

  • 13.3.x

  • 13.2.x

  • 13.1.x

  • 13.0.x

The latest versions from the previous two Xcode major versions:

  • 12.5.x

  • 12.4.x

  • 11.7.x


Deprecating and removing Xcode stacks

  1. When the first beta of the next major Xcode version is released, we deprecate all the minor versions of the last major version, except the very last version.

    Example 1. Deprecating Xcode stacks when a new beta version is released

    When Xcode 14 beta was released, we deprecated:

    • The oldest major version which was Xcode 11.7.

    • The minor versions of the last major version, except for the last couple of minor versions. In practice, this would mean deprecating all Xcode 13 stacks except 13.4 and 13.3. However, if any of the older Xcode 13 stacks are still used by more than 1% of all builds, they would NOT be deprecated.


  2. When the first final (non-beta) version of the new major Xcode version is released, we remove the deprecated stacks; the oldest major version as well as the minor versions of the last major version except the latest minor version.

    Example 2. Removing stacks when a final Xcode version is released

    When Xcode 14 (final, non beta) was released, the following stacks were scheduled for removal:

    • The oldest major version which was Xcode 11.7. In this scenario, Xcode 12.5 will become the oldest major version and the only Xcode 12 version available.

    • The minor versions of the last major version except for the last couple of minor versions. This would mean keeping Xcode 13.4 and 13.3. Xcode 13.2, 13.1, and 13.0 will be removed unless they are used by more than 1% of all builds.


This means that the latest patch release version of Xcode is supported for about 2.5 years, in sync with Xcode major version releases.

Deprecating Android & Docker stacks

An Android & Docker,on Ubuntu stack is supported for about two years, roughly in sync with Ubuntu LTS (long term support) releases.

When a previous Android & Docker,on Ubuntu stack reaches end of maintenance, we deprecate the stack and earmark it for removal. At that point you can no longer select the stack for your apps. But the apps that are already using those stacks can keep using them until removal. We will warn you of scheduled removals well in advance so you can plan for them.