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
(#15786) Allow plain http connections for report processors

A recent change (commit ce44885) to support https connections for report
processors accidentally enabled SSL for all http report processors. This patch
fixes protocol detection and adds tests to make sure both cases work.
Merge pull request #994 from pcarlisle/ticket/3.x/15786-http-report-processor

(#15786) Allow plain http connections for report processors
Merge remote-tracking branch 'upstream/3.x'

* upstream/3.x:
  (#15786) Allow plain http connections for report processors
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 remote-tracking branch 'upstream/3.x'

* upstream/3.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
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
Merge remote-tracking branch 'upstream/3.x'

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