RFC: Upcoming release schedules and creating a formal schedule for future releases

Hi,

I want to give an update on the status of the LLVM 11 and LLVM 12 releases. 11.0.1-final is expected to be tagged this week, along with 11.1.0-rc1. Unfortunately, we had an ABI regression in libclang.so between LLVM 10 and LLVM 11, so we need to do an 11.1.0 release to correct this. This happened one other time where we had to bump the minor version to correct an ABI breakage. So, LLVM 11.0.1 libclang will be ABI compatible with LLVM 11, and LLVM 11.1.0 libclang will be ABI compatible with LLVM != 11.

For LLVM 12 the proposed branch date is Jan 26. I'm hoping we will have the 2 LLVM 11.x releases done before that.

In addition to all this, I would like to propose an official week-of-the-year based release schedule that we can use for all future releases. What I'm proposing is not really any different in terms of dates from what we've been doing for the last several years. My main goal is just to get this documented so it's clear to the community and the release managers what the expectations are. Here is the proposed scheduled:

1.0.0-rc1 4th Tue in January
1.0.0-rc2 + 4 Weeks
1.0.0-final + 2 Weeks (10th Tuesday ~mar 9)
1.0.1-rc1 + 4 Weeks
1.0.1-rc2 + 4 Weeks
1.0.1-final + 2 Weeks (20th Tuesday ~may 18)

2.0.0-rc1 + 10 Weeks (+26 Weeks From 1.0.0-rc1)
2.0.0-rc2 + 4 Weeks
2.0.0-final + 2 weeks (36th Tuesday ~sep 7)
2.0.1-rc1 + 4 weeks
2.0.1-rc2 + 4 weeks
2.0.1-final + 2 weeks (46th Tuesday ~nov 16

The release branches will be created on the same day as -rc1.

If there are no objections to this, I will add it to the documentation next week.

-Tom

Hello Tom,

Happy new year!

Hi,

I want to give an update on the status of the LLVM 11 and LLVM 12 releases. 11.0.1-final is expected to be tagged this week, along with 11.1.0-rc1. Unfortunately, we had an ABI regression in libclang.so between LLVM 10 and LLVM 11, so we need to do an 11.1.0 release to correct this. This happened one other time where we had to bump the minor version to correct an ABI breakage. So, LLVM 11.0.1 libclang will be ABI compatible with LLVM 11, and LLVM 11.1.0 libclang will be ABI compatible with LLVM != 11.

Do you have the bug number of the ABI issue? I didn't experience it.

For LLVM 12 the proposed branch date is Jan 26. I'm hoping we will have the 2 LLVM 11.x releases done before that.

In addition to all this, I would like to propose an official week-of-the-year based release schedule that we can use for all future releases. What I'm proposing is not really any different in terms of dates from what we've been doing for the last several years. My main goal is just to get this documented so it's clear to the community and the release managers what the expectations are. Here is the proposed scheduled:

1.0.0-rc1 4th Tue in January
1.0.0-rc2 + 4 Weeks
1.0.0-final + 2 Weeks (10th Tuesday ~mar 9)
1.0.1-rc1 + 4 Weeks
1.0.1-rc2 + 4 Weeks
1.0.1-final + 2 Weeks (20th Tuesday ~may 18)

2.0.0-rc1 + 10 Weeks (+26 Weeks From 1.0.0-rc1)
2.0.0-rc2 + 4 Weeks
2.0.0-final + 2 weeks (36th Tuesday ~sep 7)
2.0.1-rc1 + 4 weeks
2.0.1-rc2 + 4 weeks
2.0.1-final + 2 weeks (46th Tuesday ~nov 16

The release branches will be created on the same day as -rc1.

If there are no objections to this, I will add it to the documentation next week.

I like the approach.
As we have an history of missing the deadlines, what about make it less specific? (or making it clear that it is just a guidance).

Cheers,

Sylvestre

Hello Tom,

Happy new year!

Hi,

I want to give an update on the status of the LLVM 11 and LLVM 12 releases. 11.0.1-final is expected to be tagged this week, along with 11.1.0-rc1. Unfortunately, we had an ABI regression in libclang.so between LLVM 10 and LLVM 11, so we need to do an 11.1.0 release to correct this. This happened one other time where we had to bump the minor version to correct an ABI breakage. So, LLVM 11.0.1 libclang will be ABI compatible with LLVM 11, and LLVM 11.1.0 libclang will be ABI compatible with LLVM != 11.

Do you have the bug number of the ABI issue? I didn't experience it.

https://bugs.llvm.org/show_bug.cgi?id=46526

For LLVM 12 the proposed branch date is Jan 26. I'm hoping we will have the 2 LLVM 11.x releases done before that.

In addition to all this, I would like to propose an official week-of-the-year based release schedule that we can use for all future releases. What I'm proposing is not really any different in terms of dates from what we've been doing for the last several years. My main goal is just to get this documented so it's clear to the community and the release managers what the expectations are. Here is the proposed scheduled:

1.0.0-rc1 4th Tue in January
1.0.0-rc2 + 4 Weeks
1.0.0-final + 2 Weeks (10th Tuesday ~mar 9)
1.0.1-rc1 + 4 Weeks
1.0.1-rc2 + 4 Weeks
1.0.1-final + 2 Weeks (20th Tuesday ~may 18)

2.0.0-rc1 + 10 Weeks (+26 Weeks From 1.0.0-rc1)
2.0.0-rc2 + 4 Weeks
2.0.0-final + 2 weeks (36th Tuesday ~sep 7)
2.0.1-rc1 + 4 weeks
2.0.1-rc2 + 4 weeks
2.0.1-final + 2 weeks (46th Tuesday ~nov 16

The release branches will be created on the same day as -rc1.

If there are no objections to this, I will add it to the documentation next week.

I like the approach.
As we have an history of missing the deadlines, what about make it less specific? (or making it clear that it is just a guidance).

I think the -rc1 dates should not change, but I can note that the other dates are meant as a guide.

-Tom

This sounds good to me (maybe spell out roughly what date 2.0.0-rc1
would be to make it easier to get an overview).

Thanks,
Hans

How about we specify the week, rather than the day?

If our aim is Tuesday, then it’ll often be early in the week, so people won’t be waiting too long, but allows some flexibility if something bad happens and avoids multiple emails on the list about “where’s the release?”.

Tom, how did you detect the libclang ABI regression, is there automatic testing? Was there a discussion on the email lists, I missed it, would like to learn more. --Melanie

I looked at calendars for upcoming years; the 2.0.0 date ends up being less predictable than I’d like. Mostly it’s the 4th Tuesday in July, but sometimes the 5th Tuesday, and can be 4th Tuesday even when there is a 5th Tuesday.

Rather than 2.0.0-rc1 = 1.0.0-rc1 + 26 weeks, let’s make it 2.0.0-rc1 = 4th Tuesday in July (i.e., 1.0.0-rc1 plus 6 months, not plus 26 weeks). I think that will be easier to remember, and the interval being a week shorter should not be a problem.

–paulr

Tom, how did you detect the libclang ABI regression, is there automatic testing? Was there a discussion on the email lists, I missed it, would like to learn more. --Melanie

It was reported by a user: https://bugs.llvm.org/show_bug.cgi?id=46526

We only have automatic testing for the libLLVM.so ABI. We really need to add this for libclang.so too, so I'm looking into how to get this set up.

-Tom

If the branch date for LLVM 12 is Jan. 26, do we have a goal date for
the final LLVM 12 release?

                   -David

Hans Wennborg via Openmp-dev <openmp-dev@lists.llvm.org> writes:

Hi,

I want to give an update on the status of the LLVM 11 and LLVM 12 releases. 11.0.1-final is expected to be tagged this week, along with 11.1.0-rc1. Unfortunately, we had an ABI regression in libclang.so between LLVM 10 and LLVM 11, so we need to do an 11.1.0 release to correct this. This happened one other time where we had to bump the minor version to correct an ABI breakage. So, LLVM 11.0.1 libclang will be ABI compatible with LLVM 11, and LLVM 11.1.0 libclang will be ABI compatible with LLVM != 11.

For LLVM 12 the proposed branch date is Jan 26. I'm hoping we will have the 2 LLVM 11.x releases done before that.

In addition to all this, I would like to propose an official week-of-the-year based release schedule that we can use for all future releases. What I'm proposing is not really any different in terms of dates from what we've been doing for the last several years. My main goal is just to get this documented so it's clear to the community and the release managers what the expectations are. Here is the proposed scheduled:

1.0.0-rc1 4th Tue in January
1.0.0-rc2 + 4 Weeks
1.0.0-final + 2 Weeks (10th Tuesday ~mar 9)
1.0.1-rc1 + 4 Weeks
1.0.1-rc2 + 4 Weeks
1.0.1-final + 2 Weeks (20th Tuesday ~may 18)

2.0.0-rc1 + 10 Weeks (+26 Weeks From 1.0.0-rc1)
2.0.0-rc2 + 4 Weeks
2.0.0-final + 2 weeks (36th Tuesday ~sep 7)
2.0.1-rc1 + 4 weeks
2.0.1-rc2 + 4 weeks
2.0.1-final + 2 weeks (46th Tuesday ~nov 16

The release branches will be created on the same day as -rc1.

If there are no objections to this, I will add it to the documentation next week.

Thanks for the feedback, I have incorporated all the suggestions and submitted a patch to update the documentation:
https://reviews.llvm.org/D95114

-Tom