Avoid circular requirement in FileMetadata indirection
Try again to avoid circular dependency in file indirections

Requiring the model at the end of the file seems the best approach for now.
Merge remote-tracking branch 'upstream/2.7.x' into 2.7rc
(#15668) Don't pluginsync for apply

After trying out having apply pluginsync there have been several
unwanted side effects. This commit removes the apply command from
pluginsyncing and so leaves only agent and device still performing
pluginsync.
(#15668) Use only one way of triggering pluginsync

Previously the Configurer took a parameter, :skip_plugin_download, which
whould cause it to not trigger a pluginsync. At the same time the
pluginsync code (Downloader) would look at Puppet[:pluginsync] to decide
whether it should actually pluginsync or not.

This changes it so that there is only Pupppet[:pluginsync] which is
passed through to the Configurer as a :pluginsync parameter when the
Configurer is called. Now all callers can be explicit about doing the
pluginsync and the Configurer is less dependent on Puppet settings.
(#15665) Fix issue with eix-update on newer eix (>=0.25.2).
Merge branch '2.7.x' into 2.7rc
Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.19rc1
(#15668) Replace test for order of files in pluginsync

The previous version of this test relied on using puppet apply to check
that the module path order was preserved in deciding the files to use
from a pluginsync. Without apply performaning a pluginsync that was not
possible anymore, but this test is still useful.

This replaces the previous test with a new one that uses the master and
the agent for performing a pluginsync and checking what files the agent
recieves.
Merge pull request #983 from romke/ticket/2.7.x/15665_eix_update_run_every_time

(#15665) Fix issue with eix-update on newer eix (>=0.25.2).
Merge remote-tracking branch 'upstream/2.7.x' into 3.x

* upstream/2.7.x:
  Update CHANGELOG lib/puppet.rb conf/redhat/puppet.spec for 2.7.19rc1
  (#15665) Fix issue with eix-update on newer eix (>=0.25.2).
  Try again to avoid circular dependency in file indirections
  Avoid circular requirement in FileMetadata indirection

Conflicts:
	CHANGELOG
	conf/redhat/puppet.spec
	lib/puppet.rb
Merge pull request #968 into 3.x

* github.com:puppetlabs/puppet:
  (#15668) Replace test for order of files in pluginsync
  (#15668) Use only one way of triggering pluginsync
  (#15668) Don't pluginsync for apply
(Maint) Simplify CONTRIBUTING.md

The previous CONTRIBUTING.md was verbose and prone to change as branches
changed. After discussion on puppet-dev I've cut it down a lot and changed the
policy for which branch to target to be a "prefer master" policy where it is up
to the merger to make sure it will go on the right branch.
Merge pull request #995 from zaphod42/maint/2.7.x/simplify_contributing_doc

(Maint) Simplify CONTRIBUTING.md
Merge remote-tracking branch 'upstream/2.7.x' into 3.x

* upstream/2.7.x:
  (Maint) Simplify CONTRIBUTING.md
(Maint) Add cprice to Git mailmap

Without this patch I noticed the git log contains both Chris Price and
cprice as separate authors.  This patch fixes the problem by normalizing
them to Chris Price <chris@puppetlabs.com>
WIP (#15337) Do not merge user and system puppet.conf

TODO:

When running with a non-existent confdir, this happens:

    puppet --confdir /tmp/puppet help node_aws
    See 'puppet help' for help on available puppet subcommands

Need to update documentation:

 1: If provided, use explicit puppet.conf (--conf{dir,ig})
 2: If root, use system puppet.conf
 3: Otherwise, use ~/.puppet/puppet.conf

Don't forget to update config.ru