On Tue, 22 Sep 2015 at 20:43 Reid Vandewiele <r...@puppetlabs.com> wrote:

> On Tuesday, September 22, 2015 at 9:17:22 AM UTC-7, Luke Kanies wrote:
>
>> On Sep 21, 2015, at 7:52 PM, Corey Osman <co...@logicminds.biz> wrote:
>> >
>> > Hi,
>> >
>> > I remember when the puppet 2.7 release came out with support for faces
>> was all the rage.  The faces API seemed pretty slick as its a pluggable
>> system that allows the plugin to implement options as well.  I am curious
>> if there is any design notes or blog that someone followed in order to
>> create this system as I am looking to implement a similar pluggable feature
>> for a project I have.
>>
>
> As an end-user of Faces I don't have insight into how they work or the
> design process, but I can share a little bit of what makes them awesome and
> what doesn't work at all. I'm a very light user and I'm sure I don't use
> the full suite of functionality but I've found writing and using them to be
> easy and enjoyable (except for the lack of documentation).
>
> What I know about faces comes from tinkering with them on and off, and
> writing one or two over the last couple of years (only one of which I can
> find/remember now). I've tinkered with the `puppet node` face, the `puppet
> node_aws`, `puppet node_gce` faces, and written
> https://forge.puppetlabs.com/tse/nimbus.
>
> What I like as an end-user:
>
>    - CLI and API equivalence. This is AWESOME. This is the #1 reason I'm
>    a fan of Faces.
>    - Relatively easy API for setting up my UI - subcommands and arguments.
>    - Direct access to Puppet. Especially other faces! But settings and
>    utility methods are a boon as well.
>
> What I don't like / Doesn't work:
>
>    - Versions. I don't use them. Nobody uses them. I'm also pretty sure
>    they don't work. They don't contribute to the usability or draw of Faces.
>
>
> +1 on this.

>
>    - I want to be able to specify more than one subcommand. E.g. I want
>    to write `puppet nimbus modules install`, but since that's the "nimbus"
>    face and two sub-commands it doesn't work well. I have to make do with
>    `puppet nimbus install_modules`.
>    - Many faces are Terminus faces (`puppet certificate`, `puppet ca`,
>    etc). Basically, a kind of generalized wrapper for interacting with
>    terminii. Those seem overgeneralized and often don't hold up well. Faces
>    with more intentional and specific design seem to work much better,
>    generally.
>
>
I contributed some improvements to the terminus faces that have been merged
into Puppet 4.x which I think improves their usability quite a bit. They
are the following:

   -  --help support, no need to use the help face to get help
   - removed unsupported subcommands instead of just documenting them as
   unsupported
   - made `find` the default action for terminus faces
   - made `find` default to the host certname if no host argument is
   supplied


So now stuff like `puppet facts` gives you the facts directly, no need to
write `puppet facts find localhost`.


> People with more experience around the full suite of Face functionality
> may be able to infer by omission other things that either don't excite
> people or need documentation to expose.
>
> ~Reid
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/11fba4ec-eb3b-42c3-908f-eb38a961249e%40googlegroups.com
> <https://groups.google.com/d/msgid/puppet-dev/11fba4ec-eb3b-42c3-908f-eb38a961249e%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CAAAzDLdeUhUuL1215jYUx7vJticvy7dLNsjiWc1oJ8%3Dutk5gOg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to