Technology evolves quickly. We want to take advantage of modern tools and practices in developing software at Magnolia. Deprecating old software is necessary to make room for innovation.
Deprecation means that we discourage the use of a feature, design or practice because it has been superseded or is no longer considered efficient or safe. Rather than removing features immediately we deprecate them to provide some backward compatibility and time for you to update your Magnolia projects. While the deprecated feature remains in the product for a while, we recommend that you replace it with current best practices. The deprecated status means we will remove the feature in the future.
Reasons to deprecate
We deprecate technology when:
- The technology is obsolete or there are better, more modern ways to do the same thing.
- We want to free up maintenance resources to do something that benefits the product more.
- The technology poses a security threat. New, more secure ways are available.
- Trends have passed the technology or it is considered old fashioned.
Deprecation is a gradual process. We announce it ahead of time in order to guarantee a stable product and to give you time to update your projects.
- Maintenance mode
- First, we move the feature, design or practice to maintenance mode. We announce this on the Magnolia forum and release notes.
- We no longer develop the code actively. We don’t make any improvements or add any new features.
- Maintenance mode typically lasts for 1 year.
- Access to artifacts (bundles, webapps, modules) in maintenance mode requires an enterprise license. Your Maven setup must provide access to the maintenance repositories.
- Next, we deprecate the code. We announce this on the Magnolia forum and release notes.
- In case of API, we mark the deprecation in code. Javadoc tells users in which version a method, class or interface was deprecated and what alternatives are available.
- We only do security fixes. No more bug fixes.
- We stop bundling the code with the product. You can still get the code from our Nexus repository but we don't recommend using it anymore.
Deprecated status typically lasts for 1 year.
- End of life
- Finally, we remove the code permanently. In some cases, we move it to the Magnolia Forge, thereby donating it to the community.
- We don’t do any maintenance, support or fixes.