[OpenSIPS-Users] [RFC] New Release Policy for OpenSIPS project

Saúl Ibarra Corretgé saul at ag-projects.com
Thu Nov 22 11:46:20 CET 2012


Hi Bogdan,

It's great to see this. See some comments inline.

On Nov 22, 2012, at 11:34 AM, Bogdan-Andrei Iancu wrote:

> Hi all,
> 
> I want to bring to public discussion the changing of the release policy of the project. Why, because I had an interesting feedback from the community after the email on shaping the 1.9 release and I felt the need of straighting some things up.
> 
> First of all, what this change should target? It should make the release process :
>     - more open - anyone from community (and not only developers) should be able to 
>         contribute to roadmap of the next release (on what should be done)
>     - more predictable - everyone should know when and how the next release will be 
>         available, so they can rely and sync their own private schedules (for using opensips)
>         with the project scheduling. You will know when the next release will be available 
>         as RC, as GA, etc, you will know what features will contain, you will know when to 
>         get involved for bringing in discussion some new features for the next release.
>     - more transparent - the entire releasing process to be generally known in details, so
>         we can achieve a better collaboration and interfacing between community and developers
>         (we should avoid a separation between these two entities and rather put them together 
>         to work)
> 
> 
> Now, I'm listing here what I see as a starting point and I'm eager to hear your comments, suggestions, improvements or any other ideas related to this topic.
> 
> Release cycles
> ===============
>     - instead of a feature driven release cycle, I would prefer a time driven release cycle - because it is more predictable and being feature driven may actually escalate the time to the next release (the snowball effect) - see the timing for 1.7, 1.8 versions
>     - have a 5-7 months release cycle (depending on the required volume of work)
>     - smaller steps in releases will be more friendly to users as there are no big gaps between releases, easier and more appealing to upgrade ; also shorter release cycles will make new features available in stable versions much faster.
> 

While a time-based release cycle sounds good to me for minor releases (1.8.1, 1.8.2, ...) I'm not sure if it can also be applied to major releases. What if feature X takes longer than expected to develop? Things may be inadvertently rushed and that's not good. For major releases I'd go with the Debian-ish policy: it's ready when it's ready :-)

> Next Release TODO
> ==================
>     - on a new cycle, we should start with a brainstorming on what the next release should contain (or focus on). This will open up the development and roadmap of the project to the entire community.
>     - maintain a web page with the TODO features that will be updated (this process is to be continuous); also the items that where address to be documented and listed as new available features (see http://www.opensips.org/Main/Ver190)
>     - as the release is time driven, the next release will contain only the features (from TODO list, based on priorities) that can be done in that time frame; the remaining list will be inherited by the next release.
> 
> Steps inside a Cycle
> ====================
>     - brainstorming on TODO list
>     - estimating the release time (T) based on the volume of work (between 5-7 months)
>     - actual work on implementing the items on TODO list ; it is critical important to have a 
>         better description / documentation / examples on the newly added feature -> it will help
>         people to understand and use them from day 0 (an undocumented super feature is an 
>         inexistent feature)
>     - SVN freeze (no more new stuff) at T - 1 months ; at this point the SVN trunk code 
>         is moved in a new separate SVN branch (dedicated to that release)-> Release Candidate 
>         (or beta release) ; this will make the trunk free and available for new work in the 
>         mean while (we overlap the testing on release N with the start of release N+1)
>     - testing, debugging - 1 month -> at T we have the GA release (full stable release)
> 
> Version Management
> ==================
>     - at any moment, officially we will support only the last 2 stable release (by support I mean 
>         troubleshooting, fixing bugs, backporting, etc)
>     - whatever is older than 2 stable release (like older than 1.7 now) is unsupported (no fixing,
>         no packing, no new tarballs)
>     - when a new release gets to a full stable state, the window of 2 supported versions is shifted
>         (like when 1.9 will become stable, 1.7 will become obsolete and unsupported).
> 

What about security fixes? I can understand that when 1.9 is released 1.7 goes to EOL (sort of), but what if there is a bug in the parser (for example) which can cause a crash just by using a stupid script? IMHO there should be a security-fixes-only period, since migrating to a new OpenSIPS version is not  a task to be taken lightly.

Those are my 2 cents.


Kind regards,

--
Saúl Ibarra Corretgé
AG Projects






More information about the Users mailing list