Skip to content

Add rake task for component diff between versions#208

Merged
bastelfreak merged 1 commit into
mainfrom
componentoverview
Jun 12, 2026
Merged

Add rake task for component diff between versions#208
bastelfreak merged 1 commit into
mainfrom
componentoverview

Conversation

@bastelfreak

Copy link
Copy Markdown
Contributor

This adds a new rake task. It allows us to output the component updates between two provided versions. This is useful for consuming project like openbolt and openvox. They usually skip a few puppet-runtime releases. The new task allows those projects to diff their previous to new puppet-runtime version and get a component overview.

example for the openbolt 5.5.0->5.6.0 release:

bundle exec rake release:changelog_components:diff[2026.04.20.1,2026.06.10.1,false]

**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| curl | 8.19.0 | 8.20.0 |
| libxml2 | 2.15.2 | 2.15.3 |
| openssl-3.0 | 3.0.20 | 3.0.21 |
| openssl-3.5 |  | 3.5.7 |
| ruby-4.0 |  | 4.0.5 |
| ruby-selinux | 3.9 | 3.10 |
| ruby-shadow-patched |  | bc7752a9ddbde06c1418734d003a9607bafcc6df |
| rubygem-aws-partitions | 1.1240.0 | 1.1259.0 |
| rubygem-aws-sdk-core | 3.245.0 | 3.251.0 |
| rubygem-aws-sdk-ec2 | 1.612.0 | 1.622.0 |
| rubygem-excon | 1.4.2 | 1.5.0 |
| rubygem-faraday | 2.14.1 | 2.14.2 |
| rubygem-faraday-net_http | 3.4.2 | 3.4.4 |
| rubygem-openfact | 5.6.0 | 5.6.1 |
| rubygem-openvox | 8.26.2 | 8.28.0 |
| rubygem-yard | 0.9.43 | 0.9.44 |

And latest puppet-runtime releases:

$ bundle exec rake release:changelog_components:diff[2026.06.09.1,2026.06.10.1,false]

**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| rubygem-aws-partitions | 1.1258.0 | 1.1259.0 |
| rubygem-aws-sdk-ec2 | 1.621.0 | 1.622.0 |
| rubygem-openvox | 8.27.0 | 8.28.0 |

We can also get a list of added components in various projects:

**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| curl | 8.19.0 | 8.20.0 |
| libxml2 | 2.15.2 | 2.15.3 |
| openssl-3.0 | 3.0.20 | 3.0.21 |
| openssl-3.5 |  | 3.5.7 |
| ruby-4.0 |  | 4.0.5 |
| ruby-selinux | 3.9 | 3.10 |
| ruby-shadow-patched |  | bc7752a9ddbde06c1418734d003a9607bafcc6df |
| rubygem-aws-partitions | 1.1240.0 | 1.1259.0 |
| rubygem-aws-sdk-core | 3.245.0 | 3.251.0 |
| rubygem-aws-sdk-ec2 | 1.612.0 | 1.622.0 |
| rubygem-excon | 1.4.2 | 1.5.0 |
| rubygem-faraday | 2.14.1 | 2.14.2 |
| rubygem-faraday-net_http | 3.4.2 | 3.4.4 |
| rubygem-openfact | 5.6.0 | 5.6.1 |
| rubygem-openvox | 8.26.2 | 8.28.0 |
| rubygem-yard | 0.9.43 | 0.9.44 |

**Project component additions:**
- openssl-3.5: agent-runtime-main
- ruby-4.0: agent-runtime-main
- ruby-shadow-patched: agent-runtime-main

This is required for the puppet-runtime changelog itself, but not so much in the individual projects, so it's configureable.

Short description

Checklist

I have:

This adds a new rake task. It allows us to output the component updates
between two provided versions. This is useful for consuming project like
openbolt and openvox. They usually skip a few puppet-runtime releases.
The new task allows those projects to diff their previous to new
puppet-runtime version and get a component overview.

example for the openbolt 5.5.0->5.6.0 release:

```
bundle exec rake release:changelog_components:diff[2026.04.20.1,2026.06.10.1,false]

**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| curl | 8.19.0 | 8.20.0 |
| libxml2 | 2.15.2 | 2.15.3 |
| openssl-3.0 | 3.0.20 | 3.0.21 |
| openssl-3.5 |  | 3.5.7 |
| ruby-4.0 |  | 4.0.5 |
| ruby-selinux | 3.9 | 3.10 |
| ruby-shadow-patched |  | bc7752a9ddbde06c1418734d003a9607bafcc6df |
| rubygem-aws-partitions | 1.1240.0 | 1.1259.0 |
| rubygem-aws-sdk-core | 3.245.0 | 3.251.0 |
| rubygem-aws-sdk-ec2 | 1.612.0 | 1.622.0 |
| rubygem-excon | 1.4.2 | 1.5.0 |
| rubygem-faraday | 2.14.1 | 2.14.2 |
| rubygem-faraday-net_http | 3.4.2 | 3.4.4 |
| rubygem-openfact | 5.6.0 | 5.6.1 |
| rubygem-openvox | 8.26.2 | 8.28.0 |
| rubygem-yard | 0.9.43 | 0.9.44 |
```

And latest puppet-runtime releases:

```
$ bundle exec rake release:changelog_components:diff[2026.06.09.1,2026.06.10.1,false]

**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| rubygem-aws-partitions | 1.1258.0 | 1.1259.0 |
| rubygem-aws-sdk-ec2 | 1.621.0 | 1.622.0 |
| rubygem-openvox | 8.27.0 | 8.28.0 |
```

We can also get a list of added components in various projects:

```
**Component Changes:**
| Component | Old Version | New Version |
|-----------|-------------|-------------|
| curl | 8.19.0 | 8.20.0 |
| libxml2 | 2.15.2 | 2.15.3 |
| openssl-3.0 | 3.0.20 | 3.0.21 |
| openssl-3.5 |  | 3.5.7 |
| ruby-4.0 |  | 4.0.5 |
| ruby-selinux | 3.9 | 3.10 |
| ruby-shadow-patched |  | bc7752a9ddbde06c1418734d003a9607bafcc6df |
| rubygem-aws-partitions | 1.1240.0 | 1.1259.0 |
| rubygem-aws-sdk-core | 3.245.0 | 3.251.0 |
| rubygem-aws-sdk-ec2 | 1.612.0 | 1.622.0 |
| rubygem-excon | 1.4.2 | 1.5.0 |
| rubygem-faraday | 2.14.1 | 2.14.2 |
| rubygem-faraday-net_http | 3.4.2 | 3.4.4 |
| rubygem-openfact | 5.6.0 | 5.6.1 |
| rubygem-openvox | 8.26.2 | 8.28.0 |
| rubygem-yard | 0.9.43 | 0.9.44 |

**Project component additions:**
- openssl-3.5: agent-runtime-main
- ruby-4.0: agent-runtime-main
- ruby-shadow-patched: agent-runtime-main
```

This is required for the puppet-runtime changelog itself, but not so
much in the individual projects, so it's configureable.

Signed-off-by: Tim Meusel <tim@bastelfreak.de>
@bastelfreak bastelfreak marked this pull request as ready for review June 12, 2026 12:37
@bastelfreak

Copy link
Copy Markdown
Contributor Author

I think this is working fine now. I also kicked off a release with the componentoverview branch to verify that the CHANGELOG.md is still correct: #210

@bastelfreak bastelfreak merged commit 03738b4 into main Jun 12, 2026
45 checks passed
@bastelfreak bastelfreak deleted the componentoverview branch June 12, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants