Skip to main content
Version: 18

Deprecation Policy

To ensure the amount of custom code remains manageable and unused custom code is removed, a deprecation and removal policy is in place.

Removals are not allowed in patch versions to avoid issues when an automated deployment system is in place. Deployments of major versions are typically done supervised, so any issues that might arise from the removal of custom code can be addressed immediately. Ideally, no deprecated custom code classes are in use.

The current deprecation period is 6 months. For example:

  • A new version is requested for MyCustomCodeV2
  • MyCustomCodeV3 is created on 2023-04-01 by the engineering team
  • MyCustomCodeV2 is marked as deprecated on 2023-04-01. This means MyCustomCodeV2 is eligible for removal on 2023-10-01.
  • From 2023-10-01, MyCustomCodeV2 can be removed from the codebase of the major version that is currently in development.
  • Somewhere after 2023-10-01, the major version is released and deployed. At this point, MyCustomCodeV2 is no longer available.

Highlighting of deprecated custom code classes​

Usages of deprecated custom code classes are logged in the admin UI. Additionally, they are highlighted during a global configuration validation (Admin > Runtime > Configuration > Validate) and organization configuration validation (Admin > Organizations > <organization> > Configuration > Validate). This allows administrators to identify and remove usages of deprecated custom code classes before they are removed. This system is currently limited to custom code classes. It does not cover deprecated fields or settings yet.

Since removals are only allowed in major and minor versions, we suggest executing a configuration validation before and after deployment and upgrade config that uses deprecated custom code classes. Each deprecation warning contains the earliest removal date and the necessary information to resolve the deprecation (for example, the new class name).

Automated deprecation and removal due to versioning​

When a new version of a custom code class is implemented, the previous version is marked as deprecated and is eligible for removal 6 months later. This allows for a smooth transition to the new version while still allowing the old version to be used during the transition period.

Manual deprecation​

Apart from versioning, the following reasons can lead to the deprecation of custom code classes:

  • Offboarding of an organization (please inform us).
  • Cancellation of a custom code request. This can happen when a first version of custom code was requested, but never made it to production. In this case, the custom code class is never used in production and must be removed.
  • Introduction of a generic implementation that can replace organization-specific custom code.
  • Removal of features or interfaces.

Contending deprecation​

If custom code was marked as deprecated, but should for some reason not be removed after the foreseen deprecation period, please contact us.