On Tue, 22 Sep 2015 at 20:43 Reid Vandewiele <[email protected]> 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 <[email protected]> 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 [email protected]. > 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 [email protected]. 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.
