Preparing for the Bintray Shutdown: How to Migrate
Bintray, one of the services our team currently uses to distribute packages, is shutting down on May 1st, 2021.
This post explains what alternative services are available for the RabbitMQ community today or will be before the shutdown date.
No new releases will be published to Bintray going forward. Those who do not switch from Bintray before May 1st will see their deployments begin failing. We highly recommend making migration off of Bintray both an important and urgent task.
Big Shoes to Fill
Bintray has served our community well for years. The JFrog team were very generous with our customized open source project limits and in general helpful with our requests.
RabbitMQ distributes multiple package types, including modern Erlang packages for several distributions, and Bintray acommodated all of them.
Some package hosting services specialize won't be able to replace Bintray alone. This means that the migration options will differ depending on what package type you use.
In the next section we will cover the options available today and mention another one that is coming down the line.
The Post-Bintray Era Options
What service you should migrate to depends on how you provision RabbitMQ.
Team RabbitMQ already publishes release artifacts to a few places:
- GitHub releases of RabbitMQ: distributes every package type plus Debian package source files
- PackageCloud: this repository provides Debian and RPM packages
Our team plans to adopt Cloudsmith.io in addition to the above options. Cloudsmith supports multiple package types and we have had promising initial experience with it. Publishing RabbitMQ Debian packages via Launchpad is also under consideration.
In addition, our team produces and distributes packages of modern Erlang versions via
- Launchpad PPA for Ubuntu and Debian
- GitHub releases of zero-dependency Erlang RPM
Docker Community Image and Kubernetes Operator
If this is via the Docker community image, then nothing changes for you as the image does not depend on Bintray and is not distributed via Bintray.
This is equally true for the RabbitMQ Kubernetes Operator users.
Binary Builds
RabbitMQ binary builds (a.k.a. generic UNIX builds) are best consumed from GitHub releases.
If you currently consume these packages from Bintray, updating the download location to use GitHub releases is all there is to do.
Windows Packages
Windows users who use Chocolatey are not affected by this transition.
RabbitMQ installer and Windows binary build users should now consume from GitHub releases.
Debian Packages of Modern Erlang
Team RabbitMQ's Debian packages of modern Erlang has found a new home in a Launchpad PPA.
While Launchpad is an Ubuntu-oriented service, it can also be used as a regular apt repository by Debian users.
These packages are also available from Cloudsmith.io.
In order to migrate, remove the existing .list
file under /etc/apt/sources.list.d
and install a new one
as explained in the Debian installation doc guide.
Next, import the signing key used by the Launchpad repository.
Finally, run
sudo apt update -y
and re-install the packages.
Debian Packages of RabbitMQ
The options available for RabbitMQ Debian packages are as follows:
- Using an apt repository on PackageCloud, including a quick start example
- Using a direct download from GitHub and installing its dependencies the local package using
dpkg
Our team plans to also distribute this package via Cloudsmith.io in the near future.
In order to migrate, remove the existing .list
file under /etc/apt/sources.list.d
and install a new one
as explained in the Debian installation doc guide.
Next, import the signing key used by the PackageCloud repository.
Finally, run
sudo apt update -y
and re-install the packages.
RPM Packages of Modern Erlang
Team RabbitMQ's own zero dependency Erlang RPM can be consumed in a couple of ways:
- Using a Yum repository on PackageCloud
- Using a direct download from GitHub releases and installing the local package using
rpm install
Our team plans to also distribute this package via Cloudsmith.io in the near future.
In order to migrate, remove the existing .repo
file under /etc/yum.repos.d/
and install a new one
as explained in the RPM installation doc guide.
Then run
sudo yum clean all
sudo yum update -y
and re-install the packages.
RPM Packages of RabbitMQ
The options for RabbitMQ RPM packages match to those listed above for our zero-dependency Erlang RPM:
- Using a Yum repository on PackageCloud. This would cover RHEL, CentOS, modern Fedora and openSUSE
- Using a direct download from GitHub and installing its dependencies the local package using
rpm install
Our team plans to also distribute this package via Cloudsmith.io in the near future.
In order to migrate, remove the existing .repo
file under /etc/yum.repos.d/
and install a new one
as explained in the RPM installation doc guide.
Then run
sudo yum clean all
sudo yum update -y
and re-install the packages.
Feedback
If you have any questions or feedback, please share it in the RabbitMQ community Slack
in the #usage-questions
and #core-and-plugin-dev
channels.