There is an established workflow for new releases within a ROS distribution. As improvements are made, changes are periodically synced into the main ROS repositories and those changes are announced via Discourse. While we strive to avoid regressions and compatibility breaks in new syncs they can occur, causing disruption in your workflow if it happens in packages you rely on. Even without regressions syncs can affect users who install new packages without upgrading installed packages between syncs. Or your build system may rely on storing and retrieving packages with exact version numbers which become unavailable after being replaced by new versions during a sync.
With the aim of improving overall reproducibility in the ROS community we’ve set up a new apt repository host that will provide persistent hosting for snapshots of each sync for active ROS distros. The snapshots will be taken just after every sync of the ROS stable repository and will be available for at least six months from the sync date.
For teams that want to more closely control when they update to the latest sync, these snapshot repositories will make it easier to access the packaged binaries from earlier syncs.
Snapshot repositories for the following ROS distributions are available now and will remain available for at least 6 months from their sync date.
ROS Indigo: Ubuntu Trusty ARMv7 (armhf), Ubuntu Trusty i386, Ubuntu Trusty AMD64 (x86_64)
ROS Kinetic: Ubuntu Xenial ARMv7 (armhf), Ubuntu Xenial ARMv8 (arm64, aarch64), Ubuntu Xenial i386, Ubuntu Xenial AMD64 (x86_64)
ROS Melodic: Ubuntu Bionic ARMv7 (armhf), Ubuntu Bionic ARMv8 (arm64, aarch64), Ubuntu Bionic AMD64 (x86_64)
ROS 2 Ardent: Ubuntu Xenial ARMv8 (arm64, aarch64), Ubuntu Xenial AMD64 (x86_64)
ROS 2 Bouncy: Ubuntu Bionic ARMv8 (arm64, aarch64), Ubuntu Bionic AMD64 (x86_64)
ROS 2 Crystal: Ubuntu Bionic ARMv8 (arm64, aarch64), Ubuntu Bionic AMD64 (x86_64)
How to set it up
See the instructions in the ROS wiki http://wiki.ros.org/SnapshotRepository
What to expect
Snapshots do not receive bug fixes or security updates so it is still a good idea to follow ROS releases and upgrade periodically.
ABI compatibility between snapshots is not tested or guaranteed so when switching a system to a new snapshot updating all ROS packages is recommended.
Should you use the snapshot repositories?
We think most ROS developers should continue to use ROS from the primary repositories.
The snapshot repository is still in preview so waiting for us to stabilize it before using it on production robots is prudent.
But if your build and deploy process involves bundling ROS packages before transferring a comprehensive artifact, like a Docker or OCI container image, then the snapshot repository is worth checking out today. And after you do, reply to this thread with any feedback or to let us know you found it useful.