New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

So, What is the DotNetNuke Release Process?

As you all read the various project forums and look forward to new releases of your favorite modules, you have no doubt seen references to a 'release process' or 'release tracker' .. and I'm sure you've all wondered .. 'what the *&%$ is that?

A little history:
Back in July of 2006, after the modules had been split into their own projects, it became evident that we needed a formal release process in order to ensure high-quality releases of official DotNetNuke Projects. There are a lot of stakeholders in a DotNetNuke Project. There’s the Project Team, the Project Lead, the Project Chair ( a core team member who acts as mentor and liason between the project team and the core team ), and most importantly, the DotNetNuke Community as a whole. A documented, clearly defined release process was necessary to allow all of those stakeholders to not only understand the steps involved in releasing a Project, but be able to follow a release as it moves through the various stages of the process.

Prior to the definition of the process, the two biggest challenges facing project teams, was knowing what needed to be done, and who needed to do what in order to get a project released. Too often a module would be waiting for someone to perform some test or certification, and the person responsible for performing that task was unaware that a module was waiting for them to do something.

So, 'Process Definition' and 'Communication' were the two key objectives to making this a smooth, repeatable and efficient process. Without a defined process and good communications, releases are delayed, poor quality code is released and all of the stakeholders are left feeling frustrated.

The Release Process and the Tracker Module:
The first step was to define the sequence of 'states' that package must pass in order to be released, and for each state a list of 'exit criteria' that the package must pass in order to advance to the next state.  Then for each state, a list of the people who were going to be responsible for evaulating each of those criteria was identified. Once the states, exit criteria and resources were defined, it was decided that the best way to manage this new process was a custom DotNetNuke module to handle the tracking and communications necessary. The module, called the 'DotNetNuke Release Tracker', allows project leads to submit project 'packages'. Once submitted, the module handles the notification issue by sending an email to all resources who are authorized to pass or fail exit criteria for a package in it's current state. The module then allows those resources to pass or fail each individual criteria. Once all criteria for a particular state are passed, then the module advances the package to the next state and sends out notification emails letting everyone know that the previous state was passed and the package is in a new state. This process continues until a package passes it's final state and is then released to the community.

The Tracker module allows people to see what modules have been submitted for release, where the module is in that process, which state it's in, which exit criteria have passed and which have not, who's responsible for evaluating that criteria ( so that if we see a module becoming stagnant, we know who to contact ) and we make sure that nothing falls through the cracks in releasing a new module to the community.

Coming soon to a portal near you:
Now that we have been using the Tracker module for some time and have worked out some early kinks, we are preparing to make the module public! That means that very soon, you will be able to view the tracker module on, see which modules have been released into the process and how they're doing.

Here are a couple of screenshots of the tracker module. The first is the Tracker 'dashboard' which is a summary of all the modules that have been submitted and have not yet been released or failed. The two bar charts at the right show the progress through the 7 states of the DotNetNuke Release Process ( the Overall chart ), and the exit criteria in the current state ( the Current chart )

This second screen shot shows the package 'details'.There is a lot of information available, release notes for the module, test cases that will be executed, a history of the module since it's submission, and more. The tracker provides everything you'd need to know about a module as it moves through the process to a final release.


In addition, the module generates process metrics so we can track the performance of packages and see the time it takes a module to move from submission to release, as well as track package failures and the reason a package doesn't make it all the way through.

This was just an overview, and in future blogs, I'll go into more detail about the states/exit criteria that we've defined for the DotNetNuke Release Process, and I'll walk through the Tracker module itself to provide some insight into the module being used to manage this complicated process.

Stay tuned :)



Comment Form

Only registered users may post comments.


Aderson Oliveira (22)
Alec Whittington (11)
Alessandra Davies (3)
Alex Shirley (10)
Andrew Hoefling (3)
Andrew Nurse (30)
Andy Tryba (1)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (37)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Bogdan Litescu (1)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (213)
Chris Paterra (55)
Clint Patterson (108)
Cuong Dang (21)
Daniel Bartholomew (2)
Daniel Mettler (181)
Daniel Valadas (48)
Dave Buckner (2)
David Poindexter (12)
David Rodriguez (3)
Dennis Shiao (1)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (80)
Francisco Perez Andres (17)
Geoff Barlow (12)
George Alatrash (12)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (274)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Kelly Ford (4)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matt Rutledge (2)
Matthias Schlomann (16)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Miguel Gatmaytan (3)
Mike Horton (19)
Mitchel Sellers (40)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Oliver Hine (1)
Patricio F. Salinas (1)
Patrick Ryan (1)
Peter Donker (54)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Sacha Trauwaen (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott Schlesier (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Steven Fisher (1)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (3)
Tycho de Waard (4)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (40)
Will Strohl (180)
William Severance (5)
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out