The ideal way to move open source projects forward is by frequently issuing updated builds during the course of a release. The expectation is that community members install these builds, trial the new functionality, and report back on how things work and/or make fixes to the updated code. A successful beta program engages the user community in helping to improve the product by identifying issues early in the development cycle. Unfortunately, expectations don’t often match reality.
Today there is too much friction for users. It’s not that there haven’t been community members interested in the updated builds. Rather, they’ve been reluctant to reinstall the product each time a new build is made available. Upgrading a site can involve lengthy testing to ensure that custom modules continue to work properly and that the site skin didn’t break due to a CSS change in the platform. Fortunately, the requirement to reinstall the DNN Platform each time an interim build is released is now a thing of the past.
Starting with DNN Platform 7.4.2 Beta and Platform 8.0 CTP 3, DNN supports the ability to perform incremental upgrades. This capability makes it possible for you to upgrade from a supported CTP or Beta release to any subsequent release. This feature operates using similar upgrade logic to the way upgrades have traditionally worked. We have extended the versioning system for scripts and config files to include extra “increment” information so that we can more granularly track which changes have been applied.
If you are contributing pull requests for Platform changes, you just need to follow a couple of simple rules:
1. Put all your SQL changes into an incremental SqlDataProvider file (e.g. 08.00.00.xx.SqlDataProvider)
2. Put any configuration changes into a separate configuration merge file (e.g. 08.00.00.xx.config)
During the pull request processing, we will automatically adjust file names to avoid conflicts and ensure we are not applying the same changes in multiple incremental files.
With the incremental upgrade capability, community members can feel safe participating in CTP and beta testing on production sites knowing that they can safely upgrade to the final build. As always, however, we recommend doing a backup of the site before applying pre-release code. Also, take note that the incremental upgrade capability does not apply to nightly builds or Evoq products. We will address a comparable capability for modules and other extensions in a later DNN 8 CTP.