SharePoint 2013: Enable versioning in list definition

Scenario: Enable versioning in list definition. Versioning should be major versions only (no minor or draft versions), should retain a history of 15 versions, and should not require check in and check out.

Solution: Open the scemal.xml file of the list definition and add following properties to List tag:
VersioningEnabled="TRUE" EnableMinorVersions="FALSE" MajorVersionLimit="15"
Example:
<List xmlns:ows="Microsoft SharePoint" Title="ClientDocumentsListDef" Direction="$Resources:Direction;" Url="ClientDocumentsListDef" BaseType="1" xmlns="http://schemas.microsoft.com/sharepoint/" EnableContentTypes="TRUE"  NavigateForFormsPages="FALSE" VersioningEnabled="TRUE" EnableMinorVersions="FALSE" MajorVersionLimit="15">
Then open the xml file of List Instance and add VersioningEnabled="TRUE" to ListInstance tag. Example:
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ListInstance Title="Client Documents"
                OnQuickLaunch="FALSE"
                TemplateType="101"
                Url="Lists/ClientDocuments"
                Description="A document library for client documents"
                VersioningEnabled="TRUE">
  </ListInstance>
</Elements>
profile for Nadeem Yousuf at SharePoint Stack Exchange, Q&A for SharePoint enthusiasts

+