Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check dependency constraints for puppet modules #9

Open
bastelfreak opened this issue Jun 10, 2019 · 3 comments
Open

Check dependency constraints for puppet modules #9

bastelfreak opened this issue Jun 10, 2019 · 3 comments
Labels
backend/enforcer Updates are performed on Github objects backend/notifier User gets notified via mail, hook, comment... backend/poll-engine How we poll data and handle it enhancement New feature or request

Comments

@bastelfreak
Copy link
Member

Every puppet module has a metadata.json file. This file may list dependencies to other puppet modules. Dependencies need to be available on https://forge.puppet.com and they have an upper and lower version constraint. Each of our modules can be visualized as an individual tree. Sometimes the tree isn't valid anymore. It's possible to have two transitive dependencies to the same puppet module, but with non-matching version constraints. We need to create a graph of each module and check if it's still valid.


We often need to update our upper version constraints. This increases the user satisfaction and lowers the risk of a broken dependency tree. It's helpful when we get informed about possible updates. (same applies for the Puppet version/operating system, but that might be better handled in a new issue).

@bastelfreak bastelfreak added the enhancement New feature or request label Jun 10, 2019
@bastelfreak
Copy link
Member Author

There is a related tool from Ben: https://github.com/puppetlabs/puppet-community-rangefinder
It's available as a github app. It does things like this: voxpupuli/puppet-nginx#1325 (comment)

@bastelfreak
Copy link
Member Author

Also the awesome ewoud just created a python script: https://github.com/theforeman/foreman-installer-modulesync/pull/103/files#diff-d122a21cff8c9e871f6287a8fb385db2R1

To generate dependencies and create a list of different tiers. tiers are the different levels in a dependency tree

@bastelfreak
Copy link
Member Author

If we add the label backwards-incompatile to a module, we know that the next release is a major one. That can already trigger a reverse dependency check

@Flipez Flipez added backend/enforcer Updates are performed on Github objects backend/notifier User gets notified via mail, hook, comment... backend/poll-engine How we poll data and handle it labels Sep 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend/enforcer Updates are performed on Github objects backend/notifier User gets notified via mail, hook, comment... backend/poll-engine How we poll data and handle it enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants