Versioning & source management

Published: 3/24/2013, Author: Håkan Edling Categories: Piranha, 0 Comments

With the release of version 1.2.0 it's time to embrace the fact that Piranha CMS has grown in functionality and compexity to a level we didn't foresee in our initial release.

With this in mind it's time to take a look at how we will be working with the versioning and the structure of our GitHub repo from now on.


As you can see we decided to label the last version as 1.2.0 instead of 1.1.5 which was the inital thought considering previous versions. We've decided from this to release to only use the major and minor verison number. The build number will be used to label patches and intermediate releases.

Patches and intermediate releases will be fully compatible with the minor release and upgrading should mearly be about replacing the dll-files. Furthermore, these intermediate releases will contain no new funtionality except bugfixes, this of course means that there will be no database-upgrades needed for an intermediate release.

Minor releases will from now on be fully backwards compatible and contain no breaking change. As soon as a breaking change occurs the main version number will be changed.

Major releases will be releases containing either breaking changes, restructuring or new functionality of the magnitude that should invoke a new major release number.

Source management

From now on no new development will take place in the master branch of our GitHub repo. This means that the master branch will always contain the exact same source code as the latest release available on NuGet. We will create an intermediate branch for testing and commiting fixes for intermediate releases and a development branch which will be the main development branch for the next version.

Just like before the master branch will be tagged as soon as a new version is released on NuGet making it possible to retrieve the source code for any previous version that has been released on NuGet.

With these rather small changes in how we will handle our repository we hope that it will be more clear about how to maintain the source code for the current or any previous release of the framework.

Overall structure

In the next upcoming version we will do a lot of work on the structure of the code base. The goal is to split the current Piranha project into a number of different projects to enable you to use only the parts that are appropriate in your project. Another big step is to fully upgrade the framework to ASP.NET 4.5, MVC 4, WebPages 2.0 and Web API.

Allthough the architecture is not fully finished yet, we are currently looking at the following structure.


This will remain the core library for the framework containing database management, entity framework mappings and the manager interface.


Library for developing client applications using the ASP.NET Web Pages technology. This is the technology used in the current version.


Library for developing client applications using the ASP.NET Mvc technology. The current Mvc support will be redesigned and restructured.


Web API library with services for developing client-side javascript applications or any other applications that can utilize json over restful services.


As always, if you have any feedback or thoughts on how you want to be able to use the framework, please let us know. And if you, or the company you work for, are interested in contributing to the project in any way, just send us a mail and we'll get back to you.

blog comments powered by Disqus