feat: add renovate rules for GNOME extension submodules - #3570
Conversation
- Enable git-submodules manager to track extension updates - Configure semantic versioning for extensions with releases: - appindicatorsupport (semver) - dash-to-dock (custom regex for extensions.gnome.org tags) - gsconnect (semver) - caffeine (semver) - Track branch updates for extensions without releases: - blur-my-shell - Logomenu - search-light - Disable automerge for manual review of extension updates - Use repository default update schedule for consistency Fixes #3569
There was a problem hiding this comment.
Pull Request Overview
This PR enables automated dependency management for GNOME shell extension git submodules in Renovate. The configuration distinguishes between extensions that use versioned releases (with appropriate versioning schemes) and those that track the main/master branch.
Key changes:
- Enables the git-submodules manager in Renovate
- Configures versioning strategies for 4 GNOME extensions with stable releases
- Sets up tracking for 3 GNOME extensions without releases
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["micheleg/dash-to-dock"], | ||
| "versioning": "regex:^extensions\\.gnome\\.org-v(?<major>\\d+)$", |
There was a problem hiding this comment.
[nitpick] The regex pattern only captures major version numbers. If dash-to-dock uses versions like 'extensions.gnome.org-v85' this will work, but consider if minor/patch versions might be needed in the future. Verify that this extension's tagging strategy truly only uses major versions.
| "versioning": "regex:^extensions\\.gnome\\.org-v(?<major>\\d+)$", | |
| "versioning": "regex:^extensions\\.gnome\\.org-v(?<version>\\d+(?:\\.\\d+){0,2})$", |
| // GNOME extensions git-submodules - track stable releases where available | ||
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["ubuntu/gnome-shell-extension-appindicator"], | ||
| "versioning": "semver", | ||
| "automerge": false | ||
| }, | ||
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["micheleg/dash-to-dock"], | ||
| "versioning": "regex:^extensions\\.gnome\\.org-v(?<major>\\d+)$", | ||
| "automerge": false | ||
| }, | ||
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["GSConnect/gnome-shell-extension-gsconnect"], | ||
| "versioning": "semver", | ||
| "automerge": false | ||
| }, | ||
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["eonpatapon/gnome-shell-extension-caffeine"], | ||
| "versioning": "semver", | ||
| "automerge": false | ||
| }, |
There was a problem hiding this comment.
[nitpick] Each git-submodule rule repeats 'matchManagers' and 'automerge' fields. Consider consolidating rules with the same versioning strategy to reduce duplication. For example, the three semver extensions (lines 48-53, 60-65, 66-71) could be combined into a single rule with multiple matchPackagePatterns.
There was a problem hiding this comment.
@copilot open a new pull request to apply changes based on this feedback
| // GNOME extensions git-submodules - track stable releases where available | ||
| { | ||
| "matchManagers": ["git-submodules"], | ||
| "matchPackagePatterns": ["ubuntu/gnome-shell-extension-appindicator"], | ||
| "versioning": "semver", | ||
| "automerge": false | ||
| }, |
There was a problem hiding this comment.
These rules shouldn't be needed. Renovate will use semver already
p5
left a comment
There was a problem hiding this comment.
You should add branch = <latest-tag> to the .gitmodules to tell Renovate to pin on tags, rather than commits on the main branch
Fixes #3569
This PR adds Renovate configuration to automatically track and update GNOME extension git submodules.
Changes
Testing
The configuration follows Renovate best practices and is compatible with the org-wide renovate config. Renovate will now automatically create PRs when new releases or commits are available for these extensions.