Topics

Puppet SDK (pre-)announcement

David Schmitt
 



On 2 Jun 2017 22:45, "Rob Nelson" <rnelson0@...> wrote:
David,

Thanks for the preview! I've only had time to review it on the surface, but one question about rubocop. I know the SDK will be opinionated, but do you envision the ability to use the SDK without rubocop? While VP uses it heavily, I don't use it in my modules and we don't use it at work because the pre-1.0.0 nature of it leads to a lot of breakage at the absolute worst times. VP *does* pin it to reduce those impacts, at least, whereas the SDK right now is not pinned or bound at all.

The goal is to provide a coherent, tested set of tools, based on top of the templates. That of course includes a matching rubocop config and version. There are also provisions to run tools one-by-one. 

Please don't call it opinionated. With Bryan Jen, James Stocks, Jean Bond, Jesse Scott, Tim Sharpe, and myself, we've got a bunch of people working on improving the story across the board. For the pdk the goal is to capture the essence of module development workflow to provide the best experience possible, both to newcomers and experts.

Cheers, David 


Rob Nelson
rnelson0@...


Rob Nelson
 

David,

Thanks for the preview! I've only had time to review it on the surface, but one question about rubocop. I know the SDK will be opinionated, but do you envision the ability to use the SDK without rubocop? While VP uses it heavily, I don't use it in my modules and we don't use it at work because the pre-1.0.0 nature of it leads to a lot of breakage at the absolute worst times. VP *does* pin it to reduce those impacts, at least, whereas the SDK right now is not pinned or bound at all.

Rob Nelson
rnelson0@...

David Schmitt
 



On 2 June 2017 at 16:22, David Hollinger <david.hollinger@...> wrote:
Awesome! This looks incredibly useful.

Thank you!
 

Couple questions:
  • Will this replace using 'puppet module generate' to create a new module?
I would wish so, see https://tickets.puppetlabs.com/browse/PUP-7398 ; I can't tell if and when that'll happen. Not before a release and soak time on the SDK side, for sure.
 
  • Will this use the Puppet Module Skeleton that 'puppet module generate' uses today or is it designed specifically to be used only with modulesync?
By default, the SDK's templates will reside in https://github.com/puppetlabs/pdk-module-template. This is overridable on a case-by-case basis, allowing you to provide your own templates. If you have PMG templates at the moment, you'll need to translate them, but I expect that to be relatively easy, as both use ERB. Should a significant number of folks pipe up with PMG compatible custom templates, we could consider implementing additional render support for those too.

More generally, if you have custom templates, we are also very interested in what you need there, so we can improve the SDK's templates so that this need goes away.


Cheers, David

David Hollinger
 

Awesome! This looks incredibly useful.

Couple questions:
  • Will this replace using 'puppet module generate' to create a new module?
  • Will this use the Puppet Module Skeleton that 'puppet module generate' uses today or is it designed specifically to be used only with modulesync?

Thomas Mueller <thomas@...>
 

Am 01.06.2017 um 19:34 schrieb David Schmitt:
Hi folks,

in the spirit of release early, release often, we've just opened up
the repositories for the pdk to the public:
https://github.com/puppetlabs/pdk
Nice! This is something I think could work out to be very useful.

- Thomas

David Schmitt
 

Hi folks,

in the spirit of release early, release often, we've just opened up the repositories for the pdk to the public: https://github.com/puppetlabs/pdk

The README there details some of what is planned for the next weeks, the implementation currently only has the "new module" command implemented. "new class" is currently in progress. The other commands will follow as the project progresses.

The second part of this are the templates at https://github.com/puppetlabs/pdk-module-template. Again, they are in a very early stage of development, but the long-term goal is to act as a one-stop-shop for all module related templating needs. Specifically, as a first step, replace our own modulesync_configs, and - if at all possible - the voxpupuli's one too. The format of the templates is intentionally based on modulesync, and should be bi-directionally usable for the time being.


Since we're just ramping up all the infrastructure around this project, the only sensible way to run the pdk currently is through bundler with a reference to the cloned Gemfile:

BUNDLE_GEMFILE=~/git/pdk/Gemfile bundle exec pdk help





I'd love to hear all your feedback, either here, or in private!


Cheers, David