Upgrading Puppet can be a long and involved process, particularly when skipping major versions. New language features are a included in each Puppet major version release. These changes, however, mean that upgrading Puppet is not a simple matter of installing a new package. The Puppet master should be upgraded to the new version first, then tested, then all of the agents upgraded and tested. Edge cases and problems may arise during this process because of the changes to the language and architecture.