Project

General

Profile

Release cycle » History » Version 3

Yannick Warnier, 26/12/2012 06:15

1 1 Yannick Warnier
h1. Release cycle
2
3
h2. General considerations
4
5 2 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. In the free software world, _we publish a new version_ not when the marketing staff is ready, but _when the software is ready_. 
6 1 Yannick Warnier
7 2 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 one million people in 2011). 
8 1 Yannick Warnier
9 2 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 we have to integrate it completely and finally we have to 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.
10 1 Yannick Warnier
11
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.
12
13
Currently our release rate is _about_ one release every 6 months.
14
15 3 Yannick Warnier
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.
16 1 Yannick Warnier
17 2 Yannick Warnier
Between every two _versions_ of the software, there are a cycle of _releases_, which go along the following...
18 1 Yannick Warnier
19
h3. Development releases
20
21
* Intended public: developers only
22
* Feature freeze: large features are excluded
23
* Database structure freeze: changes are still allowed
24
* Database fields freeze: changes are still allowed
25
* Files structure freeze: changes are still allowed
26
* Can be used in production: NO
27
28 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.
29 1 Yannick Warnier
30
h3. Alpha releases
31
32
* Intended public: developers and regular contributors
33
* Feature freeze: large features are excluded
34
* Database structure freeze: changes are still allowed
35
* Database fields freeze: changes are still allowed
36
* Files structure freeze: changes are still allowed
37
* Can be used in production: NO
38
39
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.
40 2 Yannick Warnier
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.
41 1 Yannick Warnier
42
h3. Beta releases
43
44
* Intended public: any contributor
45
* Feature freeze: new features are *excluded*
46
* Database structure freeze: changes are *excluded*
47
* Database fields freeze: changes are still allowed
48
* Files structure freeze: changes are *excluded*
49
* Can be used in production: NO
50
51 2 Yannick Warnier
After a series of _alpha_ releases, the time comes to _freeze_ the structure of this version to focus on *stabilizing* it. 
52 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). 
53
54 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.
55 1 Yannick Warnier
56
57
h3. Release candidates (RC)
58
59
* Intended public: all users
60
* Feature freeze: new features are *excluded*
61
* Database structure freeze: changes are *excluded*
62
* Database fields freeze: changes are *excluded*
63
* Files structure freeze: changes are *excluded*
64
* Can be used in production: YES
65
66
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.
67
68
69
h3. Stable releases
70
71
* Intended public: all users
72
* Can be used in production: YES
73
74
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.
75
76
h3. Promotion cycle
77
78
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!
79
80
h3. A new full development cycle begins
81
82
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.