Project

General

Profile

Release cycle » History » Version 9

Yannick Warnier, 01/08/2013 03:53

1 1 Yannick Warnier
h1. Release cycle
2
3 8 Yannick Warnier
{{>toc}}
4
5 5 Yannick Warnier
In short, for each version, we do this:
6
7 9 Yannick Warnier
Development (nightlies) => Alpha releases => Beta releases => Release Candidates => Stable Release
8 5 Yannick Warnier
9 6 Yannick Warnier
Current expected dates for these phases for Chamilo 1.10 are:
10
* Dev: ...
11
* Alpha: September-October 2013
12
* Beta: October-November 2013
13
* RC: December 2013
14
* Stable: January 2014
15
16
Details below of what each step means...
17
18 2 Yannick Warnier
h2. General considerations
19 1 Yannick Warnier
20 6 Yannick Warnier
Chamilo is a *free software* developed by a community of _companies, universities and voluntary people_. Because of its flexible structure, it is very hard to be sure about the date any version of the software will be considered stable. 
21 1 Yannick Warnier
22 6 Yannick Warnier
In the free software world, _we publish a new version_ not when the marketing staff is ready, but _when the software is ready_. 
23 1 Yannick Warnier
24 6 Yannick Warnier
As all contributors bring new ideas, new code is included in the software. Sometimes, it makes things a bit less stable or a bit less usable for a while, but together with your comments and opinions, it is then improved and made a real asset to all users of Chamilo worldwide (around 6 million people in 2013). 
25 1 Yannick Warnier
26 6 Yannick Warnier
Everytime someone brings something new, we have to think about how to integrate it into Chamilo to avoid making the interface more complicated, we have to try a proof of concept, then integrate it completely and finally review it. This means *every new idea makes things better*, but increases the time of development. Sometimes we decide to postpone it to the next version, and sometimes we decide it is *so* useful to the community as a whole that we *should* integrate it as soon as possible, no matter what. This decision is taken by a very small (but open to new blood) circle of active developers.
27
28 1 Yannick Warnier
This means we might estimate a release date based on the progress of the debugging and development of new features, but we can never be sure about the date it will be published.
29
30 6 Yannick Warnier
Currently our release rate is _about_ one release every 6 months. There are _usually_ 4 minor versions for one major version, and you should get a new major version about every 12 months or so (at the current rate).
31 1 Yannick Warnier
32
A _release_ is the publication of a specific version of the software as a _package that people can download and install_, freely. We have a [[Release procedure]] established for every Chamilo package.
33 2 Yannick Warnier
34 6 Yannick Warnier
Between every two _versions_ of the software, there is a complete cycle of _releases_, which goes along the following...
35 1 Yannick Warnier
36 5 Yannick Warnier
h3. Development releases (nightlies)
37 1 Yannick Warnier
38
* Intended public: developers only
39 4 Yannick Warnier
* Feature freeze: large features are still allowed
40 1 Yannick Warnier
* Database structure freeze: changes are still allowed
41
* Database fields freeze: changes are still allowed
42
* Files structure freeze: changes are still allowed
43
* Can be used in production: NO
44
45 2 Yannick Warnier
These are rarely "released", so to speak, but sometimes, when nothing is really ready yet and we are still working hard on how to give shape to our software, we might release a development version so that other occasional developers can help us out in designing the new version.
46 1 Yannick Warnier
47
h3. Alpha releases
48
49
* Intended public: developers and regular contributors
50
* Feature freeze: large features are excluded
51
* Database structure freeze: changes are still allowed
52
* Database fields freeze: changes are still allowed
53
* Files structure freeze: changes are still allowed
54
* Can be used in production: NO
55
56
After a few months (generally after 4 months of development), we will decide that we have added enough major feature and that we want to structure things out. To show that we are getting slightly closer to a new version and to ask regular contributors to help us, we release _alpha_ packages. Alpha packages are *not to be used in production*, they are only for testing.
57
Within the alpha _cycle_, new medium or minor features can still be added and database structure changes (new tables, new fields) are still authorized, although slightly frowned upon.
58 6 Yannick Warnier
59 7 Yannick Warnier
h4. Integrators add their code HERE
60 6 Yannick Warnier
61
For integrators (i.e. organizations that provide Chamilo as a service) that have developed new features and want them to be included in Chamilo, this is the *best time* to do it, because the database is about to be fixed (in the beta release) but new features are still allowed and the core development team stopped making changes to the core's structure.
62
As such, it is safer and more time-saving to include these changes now.
63 1 Yannick Warnier
64
h3. Beta releases
65
66
* Intended public: any contributor
67
* Feature freeze: new features are *excluded*
68
* Database structure freeze: changes are *excluded*
69
* Database fields freeze: changes are still allowed
70
* Files structure freeze: changes are *excluded*
71
* Can be used in production: NO
72
73 2 Yannick Warnier
After a series of _alpha_ releases, the time comes to _freeze_ the structure of this version to focus on *stabilizing* it. 
74 1 Yannick Warnier
This means that we start reviewing *all* bug reports from all users, that have been reported on our tracking system (http://support.chamilo.org). 
75
76 2 Yannick Warnier
*We* remove all major or medium issues, and try to reach a point where *all previously known issues have been solved*, to the possible exception of some that we cannot reproduce, or that we think would unnecessarily delay the release of the stable version.
77 1 Yannick Warnier
78
79
h3. Release candidates (RC)
80
81
* Intended public: all users
82
* Feature freeze: new features are *excluded*
83
* Database structure freeze: changes are *excluded*
84
* Database fields freeze: changes are *excluded*
85
* Files structure freeze: changes are *excluded*
86
* Can be used in production: YES
87
88
A _release candidate_ means we are very close to the stable release. This is the last step before a stable release. During this (generally short) period, we leave the software for download and wait for a bit so that people can try it out and let us know if anything goes wrong. If you find a bug of any kind and report it to us, we'll have it fixed before we move to the stable version.
89
90
91
h3. Stable releases
92
93
* Intended public: all users
94
* Can be used in production: YES
95
96
This is the achievement of months of work (generally thousands of hours of work), where we finally release the new stable version to the world. If you have servers running the previous version, this is the time to upgrade. If you are installing new portals, you will see that we will have removed the previous versions from our listings and placed this new version online for you to download.
97
98
h3. Promotion cycle
99
100
Right after the stable release, we will generally spend a few months (some developers, but mainly the people involved in marketing and communication) promoting the new version of Chamilo. You will see (and you can contribute to) new blog articles talking about the new features, press releases explaining what you can now achieve with Chamilo, etc. This is a time where you can help more than ever. Even if you are not a developer, you can easily talk about how you use Chamilo. Make sure everybody you know learns something about Chamilo, be it only its existence as a free software e-learning project. If you do that, you will have contributed to the Chamilo project in a great way. No kidding!
101
102
h3. A new full development cycle begins
103
104
Pretty much at the same time as people start to promote the new version, we start preparing the plans for the next one. This is a period where we have a few meetings, talk to users and customers, listen (more) to conference speakers talking about the future of education... and stuff. Our community inspires us and this is how we can release a better software. "Speak to us":http://www.chamilo.org/irc right after a new version has been released. You will be surprised on how much you can influence the project.