This repository contains default configuration for modulesync for the Foreman puppet modules. Changes to this repository should be synced with modulesync across all of the Foreman installer modules.
A full description of ModuleSync can be found in ModuleSync's README.
You can use metadata_json_deps to verify all modules allow the latest (released) modules on the Forge. See its README for details, but it boils down to:
$ bundle exec rake metadata_deps
...
$ bundle exec bump-dependency-upper-bound puppetlabs/stdlib 8.0.0 modules/*/*/metadata.json
...Ensure Git knows which GPG key to use for signing. You can set the key globally with:
git config --global user.signingkey <YOUR_KEYID>
Generate a changelog
$ ./bin/changelogs modules/puppet-foreman
Updated /path/to/foreman-installer-modulesync/modules/puppet-foreman/CHANGELOG.mdInspect the changelog, (re)label any PRs and issues if needed. Also decide whether a version bump is needed.
$ cd modules/puppet-foreman
$ bundle exec rake module:bump:minor
Bumping version from 13.0.1 to 13.1.0Regenerate the changelog while leaving any git changes:
$ ../../bin/changelogs --skip-git .
Updated /path/to/foreman-installer-modulesync/modules/puppet-foreman/CHANGELOG.mdNow send a PR for the release:
$ ../../bin/release-prOnce it's green and ready to merge, it can be merged. Make sure you're still on the same branch:
$ ../../bin/release-mergeIf someone already merged it but didn't release it, then it can be released:
$ ../../bin/release-moduleThis repository also contains scripts to easy module releases. This short workflow:
$ ./bin/tiers --tier 0 modules/puppet-*/metadata.json | awk '{ print $2 }' | xargs ./bin/changelogs
Updated /path/to/foreman-installer-modulesync/modules/puppet-git/CHANGELOG.md
Updated /path/to/foreman-installer-modulesync/modules/puppet-dhcp/CHANGELOG.md
...Go over every changelog module per the Short Single Release Workflow. Once tier 0 is completed, move on to tier 1 and repeat. If any major version was released in the previous tier, make sure it is accepted in metadata.json.
To find the order in which to release, tiers can be used:
$ ./bin/tiers modules/puppet-*/metadata.json
Tier 0
katello/certs modules/puppet-certs
katello/qpid modules/puppet-qpid
theforeman/dhcp modules/puppet-dhcp
theforeman/dns modules/puppet-dns
theforeman/foreman modules/puppet-foreman
theforeman/git modules/puppet-git
theforeman/puppet modules/puppet-puppet
theforeman/tftp modules/puppet-tftp
Tier 1
katello/candlepin modules/puppet-candlepin
katello/pulp modules/puppet-pulp
theforeman/foreman_proxy modules/puppet-foreman_proxy
Tier 2
katello/foreman_proxy_content modules/puppet-foreman_proxy_content
katello/katello modules/puppet-katello
Tier 3
katello/katello_devel modules/puppet-katello_develModules from tier 0 only depend on Puppet itself and external dependencies (maintained by other organizations). Tier 1 depends on tier 0 and so on.
A single tier can be requested with --tier TIER.