Timeline for Crystal

With the ROS 2 Crystal release getting closer and the number of contributors increasing we want to provide a more concrete timeline to give everyone a heads up to update / release packages. All of the following dates are our best estimates when things will happen:

Milestone 1, week Nov 5th - 9th, first round of bloom releases:

  • Alpha status.
  • Allows maintainers to register their repositories for release / CI / PR testing.
  • At that point we don’t guarantee that the API is 100% final yet (see next milestone).

Milestone 2, Wed Nov 21st, API freeze for core packages - avoid breaking API changes after this:

  • Beta status.
  • Until that date work is ongoing on the rmw interface, rcl* as well as rosidl* which is expected to break some API used by downstream packages, we will update the documentation on the (to be generated) Crystal release page as we go.
  • Afterwards external contributors have enough time to update rmw implementations and message generators to match changed API and get them released before the Crystal release date.

Milestone 3, Tue Dec 4th, feature freeze packages for roughly everything in the ros2.repos file

  • RC status.
  • Cut-off for bloom releases introducing features (bug fixes during the testing phase will still be accepted).
  • Other packages / repositories can of course be released any time - even after the release announcement (same as for existing ROS distros).

Release announcement on Fri Dec 14th :crossed_fingers:

Post-release, on demand:

  • Make patch releases where necessary.
  • Sync on demand (same as of existing ROS distros).

Your friendly ROS team

7 Likes

@dirk-thomas - so today is feature freeze for ros2.repos right?

Sorry if this is a dumb question but, what’s the cutoff for other packages like Navigation2 in order for us to make the Dec 14th release as a debian? We are still trying to get Behavior Trees into the build farm so that we can release.

Both are unrelated to each other.

For bloom releases there is in general never any cut off for new package releases. E.g. if you want to release a new package into Crystal in January you can do that anytime. That being said new packages are only being synced from time to time to the public repo (usually when there are no regressions). For the release date of Crystal in 10 days you should get bloom releases out as quickly as possible to ensure they successfully build and you have enough time to test the actual Debian packages. You can always release a new patch release later. If a patch release arrives only a few days before the release date we can’t guarantee that it will be synced in time since the version we announce on the release date was commonly built a couple of days before already.

Regarding the ros2.repos file all contributions need to build across all the targeted platforms. Since that bar is even higher (then only Ubuntu amd64 for the Debian packages) I would also suggest asap. After a successful run of the CI builds a PR can be merged quickly (assuming they build and test with no regressions). The closer we get to the release there might be more congestion and therefore a longer delay before we can test contributions. Once repositories are added to the repos file we do expect the branch to be stable and not fail the builds / have failing tests (otherwise the repo is subject to be removed again until it is stable again).

So in both cases for navigation2 I can only suggest as soon as possible to reduce the risk of something not working out when done the first time and then missing the release announcement.

Dirk, thanks for the reply. We do want to have our package ready in time for the Dec 14 release, but good to know we can do updates later, we’ll definitely be making incremental improvements for quite a while. We have the one dependency on the Behavior Tree but we’re meeting with @facontidavide to try and get that resolved this week. We have a preliminary bloom release but it is failing the build due to that dependency not being available in bloom yet.

Anyway I think we’re going to make it but was looking for a ‘drop-dead’ date for making it into the release on the 14th. It sounds like there isn’t one officially, but to be safe we should assume it’s no later than next Tuesday? Let me know if that’s too late.

I just submitted he package Behavior Tree. If everything is OK, it should not be a blocker any more.

1 Like

Awesome! Thanks so much!

We can still meet Thursday to discuss how we’re using it and answer any questions you have.