What are the requirements for versioning?

For versioning to be carried out and for a user to be able to use the versioning options, the following requirements must be met: