The document provides a summary of the most common code changes needed when migrating Puppet code from version 3 to version 4. It outlines several key differences including: 1) Numbers being treated as numbers rather than strings, requiring file modes to be quoted. 2) Only undefined and false being treated as false, not empty strings. 3) Variable names needing to start with lowercase letters. 4) Other minor changes like hyphens not being allowed in class names and ERB variables requiring @ prefixes. The document recommends using tools like puppet parser validate, puppet-lint, catalog_diff and catalog_preview to automatically check for issues when migrating code to Puppet 4. Overall,