(maint) Add ruby-augeas to Gemfile and Travis for more test coverage
(#23141) Add OpenBSD to the exclusion list for 'remounts' in mount type
On systems without "-o remount", use "-o update" except for AIX.
Fix small typo
(maint) Add f20 to default mocks
(#23373) Update acceptance test to use config set

This is the first, simple case of using a `config set` subcommand to
manipulate the puppet.conf file.
(Maint) Allow specifying tests to run to rake task
(#23373) Allow basic control of puppet.conf

This provides a new action on the puppet config subcommand to allow
setting configuration values in the puppet.conf file. This implemenation
does not understand sections and so will simply change the first
instance of the configuration parameter that it is trying to change.
(#23373) Remove duplicate config file parsers

This merges together the two concrete parsers for the puppet config
file. The transformation into the section groups is now done as a second
pass that works on the individual line objects. In doing so it became
clear that the error reporting was supposed to be issuing line numbers,
but was instead outputing the entire line that was wrong. This also
fixes up that mistake.
(#23373) Pull apart ConfigFile and IniFile

The ConfigFile was getting muddled and large. This pulls out the new
file manipulation code into IniFile and has ConfigFile use that.
(#23373) Fix line number tracking for settings config

Ensure we incremenet line count when parsing an ini_file, and tests that
we are correctly tracking line count in multi line config errors.
(pup-954) Correct flaws in the Pattern Type implementation

* it used AND semantics instead of OR
* it did not accept a Pattern or Regexp as pattern parameter
* it was not assignable by an Enum with matching strings
(maint) Fix type calculations for Variant

Type calculations for variant were wrong (and one of the test
where also wrong).

This corrects the logic; when combining two variants, does types that
are assignable to one in the other are not included (the more general
"shadows" the more specific). Also, when calculating assignability
involving the Data type, a compatible variant must be considered equal;
a Data type is after all just a pre-packaged variant.
Merge pull request #2125 from melissaanne/ticket/stable/re-597-add-f20

(maint) Add f20 to default mocks
(#23373) Always open config so we are reading from the beginning

Not all operating systems start reading from the same position with 'a+'
when opening the file.  This ensures that we create the file with
default permissions, and begin reading from the first line.

We also make some acceptance changes for testing puppet config set, and
remove an acceptance test which was of dubious value.
Merge branch 'feature/master/23373-manipulate-puppet-conf-ignore-sections'
(pup-954) Fix issues with typesystem's handling of inference.

This adds additional inference methods:
* infer_generic - a non instance specific result
* infer_set - a non reducing/combining inference
* generalize! - changes instance specific to generic

This makes it possible to evaluate expressions like:
[1,a] =~ Array[Variant[Integer, String]]

This failed previously as the result was that Array[Literal] is
not assignable to either of the two more specific types.
(#23141) Fix remount on bsd if options are specified

The initial fix for 23141 didn't account for a remount when
options were specified.  This caused integration tests to
fail because a) the integration tests assumed mounted is always
false when the mountcmd is called (not true for a remount), and
b) the integration tests weren't updated to consider the 'update'
option.

This patch updates the remount method to append ',update' if
there are already options, and updates the integration tests
accordingly.
(maint) Remove obsolete line of code
(#23141) Split spec test into two for the two non-remounts scenarios

There are now two sets of platforms that don't support "remounts"
by default: those that do a 'mount -o update' and those that do
a 'umount' followed by a 'mount'. This patch splits the spec test
into two accordingly.