Starting with Puppet 3.4 you get deprecation warnings, with Puppet 3.5 your manifest will error and fail to compile.
So Travis failing each time is expected behaviour.

From what I recall Puppet used to confuse the meaning of the hyphen. It would sometimes see it as a dash, a hyphen or even minus character. The latter resulted in Puppet trying to subtract a string from a variable containing a string.

There's a bunch of tickets regarding this topic.
E.g.: https://tickets.puppetlabs.com/browse/PUP-1397
https://projects.puppetlabs.com/issues/1686

Quoting the namespace docs:
```
Classes and Types

The names of classes, defined types, and custom types can consist of one or more namespace segments. Each namespace segment must begin with a lowercase letter and can include:

Lowercase letters
Numbers
Underscores
Namespace segments should match the following regular expression:

\A[a-z][a-z0-9_]*\Z
```
Source:
http://docs.puppetlabs.com/puppet/2.7/reference/lang_reserved.html#classes-and-types
http://docs.puppetlabs.com/puppet/3/reference/lang_reserved.html#classes-and-types