DEV Community

Cover image for Forge Compatibility Reports for module management
David Sandilands for puppet

Posted on

Forge Compatibility Reports for module management

It was the moment I dreaded: my Puppet modules would be running perfectly, and then a Puppet upgrade, new module, or module update would break the harmony. I would need to scramble to work out dependencies between modules and make sure everything could be brought up to date and be compatible.

This process often required a giant spreadsheet, where I would slowly copy out details from the Forge and check them over and over while I negotiated with my team about which versions we had to stick for certain requirements. And even while this was happening, I still had to watch out to see if module upgrades had new decencies or worse deprecations — then I would need to revisit the Sudoku-like spreadsheet again.

The great news is this is no longer needed — with the new Compatibility Report, the Forge does the hard work for us.

Starting out, we need to provide a baseline for the compatibility report, this can either be done from your existing module download information or by providing a Puppetfile. See enabling download reporting if you want to set up your module download information.

The advantage of providing a Puppetfile is it gives you the flexibility to try different configurations without worrying about affecting your current download information.

Choose a source for module details

Once we have chosen our download information or uploaded a Puppetfile, we can then select the version of PE or Puppet we want to baseline to. This is especially useful for users who want to catch up this include versions like 6 and 7 and PE 2019 and 2021.

Choose a version to target upgrade

We now have a compatibility report highlighting modules that need updates, where dependencies have been added, deprecations, and incompatibilities.

Compatibility report

We can also examine the changes in the module version suggested by clicking see changes to the right of the suggest version.

Changes in suggested module version

A new Puppetfile containing the suggestions and new dependencies can be downloaded clicking the download Puppetfile button on the top right of the report. Incompatibilities will be left at their original version.

If you (like me) have that team that insists they need to pin to a certain version of a module, you can select modules and see which version would be compatible for the Puppet/PE version you are targeting

Pin a modules version in compatibility report

Choose a compatible module version to pin

Then generate a specific report, in this case we can actually immediately see the module version I have chosen for Apache can not be made compatible with the other dependency requirements in the Puppetfile.

Compatibility module report with pinned version

It’s worth noting that you can keep up to 25 reports, so you can experiment and compare reports.

Beyond the core use case of upgrading Puppet, the report also gives you the ability to test adding modules to a Puppet file, update a module version, or removing modules.

So a big “thank you!” to the Forge team and grateful farewell to that awful spreadsheet!”

https://help.puppet.com/forge/current/Content/intro/comp_rept_overview.htm

Top comments (0)