Hi Folks, Let me start with a little bit from the WSO2 Carbon release history. From 2009 to early 2012, Carbon kernel, Carbon platform and the set of products shared the same source repository and they all shared the same version except for products. So in all the previous releases, we had to release everything even though we needed a new kernel release or a new platform release. Also the source repository became somewhat unmanageable at that time. We wanted to independently release Carbon kernel and Carbon platform. I.e. Carbon platform trunk should be able to depend on a released Carbon kernel version. Therefore we split the source repository into three different repositories called Carbon orbit, Carbon kernel and Carbon platform. This decision allowed us to work on these projects indipendenly.
But we did a mistake again by using the same version for the Carbon kernel and the platform. Another mistake is to maintain a P2 repository for a Carbon kernel version assuming that all the products/features which are released on a given kernel version are compatible with each other. In the past year or so our assumption has been proven wrong. We have been introducing incompatible changes in patch releases of certain products and P2 story is broken in the past two major Carbon releases. Recently we had a meeting to rectify this issue. Participants are Sanjiva, Azeez, Sumedha and bunch of few others. I have explained the solution below in point form. - We need to highlight the Carbon platform release concept more. We need to introduce two different versions/names for the platform releases and the kernel releases. There can be multiple platform releases based on a single kernel release. - A Carbon platform release consists of a bunch of product releases which are compatible with each other. I.e features of a AS should work seamlessly with another product say ESB given that both these products belongs to a single platform release. Recent requirements clearly shows the need of a set of compatible products to build something like WSO2 Cloud. - We need to maintain a P2 repository for a Carbon platform release not for a kernel release. Product which belongs to single platform version should be able connect to this repo and install features and run without any issues. I.e all the product feature. When ever we do a patch release of a product, we should not do any incompatible changes to the same platform. If you need a this sort of a change, you can initiate new platform release. - Practically we cannot release all the products at once. Therefore we need to follow a chunk based release model[1] when it comes to releasing products and patch releases of products. - We thought of naming Carbon platform releases after the Turing award winners. We named first platform release(4.2.0) as Turing. - I have worked with Dassa(Dasun) to update the release matrix page[2] to illustrate these facts. Please share your thoughts on this. Thanks, Sameera. [1] https://svn.wso2.org/repos/wso2/carbon/platform/branches/4.2.0/product-releases/ [2] http://wso2.com/products/carbon/release-matrix/ -- Sameera Jayasoma, Architect, WSO2, Inc. (http://wso2.com) email: [email protected] blog: http://sameera.adahas.org twitter: https://twitter.com/sameerajayasoma flickr: http://www.flickr.com/photos/sameera-jayasoma/collections Mobile: 0094776364456 Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
