GitHub user GutoVeronezi added a comment to the discussion: Define a release 
schedule for the project

Github Discussions is integrated with the users' mailing list; everything that 
is posted here is also sent by email and vice-versa. This discussion is way 
wider than the development scope (as @rohityadavcloud stated), it affects users 
as well; thus, GitHub Discussions seems the right place to have it. 

I see we agree on several topics, but not so much on others. What draws my 
attention in the whole discussion is that people say that we have a 
well-defined process: two major and two minor releases a year; however, with a 
remark that we never make that. In fact, looking at our history, we never 
accomplished that (regarding the major releases). Following there is the tag 
creation date of major releases since 4.10 (the tag creation divergences in an 
average of a week from the release itself):

<details><summary>tags creation date</summary>

``` 
for i in {10..19}; do echo $i && git show 4.$i.0.0 | head -n 3 | grep Date; done
10
Date:   Thu Jul 6 15:52:45 2017 +0530
11
Date:   Fri Jan 26 13:13:44 2018 +0100
12
Date:   Thu Mar 14 10:11:46 2019 -0300
13
Date:   Fri Sep 20 14:03:47 2019 +0530
14
Date:   Mon May 11 15:03:30 2020 +0100
15
Date:   Mon Jan 11 13:48:17 2021 +0530
16
Date:   Thu Nov 4 14:14:57 2021 -0300
17
Date:   Tue May 31 14:33:47 2022 -0300
18
Date:   Sat Mar 11 09:36:25 2023 +0100
19
Date:   Mon Jan 29 10:21:52 2024 +0530
```
</details>

- 4.10.0 was released around July, 2017;
- 4.11.0 was released around January, 2018 (around 7 months after the previous);
- 4.12.0 was released around March, 2019 (around 14 months after the previous);
- 4.13.0 was released around September, 2019 (around 6 months after the 
previous);
- 4.14.0 was released around May, 2020 (around 8 months after the previous);
- 4.15.0 was released around January, 2021 (around 8 months after the previous);
- 4.16.0 was released around November, 2021 (around 10 months after the 
previous);
- 4.17.0 was released around May, 2022 (around 6 months after the previous);
- 4.18.0 was released around March, 2023 (around 10 months after the previous);
- 4.19.0 was released around January, 2024 (around 10 months after the 
previous);

Looking at the data, it is clear that our current process is not adequate. 
Sometimes we barely release a major in a year and there is a case that we took 
more than a year to release a major. In my opinion, that occurs because the 
process we have is not well-defined and it seems we are not "caring" too much 
about it. What we are missing is planning and predictability; we do not know 
when the next release will be (after 4.20); we do not have a common goal. We 
delay months to deliver a release in order to fit a feature in a release. Thus, 
again, we lack planning. Regarding @rohityadavcloud question "who would enforce 
them, who would drive them?", well, it is the PMC's responsibility. 
Furthermore, we must comply with the Cyber Resilience Act (CRA).

About the disruptive changes, we can look at how other projects are doing it 
and adapt to our context. For instance, in one version, the GitLab community 
introduces features that are disabled by default and lets the users enable it; 
then, in another version (after validations and defining that the feature is 
stable), they enable it and remove the configuration. We can use a similar 
approach, like introducing new features/behaviors in a version and marking the 
previous behavior as deprecated, and then, in another version, we remove the 
previous behavior, as @DaanHoogland commented. The problem is: we do not have 
it clearly defined.

I believe we can benefit more from this discussion by separating it into small 
topics, for instance:

1. looking at our history, what would be the ideal cadence of major releases 
for our context and why?
2. how and when should we define the RM for each major?
3. how should we introduce disruptive changes and remove compatibility?
4. what are the community's common goals?
5. regarding minor releases, should we flexibilize it more or be more rigid?


GitHub link: 
https://github.com/apache/cloudstack/discussions/8970#discussioncomment-9754199

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]

Reply via email to